达梦DW数据库安装

bash 复制代码
--安装前检查环境
hostname; date; free -h; df -h; cat /etc/hosts; tail /etc/passwd
nmcli d; ip a; ls /opt/soft
确定数据、归档位置

--设置主机名
echo "`hostname -i` " " db`hostname -i |cut -c 11-13`">>/etc/hosts
hostnamectl set-hostname "db`hostname -i |cut -c 11-13`"

--关闭防火墙
sed -i "s/X11Forwarding no/X11Forwarding yes/g" /etc/ssh/sshd_config
systemctl restart sshd
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
systemctl stop firewalld; systemctl disable firewalld
mkdir /opt/soft
上传介质
mount -r /opt/soft/dm8_20250527_x86_kylin10_64.iso /mnt

date -s "2025-11-15 09:45:00"

groupadd -g 2001 dinstall
groupadd -g 2000 dmdba
useradd -u 2000 -g dinstall -G  dmdba -m -d /home/dmdba -s /bin/bash dmdba
echo "Dameng123" | passwd --stdin dmdba

mkdir -p /dm/dmdbms
mkdir /dmdata
mkdir /dmarch
mkdir /dmbak

chown -R dmdba:dinstall /dm
chown -R dmdba:dinstall /dmdata
chown -R dmdba:dinstall /dmarch
chown -R dmdba:dinstall /dmbak
chown -R dmdba:dinstall /opt/soft

su - dmdba
export DM_INSTALL_TMPDIR=~
/mnt/DMIn* -i

cat >>~/.bash_profile<<EOF

export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH
alias d="disql SYSDBA/Dameng123"
alias m="dmmonitor /dmdata/TEST/dmmonitor.ini"
EOF
. ~/.bash_profile

只在主库
dminit path=/dmdata db_name=TEST instance_name=TEST1  \
EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=256 \
SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123 port_num=5236


root:

/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -p TEST1 -dm_ini /dmdata/TEST/dm.ini

--查看已安装的达梦服务,如果错误删除
systemctl list-unit-files |grep Dm
/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDMDB1

--必须先启动一次,否则不让备份
DmServiceTEST1 start
DmServiceTEST1 stop

