
1. 环境准备1.1 节点规划节点实例名数据目录服务端口MAL端口守护端口节点1GRP1_RWW_01/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG321416114152141节点2GRP1_RWW_02/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG321426114252142节点3GRP1_RWW_03/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG3214361143521431.2 集群角色规划节点初始角色说明GRP1_RWW_01主库PRIMARY处理所有写操作和部分读操作GRP1_RWW_02备库STANDBY只读同步主库数据GRP1_RWW_03备库STANDBY只读同步主库数据1.3 集群唯一标识参数值说明INST_OGUID453332整个集群的唯一标识符三节点必须一致2. 创建三个实例的数据目录# 切换到 dmdba 用户su- dmdba# 创建主目录mkdir-p/home/dmdba/dmdbms/data/GPR1_RW# 创建归档目录mkdir-p/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/archmkdir-p/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG/archmkdir-p/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG/arch# 创建备份目录mkdir-p/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/bakmkdir-p/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/bakmkdir-p/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/bak3. 初始化三个数据库实例cd/home/dmdba/dmdbms/bin ./dminitPATH/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG\DB_NAMEDAMENG\INSTANCE_NAMEGRP1_RWW_01\PORT_NUM32141\PAGE_SIZE16\EXTENT_SIZE16\CHARSET1\CASE_SENSITIVEY\LOG_SIZE2048./dminitPATH/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG\DB_NAMEDAMENG\INSTANCE_NAMEGRP1_RWW_02\PORT_NUM32142\PAGE_SIZE16\EXTENT_SIZE16\CHARSET1\CASE_SENSITIVEY\LOG_SIZE2048./dminitPATH/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG\DB_NAMEDAMENG\INSTANCE_NAMEGRP1_RWW_03\PORT_NUM32143\PAGE_SIZE16\EXTENT_SIZE16\CHARSET1\CASE_SENSITIVEY\LOG_SIZE20484. 配置 dm.ini 文件4.1 主库的 dm.inivi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dm.iniINSTANCE_NAME GRP1_RWW_01 PORT_NUM 32141 DW_PORT 33141 DW_ERROR_TIME 10 RLOG_SEND_APPLY_MON 64 MAL_INI 1 ARCH_INI 14.2 备库1的 dm.inivi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG/dm.iniINSTANCE_NAME GRP1_RWW_02 PORT_NUM 32142 DW_PORT 33142 DW_ERROR_TIME 10 RLOG_SEND_APPLY_MON 64 MAL_INI 1 ARCH_INI 14.3 备库2的 dm.inivi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG/dm.iniINSTANCE_NAME GRP1_RWW_03 PORT_NUM 32143 DW_PORT 33143 DW_ERROR_TIME 10 RLOG_SEND_APPLY_MON 64 MAL_INI 1 ARCH_INI 15. 配置 dmmal.ini三节点完全相同vi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dmmal.iniMAL_CHECK_INTERVAL 5 MAL_CONN_FAIL_INTERVAL 5 [MAL_INST1] MAL_INST_NAME GRP1_RWW_01 MAL_HOST *.*.*.* MAL_PORT 61141 MAL_INST_HOST *.*.*.* MAL_INST_PORT 32141 MAL_DW_PORT 52141 MAL_INST_DW_PORT 33141 [MAL_INST2] MAL_INST_NAME GRP1_RWW_02 MAL_HOST *.*.*.* MAL_PORT 61142 MAL_INST_HOST *.*.*.* MAL_INST_PORT 32142 MAL_DW_PORT 52142 MAL_INST_DW_PORT 33142 [MAL_INST3] MAL_INST_NAME GRP1_RWW_03 MAL_HOST *.*.*.* MAL_PORT 61143 MAL_INST_HOST *.*.*.* MAL_INST_PORT 32143 MAL_DW_PORT 52143 MAL_INST_DW_PORT 331436. 配置 dmarch.ini6.1 主库的 dmarch.inivi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dmarch.ini[ARCHIVE_TIMELY1] ARCH_TYPE TIMELY ARCH_DEST GRP1_RWW_02 [ARCHIVE_TIMELY2] ARCH_TYPE TIMELY ARCH_DEST GRP1_RWW_03 [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL ARCH_DEST /home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/arch ARCH_FILE_SIZE 128 ARCH_SPACE_LIMIT 06.2 备库1的 dmarch.inivi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG/dmarch.ini[ARCHIVE_TIMELY1] ARCH_TYPE TIMELY ARCH_DEST GRP1_RWW_01 [ARCHIVE_TIMELY2] ARCH_TYPE TIMELY ARCH_DEST GRP1_RWW_03 [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL ARCH_DEST /home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG/arch ARCH_FILE_SIZE 128 ARCH_SPACE_LIMIT 06.3 备库2的 dmarch.inivi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG/dmarch.ini[ARCHIVE_TIMELY1] ARCH_TYPE TIMELY ARCH_DEST GRP1_RWW_01 [ARCHIVE_TIMELY2] ARCH_TYPE TIMELY ARCH_DEST GRP1_RWW_02 [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL ARCH_DEST /home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG/arch ARCH_FILE_SIZE 128 ARCH_SPACE_LIMIT 07. 配置 dmwatcher.ini以下为GPR1_RWW_01另外两个节点仅需要修改INST_INI为相应的dm.ini路径即可vi/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dmwatcher.ini[GRP1] DW_TYPE GLOBAL DW_MODE AUTO DW_ERROR_TIME 10 INST_RECOVER_TIME 60 INST_ERROR_TIME 10 INST_OGUID 453332 INST_INI /home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dm.ini INST_AUTO_RESTART 1 INST_STARTUP_CMD /home/dmdba/dmdbms/bin/dmserver RLOG_SEND_THRESHOLD 0 RLOG_APPLY_THRESHOLD 08. 注册服务8.1 注册三个节点的数据库服务cd/home/dmdba/dmdbms/script/root# 注册节点1主库./dm_service_installer.sh-tdmserver\-pGRP1_RWW_01\-dm_ini/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dm.ini\-mmount# 注册节点2备库./dm_service_installer.sh-tdmserver\-pGRP1_RWW_02\-dm_ini/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG/dm.ini\-mmount# 注册节点3备库./dm_service_installer.sh-tdmserver\-pGRP1_RWW_03\-dm_ini/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG/dm.ini\-mmount8.2 注册三个节点的守护进程cd/home/dmdba/dmdbms/script/root# 注册节点1的守护进程./dm_service_installer.sh-tdmwatcher\-pRwwWatcher01\-watcher_ini/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_01/DAMENG/dmwatcher.ini# 注册节点2的守护进程./dm_service_installer.sh-tdmwatcher\-pRwwWatcher02\-watcher_ini/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_02/DAMENG/dmwatcher.ini# 注册节点3的守护进程./dm_service_installer.sh-tdmwatcher\-pRwwWatcher03\-watcher_ini/home/dmdba/dmdbms/data/GPR1_RW/GPR1_RWW_03/DAMENG/dmwatcher.ini9. 配置确认监视器su- dmdbamkdir-p/home/dmdba/dmdbms/data/logvi/home/dmdba/dmdbms/data/dmmonitor.iniMON_DW_CONFIRM 1 MON_LOG_PATH /home/dmdba/dmdbms/data/log MON_LOG_INTERVAL 60 MON_LOG_FILE_SIZE 32 MON_LOG_SPACE_LIMIT 0 [GRP1] MON_INST_OGUID 453332 MON_DW_IP *.*.*.*:52141 MON_DW_IP *.*.*.*:52142 MON_DW_IP *.*.*.*:5214310.集群启停启动实例-守护进程-监视器su- dmdba ./DmServiceGRP1_RWW_01 start ./DmServiceGRP1_RWW_02 start ./DmServiceGRP1_RWW_03 start ./DmWatcherServiceRwwWatcher01 start ./DmWatcherServiceRwwWatcher02 start ./DmWatcherServiceRwwWatcher03 start ./dmmonitor /home/dmdba/dmdbms/data/dmmonitor.ini停止监视器-守护进程-实例exit#监视器界面执行本文并没有为监视器注册服务若为监视器注册了服务使用相关命令停掉监视器即可./DmWatcherServiceRwwWatcher01 stop ./DmWatcherServiceRwwWatcher02 stop ./DmWatcherServiceRwwWatcher03 stop ./DmServiceGRP1_RWW_01 stop ./DmServiceGRP1_RWW_02 stop ./DmServiceGRP1_RWW_03 stop11. 配置客户端读写分离dm_svc.confvi/etc/dm_svc.conf25%的读请求备库承担75%ZN(*.*.*.*:32141,*.*.*.*:32142,*.*.*.*:32143) TIME_ZONE(480) LANGUAGE(cn) [ZN] RW_SEPARATE(1) #启用读写分离 RW_PERCENT(25) #主库承担25%的读请求备库承担75%声明本文为个人实操学习笔记部署步骤参考达梦数据库官方文档整理仅供参考