一、什么是组分裂
同一守护进程组中,不同数据库实例的数据出现不一致,并且无法通过重演 Redo日志重新同步数据的情况,称为组分裂。引发组分裂的主要原因包括:
二、处理方法
1、停止数据库服务
通过监视器查看目前谁是主库且open状态的,然后在按照达梦数据库数据守护集群的顺序停止整个集群,口诀为“备主主备”,即:
(1)关闭备上的守护进程;
(2)关闭主机的守护进程;
(3)关闭主机上数据库的进程;
(4)关闭备机上数据库的进程;
2、备份数据
在查询到主库的上面进行数据备份,切换到dmdba用户,使用dmrman命令如:
./dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmdbms/data/full0916'"
再备份文件拷贝的异常的备库上面:
scp -r /opt/dmdbms/data/full0916 IP地址:/opt/dmdbms/data
3、在异常的备库上还原
切换到dmdba用户下面,使用dmrman命令进行操作:
./dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/full0916'"
./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/full0916'"
./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
4、启动备机的实例进程,登录数据库然后执行以下命令:
./disql SYSDBA/密码 --回车
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453332);
SQL>alter database standby;
SQL>exit;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
5、启动主机的实例进程和守护进程
6、启动刚刚还原好的备库守护进程
三、启动监视器
监视器启动完成之后,在日志看了一下FLSN是否一致,且RSTAT都是VALID状态,如果以上都正确,那么数据守护集群恢复正常。
文章
阅读量
获赞