1、环境准备
Ip信息 | 版本信息 | 实例信息 | 部署路径 |
192.168.24.129 | 8.0 | DMSVR01:5236 | /dm8/data |
192.168.24.130 | 8.0 | DMSVR02:5236 | /dm8/data |
192.168.24.131 | /dm8/data |
2、达梦数据库部署
通过dbca进程达梦数据库搭建,本章不做赘述。
3、参数调整
(1)dm.ini(主备库相同即可)
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
(2)dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSVR01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.24.129 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15236 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.24.129 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 25236 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 35236 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.24.130
MAL_PORT = 15236
MAL_INST_HOST = 192.168.24.130
MAL_INST_PORT = 5236
MAL_DW_PORT = 25236
MAL_INST_DW_PORT = 35236
(3)dmarch.ini
主库(192.168.24.129)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 2048 #单位 Mb,0 表示无限制,范围 1024~2147483647M
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档
ARCH_DEST = DMSVR02
备库(192.168.24.130)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 2048 #单位 Mb,0 表示无限制,范围 1024~2147483647M
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档
ARCH_DEST = DMSVR01
(4)dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DM01/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/base/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
(5)dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dm8/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值
#以下x配置为监视器到组 GRP1 的守护进程的连接信息,以―IP:PORT‖的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.24.129:25236
MON_DW_IP = 192.168.24.130:25236
4、备份/恢复数据库
(1)主库备份
./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DM01/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/data/DM01/bak/to_dw_1'"
(2)scp到备库,执行备份恢复
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/data/DM01/bak/to_dw_1'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/data/DM01/bak/to_dw_1'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC"
5、启动数据库到mount并进行守护配置
(1)主库
./dmserver /dm8/data/DM01/dm.ini mount
./disql sysdba/DM01SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
(2)备库
./dmserver /dm8/data/DM01/dm.ini mount
./disql sysdba/DM01SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
6、启动数据守护进程
./dmwatcher /dm8/data/DM01/dmwatcher.ini
./dmwatcher /dm8/data/DM01/dmwatcher.ini
7、启动监视器进程
./dmmonitor /dm8/data/DM01/dmmonitor.ini
8、注册服务
/dm8/base/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DM01/dm.ini -p DMSERVER
/dm8/base/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DM01/dmwatcher.ini -p GRP1
/dm8/base/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/data/DM01/dmmonitor.ini -p GRP1
10、检查状态
(1) 启动守护进城后,状态如下
主库状态如下:
从库状态如下:
(2) 启动监视器后,状态如下
登陆数据库查看当前状态:
11、问题解决
查看通过查看监视器日志发现,无法与主库、备库通信,执行防火墙关闭:
(1)关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
再次查看监视器状态:
这个时候可以看到监视器已经能够看到守护进程,且进行了状态切换。
(2)登陆数据库进行数据同步验证
查看主库:
查看从库: