实验环境
操作系统版本 | 银河麒麟Linux kylin10 4.19.90-24.4.v2101.ky10.x86_64 |
数据库版本 | DM Database Server 64 V8 |
##主库信息
内网IP-[MAL_HOST = 192.168.50.100]
外网IP-[MAL_INST_HOST = 192.168.101.11]主库实例名-[DM01]
OGUID=45335
##备库信息
内网IP-[MAL_HOST = 192.168.50.110]
外网IP-[MAL_INST_HOST = 192.168.101.22]备库实例名-[DM02]
OGUID=45335
数据守护集群部署请参考:
1、故障模拟 :
模拟主库到备库的归档状态为INVALID
(1)备库断开与主库的内网连接
(2)主库创建表,插入数据,并提交数据
(3)删除主库产生的归档日志文件
(4)恢复主备库内网连接
(5)打开非确认监视器,查看备库的归档状态-【RSTAT】字段
此时的主库对外正常提供读写服务,因为备库的归档状态为【INVALID】,不能实时同步日志,备库不能同步数据。
2、备库分离与还原
相关命令
命令 | 说明 |
detach database [group_name.]db_name | 将指定的备库分离出守护进程组 |
attach database [group_name.]db_name | 将分离出去的备库重新加回到守护进程组 |
2.1 将备库从守护进程组中剔除
登录非确认监视器
detach database GRP1.DM02
2.2 主库进行全备
SQL> BACKUP DATABASE FULL TO DB_FULL01 BACKUPSET '/data/dmbak/full/db_full01';
BACKUP DATABASE FULL TO DB_FULL01 BACKUPSET '/data/dmbak/full/db_full01';
[-8117]:等待归档刷盘,请稍后重试.
已用时间: 78.825(毫秒). 执行号:0.
SQL> alter system switch logfile;
操作已执行
已用时间: 3.554(毫秒). 执行号:0.
SQL> BACKUP DATABASE FULL TO DB_FULL01 BACKUPSET '/data/dmbak/full/db_full01';
操作已执行
已用时间: 00:00:05.255. 执行号:1055.
SQL>
2.3 将主库备份传输到备库
[dmdba@dmdb01 full]$ pwd
/data/dmbak/full
[dmdba@dmdb01 full]$ scp -r db_full01/ dmdba@192.168.101.22:/data/dmbak
2.4 在备库进行数据恢复
restore database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/dmbak/db_full01';
recover database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/dmbak/db_full01';
recover database '/data/dmdata/DAMENG/dm.ini' update db_magic;
2.5 将备库实例启动到mount状态,修改备库模式
sp_set_para_value(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(45335);
alter database standby;
sp_set_para_value(1,'ALTER_MODE_STATUS',0);
2.6 重启备库的dmserver和dmwatcher
[dmdba@dmdb02 ~]$ /opt/dmdbms/bin/DmServiceDM02 start
Starting DmServiceDM02: [ OK ]
[dmdba@dmdb02 ~]$ /opt/dmdbms/bin/DmWatcherServiceDM02 start
Starting DmWatcherServiceDM02: [ OK ]
2.7 登录非确认监视器,将剔除的备库重新加回守护进程组
attach database GRP1.DM02
--show命令查看主备库归档状态