【YashanDB知识库】如何在备机节点上做备份和恢复

问题现象一主一备情况下,主机需要支持常规业务,为了不影响业务,在备机做备份恢复的场景。问题的风险及影响1、备机恢复后,会变成primary节点,出现脑裂。2、备机恢复的数据,只是备份那一时间点的数据,需要同步到主机现在时间点的数据。复现步骤

【YashanDB知识库】如何在备机节点上做备份和恢复

问题现象

一主一备情况下,主机需要支持常规业务,为了不影响业务,在备机做备份恢复的场景。

问题的风险及影响

1、备机恢复后,会变成primary节点,出现脑裂。

2、备机恢复的数据,只是备份那一时间点的数据,需要同步到主机现在时间点的数据。

复现步骤

1、一主一备,正常场景如下

2、模拟主机执行业务,备机开始备份场景

主机插入20000000万条数据

SQL> create table tmp5(id number,rate number, jg_cod varchar(64), jg_cod2 varchar(64) , jg_cod3 varchar(64)) ORGANIZATION LSC;

Succeed.

SQL>

begin

for i in 1 .. 20000000 loop

insert into tmp5 values( i,DBMS_RANDOM.value(1000,10000), '100'||cast(DBMS_RANDOM.value(10,100) as int) , '200'||cast(DBMS_RANDOM.value(10,100) as int) , '300'||cast(DBMS_RANDOM.value(10,100) as int) );

if mod(i,1000) = 0 then

commit;

end if;

end loop;

commit;

end;

10 /

备机开始备份:

3、模拟备机根据备份集恢复数据

4、恢复后,变为两个primary节点,如下

备机查看tmp5表、scn、asn、flush\_point:

主机的tmp5表、scn、asn、flush\_point,对比发现scn小于备机的scn,asn和flush\_point大于备机的asn和flush\_point,如下图:

解决方法及规避方式

解决备机根据备份集恢复后,数据不一致的问题。

思路是备机的primary降备,然后同步数据即可。操作如下:

备机primary降备:

<p><span>-- 启动备变主库的节点(例如1-2)到mount状态</span></p><p>

<span>yasboot node start -c yashandb -n 1-2 -m mount</span></p><p>

<span>-- 备机的主库降备</span></p><p><span>ALTER DATABASE CONVERT

TO PHYSICAL STANDBY;</span></p><p><span>alter database open;</span></p>

同步数据,主机修复need repair状态:

<p><span>BUILD DATABASE REPAIR STANDBY standby1;</span></p>

发布者:admin,转转请注明出处:http://www.yc00.com/web/1748195246a4745829.html

相关推荐

  • 【YashanDB知识库】如何在备机节点上做备份和恢复

    问题现象一主一备情况下,主机需要支持常规业务,为了不影响业务,在备机做备份恢复的场景。问题的风险及影响1、备机恢复后,会变成primary节点,出现脑裂。2、备机恢复的数据,只是备份那一时间点的数据,需要同步到主机现在时间点的数据。复现步骤

    9小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信