failover前后的数据变更

有两个备租户,他们的主租户坏掉了,这两个备租户停止日志应用之后,他们的sync_scn值依次为:
DG1 1767664089739952000
DG2 1767663798694036000

然后,我把DG1进行failover,DG1就成为了新主租户。

然后,在DG2上执行:
alter system flashback standby log to scn = 1767664089739952000;
并且,把DG2的日志恢复源指定为新主租户DG1。

那么,请问,在DG2上,从1767663798694036000点位到1767664089739952000点位的数据变更,来自于哪里?

来源于DG1

1 个赞

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 ,问题出了什么地方呢?如何排查?

select * from DBA_OB_TENANTS;看一下位点推进没

没有。

你的备租户搭建方法是哪种。通过物理恢复出来的?
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 个赞

1 个赞

alter system recover standby until unlimited; 执行的这个

支持一下

使备租户进入持续同步模式
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 个赞

主租户有数据变化么

没有。

更新一下主租户,RECOVERY_UNTIL_SCN当前是同步状态的