写点什么

如何在 YashanDB 备机上安全进行备份与恢复操作

作者:数据库砖家
  • 2025-05-16
    广东
  • 本文字数:543 字

    阅读完需:约 2 分钟

问题背景

在主备部署架构下,主节点通常承担主要业务操作。为了不干扰生产,企业希望在备节点上进行备份及数据恢复操作。但这可能引发数据不一致及“脑裂”等问题。

风险说明

① 如果备机恢复后未降为备库,将自动变成主库,导致两个主节点共存。

② 恢复的数据只能回到备份时的状态,与主库现有数据存在差异。

操作重现与说明

① 正常主备状态:一主一备,数据同步中。

② 模拟主机插入数据,执行大批量数据写入(例如 2000 万条):

create table tmp5(...) ORGANIZATION LSC;begin  for i in 1 .. 20000000 loop    insert into tmp5 values(...);    if mod(i,1000) = 0 then commit; end if;  end loop;  commit;end;
复制代码

③ 备机开始备份并执行恢复操作。恢复后发现备机晋升为 primary,产生异常。

④ 主备数据状态对比:通过比较 tmp5 表的 SCN、ASN、flush_point 等信息,可确认主机与备机数据存在错位,说明恢复引起数据不一致。

解决方案

为了避免脑裂与数据不一致,恢复完成后应立即将备机转回物理备库,并同步数据:

将备机降为备库

yasboot node start -c yashandb -n 1-2 -m mountSQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;SQL> alter database open;
复制代码

主库执行修复同步

BUILD DATABASE REPAIR STANDBY standby1;
复制代码

执行完毕后,主备恢复正常同步状态。



用户头像

还未添加个人签名 2025-04-09 加入

还未添加个人简介

评论

发布
暂无评论
如何在 YashanDB 备机上安全进行备份与恢复操作_数据库_数据库砖家_InfoQ写作社区