目前较多系统使用数据守护集群,偶尔会有项目上想将实时备库或即时备库与异步备库转化的需求,测试验证实时备库转为异步备库和异步备库转为实时备库的操作流程 验证switchover_local命令的可行性。
DM Database 64 V8 03134284639-20260811-342271-20151
环境准备,先搭建好实时主备集群
支持动态开启TIMER_INI
SP_SET_PARA_VALUE(1,'TIMER_INI',1);
配置一个一分钟一次的定时器
SP_ADD_TIMER('RT_TIMER',2,1,0,1,'00:00:00','23:59:00','2011-02-01 14:30:34', '9999-12-31',1,'RT_TIMER',1);
注:在线配置定时器,暂时最多支持分钟级的,秒级的定时器配置需要停库并更改dmtimer.ini(测试在线修改dmtimer.ini并开关TIMER_INI参数未生效).
守护进程处于活动状态时,删除实时备库会进入故障处理流程,主库会有短暂挂起,故须先关闭守护进程
停止实时备库的归档同步
SP_SET_ARCH_STATUS('DM_02',1);
ALTER DATABASE DELETE ARCHIVELOG 'DEST=DM_02';
添加异步归档
ALTER DATABASE ADD ARCHIVELOG 'DEST=DM_02,TYPE = ASYNC, ARCH_TIMER_NAME = RT_TIMER';
查看归档配置
SELECT ARCH_NAME,ARCH_TYPE,ARCH_DEST,ARCH_TIMER_NAME,ARCH_IS_VALID FROM V$DM_ARCH_INI;
ALTER DATABASE DELETE ARCHIVELOG 'DEST=DM_01';
如果没有其他实时备库或即时备库,主库也要修改守护进程配置为local。
如果还存在有其他实时备库或即时备库,仅修改异步备库守护进程配置即可。
监视器查看集群状态
注:当库内没有日志产生时,主库实例日志中并不会每分钟出现一次该日志条目,因为没有日志需要同步。
目前数据库已支持在线转换实时备库或即时备库至异步备库,测试结果符合预期。
主要注意的是:
###环境准备
环境准备
环境准备,先搭建好一主一异步备机
###前置调条件
切换前置条件,主库dmarch.ini中 ARCH_SEND_MODE=1 该参数在主库中才有效,查询V$DM_ARCH_INI视图,主库节点显示为1.异步备机节点显示为null。
异步备库dmarch.ini中需要添加原主库以及主库上其他备份的归档,且ARCH_SEND_MODE=1
否则执行,执行SWITCHOVER_LOCAL会出现保报错
注:如果新增这些参数信息,需要重启数据库服务才能生效
###切换操作
执行SWITCHOVER_LOCAL
通过监视检查确认切换成功
删除异步归档:
ALTER DATABASE DELETE ARCHIVELOG 'DEST=DM_02';
查看归档配置:
SELECT ARCH_NAME,ARCH_TYPE,ARCH_DEST,ARCH_TIMER_NAME,ARCH_IS_VALID FROM V$DM_ARCH_INI;
注:在线删除异步备库不需要提前设置无效。
添加实时归档:
ALTER DATABASE ADD ARCHIVELOG 'DEST=GRP1_DW_02,TYPE = REALTIME';
查看归档配置:
SELECT ARCH_NAME,ARCH_TYPE,ARCH_DEST,ARCH_TIMER_NAME,ARCH_IS_VALID FROM V$DM_ARCH_INI;
注:因为实时备库和即时备库的集群加入动作需要守护进程的干预,所以暂时为无效状态
删除异步归档:
ALTER DATABASE DELETE ARCHIVELOG 'DEST=DM_01';
添加实时归档:
ALTER DATABASE ADD ARCHIVELOG 'DEST= DM_01,TYPE = REALTIME';
查看归档配置:
SELECT ARCH_NAME,ARCH_TYPE,ARCH_DEST,ARCH_TIMER_NAME,ARCH_IS_VALID FROM V$DM_ARCH_INI;
注:因为实时备库和即时备库的集群加入动作需要守护进程的干预,所以暂时为无效状态
实时主备库的守护进程配置类型都要是GLOBAL模式
监视器查看集群状态
再次查看主库归档状态
查看归档配置:
SELECT ARCH_NAME,ARCH_TYPE,ARCH_DEST,ARCH_TIMER_NAME,ARCH_IS_VALID FROM V$DM_ARCH_INI;
监视器执行切换命令,验证主备功能
在实时主备集群中,不能使用SWITCHOVER_LOCAL命令进行切换
使用switchover命令进可以正常进行切换
测试可在线进行实时备库或即时备库于异步备库的相互转换,测试结果符合预。
新引入的switchover_local命令可以支持直接将异步备机切换为主机。但是使用该命令需要满足主节点的dmarch.ini设置ARCH_SEND_MODE=1,备机dmarch.ini中需要有主库节点及主库上所有其他节点的归档信息。
文章
阅读量
获赞
