一、数据守护集群安装部署前的数据准备
主库: 备库:
实例名=DMSERVER 实例名=DMSERVER2
PORT_NUM=5236 PORT_NUM=5236
MAL_INST_DW_PORT=33141 MAL_INST_DW_PORT=33142
MAL_HOST=192.168.228.140 MAL_HOST=192.168.228.141
MAL_PORT=61141 MAL_PORT=61142
MAL_DW_PORT=52141 MAL_DW_PORT=52142
MAL_INST_HOST = 192.168.228.140 MAL_INST_HOST = 192.168.228.141
二、解决问题
出现问题:主库不让建表,处在挂载状态→没做主库备份,备库还原
①要做脱机备份,要把服务全部停掉:
AP服务是备份还原的服务,要开着(AP 就是dmap,也在bin目录下):
有输出 PID 就代表 AP 服务正在运行。
②然后把数据库服务打开(只启动dmserver,守护进程dmwatcher一定要关闭),登录上数据库,看是否处于配置状态:
SQL>SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SQL>ALTER DATABASE NORMAL;
SQL>ALTER DATABASE OPEN;
SQL>SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
③然后把数据库服务关掉,再去执行备份
④备库还原之前先停掉dmserver和dmwatcher守护进程,AP服务要开着。
进行还原:
报错核心:无效的备份集目录。
但是主库:./dmrman CTLSTMT="CHECK BACKUPSET '/dmdata/data/BACKUP_FILE_01'",是校验成功的,说明主库成功备份到这个目录里,所以考虑备库侧的文件传输/权限问题。
在主库ping 备库IP时,发现ping不通,主库和备库都在同一个网段(192.168.228),考虑两台机器防火墙拦截,切换root关闭防火墙,操作完再exit退回dmdba用户。→可以ping通了。
⑤接下来执行备份传输,传输结束后的备库还原数据并更新:
更新数据:
报错核心:UPDATE DB_MAGIC是第二阶段操作,必须先执行不带该参数的普通RECOVER基础恢复,才能执行更新库魔数的操作:
第一步:先做基础RECOVER
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/data/BACKUP_FILE_01'"
脱机备份没有 REDO 归档,这条命令只会完成数据库内部状态校验、生成恢复标记,不会回放日志。
第二步:基础 RECOVER 执行成功后,再执行UPDATE DB_MAGIC(适配备库,修改数据库魔数,搭建主备守护集群必须这一步)
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
备库还原和数据库更新结束。
但是状态还是没有从挂载到open,决定重新搭建:
搭建成功。
三、进行测试
1、测试建表和插入数据备机是否能及时同步,并可查询到数据。
①主库新建测试表
②主库插入第一条测试数据
③备库执行查询,同步成功
2、制造主机故障,测试备机可接管并持续提供服务。
①停止主库数据库服务
②登录监视器
③执行接管命令
3、恢复故障主机,将故障主机加入集群。
①启动原主机的数据库服务
②验证原主机已加入集群:
原主机的角色已变为STANDBY,状态变为OPEN。
4、手动切换主备集群,恢复原主备集群的位置。
出现问题:虽然备库(原主机)的数据库实例已经正常运行,但监视器没有显示它:
排解原因:我把监视器部署在主库的克隆机上,并且两台机器的IP地址设置成了完全相同的静态IP。这在网络中是不允许的。当两台设备IP相同时,网络通信会变得混乱,导致监视器无法准确连接到指定的备库。
解决方案:给监视器分配一个新IP->重启主、备、监视器的所有服务->监视器成功显示:
①登录监视器
②查看满足切换条件的实例
可以看到 DMSERVER 可以进行切换。
③主备切换
切换成功,DMSERVER 恢复到主库对外提供服务。
四、总结
1.注意规范步骤:关防火墙->检查网络是否能ping通->初始化实例之前先kill旧的数据库实例进程->主备库初始化实例->启动服务->开启归档->主库脱机备份并拷贝给备库->备库脱机还原并更新->配置主备库(注意授权)->注册服务(实例和守护进程)->先启动主备库的数据库实例->再启动主备库的守护进程。
2.启停顺序:
启动主库实例:./DmServiceDM1 start
启动备库实例:./DmServiceDM2 start
启动主库守护进程:./DmWatcherServiceDM1 start
启动备库守护进程:./DmWatcherServiceDM2 start
启动监视器:./DmMonitorServiceDM start
关闭监视器:./DmMonitorServiceDM stop
关闭主库守护进程:./DmWatcherServiceDM1 stop
关闭备库守护进程:./DmWatcherServiceDM2 stop
关闭主库实例:./DmServiceDM1 stop
关闭备库实例:./DmServiceDM2 stop