主备集群--恢复备库数据不同步的问题
环境介绍
集群主机备份–》备机还原
1 主机联机备份
1.1 在管理工具左侧目录:备份 右键全库备份
或
1.2 执行SQL:(默认备份路径为dm.ini同级目录bak文件夹)
backup database full to "DB_DAMENG" backupset 'DB_DAMENG' compressed;
2 备份成功后,通过监视器将备库分离出集群
detach database group_name.db_name
- 此命令允许将全局守护类型的备库分离出守护进程组,执行此命令需要先登录监视器。使用此命令不会触发主库的 Failover 故障处理流程。该操作不会修改相关的配置信息,只是为了需要主动退出维护备库时使用。
该命令包括下面两个操作步骤
通知主库设置到指定备库的恢复间隔内存值为 86400(s)。
通知主库修改到指定备库的归档状态无效。
2.1 将备库实例服务关闭
stop database group_name.db_name
2.2 将备机归档文件夹重命名,并重新创建一个新的原名文件夹(注意权限)
2.3 将备机守护进程服务关闭
3 对备库进行还原
在数据库bin目录执行:
3.1 数据库还原:
$ ./dmrman CTLSTMT="RESTORE DATABASE '/.../.../dm.ini文件绝对路径' FROM BACKUPSET '/.../.../.../备份文件夹名'" #(全量或增量备份文件夹绝对路径)
3.2 数据库恢复:
./dmrman CTLSTMT=“RECOVER DATABASE ‘/.../.../dm.ini文件绝对路径’ FROM BACKUPSET ‘/.../.../备份文件夹名’” #(全量或增量备份文件夹绝对路径)
3.3 更新数据库魔数:
$ ./dmrman CTLSTMT="RECOVER DATABASE '/.../.../dm.ini文件绝对路径' UPDATE DB_MAGIC"
4 mount方式 启动备库
./dmserver /.../.../dm.ini mount #dm.ini绝对路径
或脚本服务注册为 mount 启动方式,启动脚本服务
4.1manager 连接备库 或 disql连接备库,修改为备库模式
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
COMMIT;
5 将分离出去的备库加入集群
- 启动备库守护服务
- 此命令和 detach database [group_name.]db_name 相对应,待 detach 分离出去的备库维护完成后,可通过此命令将其重加入守护进程组,执行此命令需要先登录监视器。
- 通过监视器将分离出去的备库加入集群
attach database group_name.db_name
- 观察备库FLSN有更新,说明备库数据自动同步正常