dmrman ctlstmt="backup database '/dmdata/TEST/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmbak/'"
scp -r /dmbak/* 192.168.32.22:/dmbak

cd /dmdata/TEST; vi dmmal.ini

MAL_CHECK_INTERVAL = 15
MAL_CONN_FAIL_INTERVAL = 5
[mal_inst0]
   mal_inst_name  = TEST1
    mal_host       = 192.168.32.11   #主节点 心跳ip       
    mal_port       = 15101 
    MAL_INST_HOST  = 192.168.32.11  #主节点实例的对外服务IP地址
    MAL_INST_PORT  = 5236  #实例对外服务端口,和dm.ini的PORT_NUM一致
    MAL_DW_PORT    = 25101  #实例对应的守护进程监听TCP连接的端口
    MAL_INST_DW_PORT  = 35101  #实例监听守护进程TCP连接的端口
[mal_inst1]
    mal_inst_name  = TEST2 
    mal_host       = 192.168.32.22  #备节点 心跳ip
    mal_port       = 15121 
    MAL_INST_HOST  = 192.168.32.22 #备节点实例的对外服务IP地址
    MAL_INST_PORT  = 5236
    MAL_DW_PORT    = 25121  
    MAL_INST_DW_PORT  = 35121 

vi dmarch.ini

[ARCH_LOCAL]
  ARCH_TYPE         = LOCAL  #本地归档类型
  ARCH_DEST         = /dmarch  #本地归档存放路径
  ARCH_FILE_SIZE       = 256  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT    = 0  #单位M
[ARCH_REALTIME]
ARCH_TYPE         =REALTIME
ARCH_DEST=TEST2

vi dmwatcher.ini

[GRP]
  DW_TYPE                  = GLOBAL  
  DW_MODE                  = AUTO ##如无特殊要求,默认配置manual
  DW_ERROR_TIME            = 10 
  INST_ERROR_TIME          = 10 
  INST_RECOVER_TIME        = 60  
  INST_OGUID               = 112233 ##主备两节点配置一致,集群OGUID规则要求YYYYMMDD01/02...长度不超过19
  INST_INI                 = /dmdata/TEST/dm.ini  
  INST_STARTUP_CMD      = /dm/dmdbms/bin/dmserver  
  INST_AUTO_RESTART        = 1 
  RLOG_SEND_THRESHOLD      = 0  
  RLOG_APPLY_THRESHOLD     = 0 

sed -i 's/MAL_INI                         = 0  /MAL_INI                         = 1  /g' dm.ini
sed -i 's/ARCH_INI                        = 0  /ARCH_INI                        = 1  /g' dm.ini
grep -E 'MAL_INI|ARCH_INI' dm.ini  #都应该为1

dmserver /dmdata/TEST/dm.ini mount

新开窗口
d
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SP_SET_OGUID(112233); 
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

root:
/dm/dmdbms/script/root/dm_service_installer.sh 
-t dmwatcher -p TEST1 -watcher_ini /dmdata/TEST/dmwatcher.ini -m mount

备库
dminit path=/dmdata db_name=TEST instance_name=TEST2  \
EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=256 \
SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123 port_num=5236


DmAPService start
dmrman ctlstmt="restore database '/dmdata/TEST/dm.ini' from backupset '/dmbak/'"
dmrman ctlstmt="recover database '/dmdata/TEST/dm.ini' from backupset '/dmbak/'"
dmrman ctlstmt="recover database '/dmdata/TEST/dm.ini' update db_magic"

cd /dmdata/TEST/
sed -i 's/MAL_INI                         = 0  /MAL_INI                         = 1  /g' dm.ini
sed -i 's/ARCH_INI                        = 0  /ARCH_INI                        = 1  /g' dm.ini
grep -E 'MAL_INI|ARCH_INI' dm.ini

scp 192.168.32.11:$PWD/dmmal.ini .
scp 192.168.32.11:$PWD/dmarch.ini .
scp 192.168.32.11:$PWD/dmwatcher.ini .

sed -i 's/ARCH_DEST=TEST2/ARCH_DEST=TEST1/g' dmarch.ini

dmserver /dmdata/TEST/dm.ini mount

新开窗口
d
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SP_SET_OGUID(112233); 
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

root:
/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver  -p TEST2 -dm_ini /dmdata/TEST/dm.ini
/dm/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p TEST2 -watcher_ini /dmdata/TEST/dmwatcher.ini -m mount

原启动窗口exit

主库:  DmWatcherServiceTEST1 start
备库:  DmWatcherServiceTEST2 start

vi /dmdata/TEST/dmmonitor.ini

MON_DW_CONFIRM = 1 #0表示监控模式,1表示确认模式
MON_LOG_PATH = /dm/dmdbms/log/  #日志路径根据实际情况更改
MON_LOG_INTERVAL = 60  #自动记录系统状态信息到日志文件的时间间隔
MON_LOG_FILE_SIZE = 64 #单个日志文件大小,单位M
MON_LOG_SPACE_LIMIT = 4096 #日志总空间大小,0表示没限制
[GRP]  
MON_INST_OGUID = 112233 #与 dmwatcher.ini 中的 INST_OGUID 保持一致
MON_DW_IP = 192.168.32.11:25101  #主节点心跳IP
MON_DW_IP = 192.168.32.22:25121  #备节点心跳IP	

m
show

d
select name,status$,host_name,start_time,mode$,DSC_SEQNO,dsc_role  from gv$instance order by 1;

行号     NAME  STATUS$ HOST_NAME START_TIME          MODE$   DSC_SEQNO   DSC_ROLE
---------- ----- ------- --------- ------------------- ------- ----------- --------
1          TEST1 OPEN    dwdb1     2025-11-08 19:22:23 PRIMARY 0           NULL
2          TEST2 OPEN    dwdb2     2025-11-08 19:22:29 STANDBY 0           NULL
相关推荐
2301_8002561115 小时前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
霖霖总总16 小时前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..20 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据1 天前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦1 天前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
YMatrix 官方技术社区1 天前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录1 天前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong1 天前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
欧亚学术1 天前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表
黑白极客1 天前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