一、主从原理
将主库产生的 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