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