达梦数据库主从复制
一、主从原理
将主库产生的 Redo日志传输到备库,备库接收并重演Redo日志,从而实现备库与主库的数据同步。
整体架构如下图:

二、搭建DM数据守护环境
环境如下:
192.168.40.139 centos7.6 主库 dmwatcher守护 监视器 确认服务器时区
192.168.40.138 centos7.6 备库 dmwatcher守护 确认服务器时区
部署前检查项:
1、CPU :lscpu
2、内存:free -g
3、操作系统:cat /etc/os-release
3、磁盘:dd bs=32k count=20k if=/dev/zero of=test oflag=dsync
4、网络:ethtool +网卡名
2.1:备份主库并发送到从库进行恢复
Master:
./dmrman
dmrman V8
RMAN>backup database '/dmdata/data/DAMENG/dm.ini' full backupset '/linshi/full01';
发送到从库进行恢复
./dmrman ctlstmt="restore database to '/dmdata/data/DAMENG' from backupset '/linshi/full01'"
./dmrman ctlstmt="recover database '/dmdata/data/DAMENG/dm.ini' from backupset '/linshi/full01'"
./dmrman ctlstmt="recover database '/dmdata/data/DAMENG/dm.ini' update db_magic"
2.2:修改主备配置文件
注:修改的配置文件如下;标红的传到从库需要修改
修改dm.ini
1 INSTANCE_NAME = DM01
2 PORT_NUM = 5236
3 DW_INACTIVE_INTERVAL = 60
4 ALTER_MODE_STATUS = 0
5 ENABLE_OFFLINE_TS = 2
6 MAL_INI = 1
7 ARCH_INI = 1
8 RLOG_SEND_APPLY_MON = 64
在主库/dmdata/data/DAMENG下创建文件dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DM01 #实例名,和dm.ini中的一致
MAL_HOST = 192.168.40.139 #MAL系统监听TCP连接的IP地址
MAL_PORT = 55101 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.40.139 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 65101 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 192.168.40.138
MAL_PORT = 55121
MAL_INST_HOST = 192.168.40.138
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121
在主库/dmdata/data/DAMENG下创建文件dmarch.ini
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/DAMENG/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 4096
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM02
在主库/dmdata/data/DAMENG下创建文件dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 230330 #守护系统唯一OGUID值
INST_INI = /dmdata/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动拉起功能
INST_STARTUP_CMD = /dmdata/bin/dmserver
2.3:以mount方式启动主库
注:防止主库数据更改,主备不一致;
./dmserver /dmdata/data/DAMENG/dm.ini mount
登录disql执行
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(230330);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
2.4:以mount的方式启动从库
./dmserver /dmdata/data/DAMENG/dm.ini mount
登录disql执行修改状态
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(230330);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
2.5:在主库跟从库启动守护进程
./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini
2.6:在其中任意一台服务器或者第三台服务器上配置监视器
dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dmdata/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 230330
MON_DW_IP = 192.168.40.139:65101
MON_DW_IP = 192.168.40.138:65121
启动监视器
./dmmonitor /dmdata/data/DAMENG/dmmonitor.ini
关闭集群顺序
关闭监视器-->关闭备库守护进程-->关闭主库守护进程--->关闭主库---->关闭从库
2.7:注册服务
分别在主库和备库上以root用户登录创建服务
/dmdata/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini -p TEST
启动守护进程
systemctl start DmWatcherServiceTEST
2.8:启动监视器查看主从状态信息,并进行切换操作

手动切换主备

更多资讯请上达梦技术社区了解:https://eco.dameng.com

浙公网安备 33010602011771号