• 达梦数据库恢复到指定时间点


    数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。

    如果能将数据库恢复到指定节点,可以有效的避免人多人工重复的操作,提高效率,提高高可用性。

    1 原理

    恢复数据库到指定时间点/LSN 是从归档恢复的一种方式,也称为不完全恢复。从归档恢复允许恢复到指定的时间点及指定的 LSN 值。若同时指定了时间点和 LSN,则以较早的为结束点。用户可以通过指定一个时间点/LSN,使数据库恢复到这个指定的时间点/LSN。

    2 条件

    • 数据库备份集
    • 数据库的归档日志

    3 实操

    场景:例如,用户在下午3点半左右做了一个误操作,删除了某些重要数据;我们可以指定恢复时间点到下午1点左右,恢复被误删除的数据。

    1:准备数据

    在这里插入图片描述
    2:数据库备份
    在这里插入图片描述
    3:正确操作数据库,产生一些归档;
    在这里插入图片描述
    4:确定当前时间:
    在这里插入图片描述
    5:查询此时的LSN
    在这里插入图片描述
    6:误操作数据: 通常的误操作为删除表数据
    在这里插入图片描述

    7:确定误操作的时间以及LSN
    在这里插入图片描述
    8:还原数据库
    步骤6为误操作,所以我们需要还原到步骤3的状态

    • 使用dmrman还原恢复数据,需要关闭数据库服务
      在这里插入图片描述
    • 还原数据库数据
     `RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/db_full_bak_for_time_lsn'`
    

    在这里插入图片描述

    • 恢复数据库到指定时间点/LSN
      恢复到指定的时间点:
    RECOVER DATABASE  '/dm8/data/DAMENG/dm.ini'  WITH ARCHIVEDIR
    > '/dm8/arch' UNTIL TIME '2022-09-29 13:58:51';
    

    在这里插入图片描述
    恢复到指定LSN

    RECOVER DATABASE  '/dm8/data/DAMENG/dm.ini'  WITH ARCHIVEDIR '/dm8/arch' UNTIL LSN 89950;
    

    在这里插入图片描述
    9:更新db_magic

    recover database'/dm8/data/DAMENG/dm.ini' update db_magic;
    

    在这里插入图片描述
    10:启动还原后的数据库,验证数据

    可以看到,步骤6误删除的数据,验证恢复数据库到被删除数据之前,
    在这里插入图片描述

  • 相关阅读:
    fastapi项目结构以及多进程部署
    C++ 泛型编程-模板
    “菜鸟”程序员逆袭:独立开发iOS音乐应用,年底参加Amazon DeepRacer 全球锦标赛
    Linux 部署 GitLab & idea 连接
    习题 --- 快排、归并、浮点数二分
    【课设资源分享】基于jsp的俱乐部会员系统
    应用服务器部署:安装Docker及摘取镜像
    用户运营中,数据分析给与企业的三个精准帮助
    权限架构~
    Vue中混入(mixin)的使用
  • 原文地址:https://blog.csdn.net/weixin_45699851/article/details/127104982