有两个备租户,他们的主租户坏掉了,这两个备租户停止日志应用之后,他们的sync_scn值依次为:
DG1 1767664089739952000
DG2 1767663798694036000
然后,我把DG1进行failover,DG1就成为了新主租户。
然后,在DG2上执行:
alter system flashback standby log to scn = 1767664089739952000;
并且,把DG2的日志恢复源指定为新主租户DG1。
那么,请问,在DG2上,从1767663798694036000点位到1767664089739952000点位的数据变更,来自于哪里?
select tenant_id,tenant_name, tenant_role,status, switchover_status, sync_scn,to_char(scn_to_timestamp(sync_scn), ‘yyyy-mm-dd hh24:mi:ss’) as sync_time , recovery_until_scn,to_char(scn_to_timestamp(recovery_until_scn),‘yyyy-mm-dd hh24:mi:ss’) as recovery_until_time,flashback_log_scn from dba_ob_tenants;
新主租户DG1:
接入新主租户的备租户DG2:
接入新主租户的备租户DG3:
从上面可以看到,DG1的数据并没有同步到DG2和DG3 ,问题出了什么地方呢?如何排查?
辞霜
#5
select * from DBA_OB_TENANTS;看一下位点推进没
辞霜
#7
你的备租户搭建方法是哪种。通过物理恢复出来的?
RESTORE 命令创建的备租户,默认不会与源租户持续同步,需要执行 RECOVER 命令开启持续同步模式
1 个赞
基于日志归档的物理备库。
alter system restore dg2
from ‘file:///backup/full,file:///backup/arch’
with ‘pool_list=pool_2&primary_zone=zone1;zone2;zone3’;
1 个赞
alter system recover standby until unlimited; 执行的这个
辞霜
#13
使备租户进入持续同步模式
ALTER SYSTEM RECOVER STANDBY TENANT tenant_name UNTIL UNLIMITED
SELECT TENANT_NAME, TENANT_ROLE, SWITCHOVER_STATUS, SCN_TO_TIMESTAMP(SYNC_SCN), SYNC_SCN, SCN_TO_TIMESTAMP(RECOVERY_UNTIL_SCN), RECOVERY_UNTIL_SCN
FROM DBA_OB_TENANTS
WHERE TENANT_NAME = ‘tenant_name’;
如果RECOVERY_UNTIL_SCN 的数值是MAX_SCN (4611686018427387903),备租户进入持续同步模式
可以在主租户创建个表测试一下
1 个赞
辞霜
#17
更新一下主租户,RECOVERY_UNTIL_SCN当前是同步状态的