0
点赞
收藏
分享

微信扫一扫

无缝迁移至阿里云RocketMQ:从私有化部署到云端的实用指南

SPEIKE 2024-06-28 阅读 29

1. 概述

数据复原

  • 可以使用archecker程序恢复之前已使用onbar或者ontape备份的数据中的一部分
  • 可以恢复数据库的一部分、一张表、表的一部分或一组表
  • 可以复原到特定的时间点

复制数据

  • 起始以文本形式抽取数据,可以在不同平台或者服务器之间抽取数据
  • 可以把表从生产系统移动到另一个系统

2. archecker的还原注意事项

archecker还原数据的前提是必须有物理备份和逻辑备份,且物理备份不能有1级备份和2级备份,必须在0级备份的基础上才能进行archecker操作

3. archecker还原的两种方式

archecker还原有两种:

  • 基于0级归档的物理还原,不做逻辑还原
  • 先执行物理还原,然后执行逻辑还原以将数据复原到特定时间点

archecker的还原的方式选择

  • 缺省的情况下,archecker执行物理还原和逻辑还原两种
  • 如果使用了with no log子句,则不进行逻辑还原

4. archecker物理还原的步骤

物理还原的步骤:

  • 数据复原之前,禁用所有的约束(包括引用此目标表的外部约束)、索引和触发器。如果没有这些,则还原性能会更好
  • 读取提供的配置文件,确定以下信息
    • 源表
    • 目标表
    • 表的模式
    • 表的数据库空间名称
    • 从中抽取数据的特定归档
  • 扫描归档,寻找属于被复原的表的页面
  • 处理数据页的每一行,确定该行是完整的还是部分的,如果是部分的可能会后续进行处理
  • 对于单纯的物理还原,对该行应用过滤条件并拒绝不需要的行
  • 将该行插入目标表

5. archecker逻辑还原的步骤

逻辑还原

  • 物理还原后,逻辑还原可以进一步将表复原到用户指定的时间点,为此archecker读取已备份的逻辑日志
  • 将读取到的逻辑日志转为SQL语句,重放这些语句以复原数据(逻辑日志不能从当前正在使用的逻辑日志中读取并转为sql语句,需要复原的事务所在的逻辑日志都需要备份出来)
  • 如果复原期间一个表被更改、删除或者阶段,那么复原终止,终止发生在执行更改的点上,archecker消息日志文件中的消息将记录发生了更改操作
  • archecker 实用程序无法在逻辑复原非记录数据库中的压缩表期间处理压缩字典。如果逻辑复原发现为表创建了新的压缩字典,那么复原将为该表停止
  • 逻辑复原时,archecker将会同时运行两个进程
    • stager:汇编逻辑日志并将其保存在表中
      • 读取逻辑日志备份文件并汇编成完整的日志记录
      • 任何不适用于被复原的表的日志记录将被拒绝
      • 如果逻辑日志信息没有被拒绝,则将它插入到下一个阶段的中间过程的表内
      • 附加:archecker在逻辑还原时将会为逻辑日志记录的产生创建几个表,在sysutils数据库中创建,并存储在set workspace to 的数据空间内
    • applier:将日志记录转为sql语句并执行这些语句
      • 从stager创建的空值表中读取数据,处理相关事务,并更新控制表以显示该事务正在处理
      • 按顺序对每条日志记录逐步进行操作,直到事务落实
        • 对控制表的更新在同一个事务中以日志记录修改的形式出现,使用所有的工作可以作为一个独立单元完成或撤销,保持了完整性。
        • 如果事务回滚,该错误将记录到该事务的控制表条目中
举报

相关推荐

0 条评论