达梦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
相关推荐
小陈工1 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
科技小花5 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸5 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain5 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希6 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神6 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员6 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java6 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿7 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴7 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存