首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何在 YashanDB 备机上安全进行备份与恢复操作

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

原创
作者头像
数据库砖家
发布2025-05-16 19:50:13
发布2025-05-16 19:50:13
1280
举报

问题背景

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

风险说明

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

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

操作重现与说明

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

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

代码语言:javascript
复制
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 等信息,可确认主机与备机数据存在错位,说明恢复引起数据不一致。

解决方案

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

将备机降为备库

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

主库执行修复同步

代码语言:javascript
复制
BUILD DATABASE REPAIR STANDBY standby1;

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档