GBase8s chunk状态PD恢复

chunk状态PD恢复

chunk文件重命名、路径变更等误操作问题,会导致数据库服务无法找到对应文件,从而对 chunk 及 dbspaces 标记PD、ND。
即使恢复数据文件到原状态,重启服务,但 rootdbs 状态信息已经更改,需要手动更新状态码,才能重新启用该chunk。

检查需要修改的dbspace、chunk的状态码

检查 dbspace 状态 oncheck -pr

在这里插入图片描述

正常FLags 最后一位 1 ,当前为 5 ,需要修改。

在这里插入图片描述

正常 Flags最后两位40 ,当前为 20 ,需要修改。

定位涉及的页并导出修改

注:修改有问题的页即可,并非需要全部导出导入一遍。

dbspace 相关页

查看 dbspace 保留页 oncheck -pP 1 4

在这里插入图片描述

可见,有问题的dbspace 存放在 slot5 ,红框内容为Flags值 5060,查询该 slot 对应的偏移量。

在这里插入图片描述

1176为十进制数字,换算到十六进制为 498 ,即有问题的dbspace在该页的 498 行。

导出 dbspace 保留页
dd if=/opt/Gbase330/dbs/rootdbs bs=2k count=1 skip=4 of=page4
编辑 dbspace 保留页

根据偏移量 498 ,找到对应行,并修改。

在这里插入图片描述

导入到 rootdbs 块
dd if=page4 bs=2k count=1 seek=6 conv=notrunc of=/opt/Gbase330/dbs/rootdbs

chunk相关页

查看 chunk 保留页

rootdbs 中,头12页为保留页。包含 chunk 信息的保留页位置为 6、7。但是可能不足以存在所有chunk信息。因此,next 指向的页为扩展存储chunk信息的保留页。

保留页 7 为 保留页 6 的备份,均需修改。以下例子仅举其一修改过程。

在这里插入图片描述

图中所示十六进制数 7025 转换为十进制为 28709,查询对应页。

在这里插入图片描述

当前数据库服务拥有 7 个 chunk 文件,即一共有 7 个 slot 记录,一页最多 6 个 slot,因此页 6 有一个扩展页。找到有问题chunk对应的slot。

在这里插入图片描述

查询该 slot 的偏移量。

在这里插入图片描述

如图所示,存储该 slot 信息的位置为 页 6 偏移量 3A8 (十进制936)。页 6 的扩展页记录为 chunk 7 的信息,不涉及有问题的chunk,因此,无需导出。

导出 chunk 保留页
dd if=/opt/Gbase330/dbs/rootdbs bs=2k count=1 skip=6 of=page6
dd if=/opt/Gbase330/dbs/rootdbs bs=2k count=1 skip=7 of=page7
编辑 chunk 保留页

根据偏移量 3A8,找到对应行,并修改。

在这里插入图片描述

导入到 rootdbs 块
dd if=page6 bs=2k count=1 seek=6 conv=notrunc of=/opt/Gbase330/dbs/rootdbs
dd if=page7 bs=2k count=1 seek=7 conv=notrunc of=/opt/Gbase330/dbs/rootdbs

完,启动数据库 oninit -vy

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值