达梦数据库备份与恢复

达梦(DM)备份还原介绍
数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
DM 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM 数据库的操作,归根结底都是对某个数据文件页的读写操作。
因此,DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行回滚。
在这里插入图片描述此为备 份 、 还 原 与 恢 复 的 关 系

达梦数据库备份文件类型分为2种,一种是备份集(DM8向上版本建议都使用备份集),另一种是备份片(在DM7以下版本都是备份片)
备份集用来存放备份过程中产生的备份数据及备份信息。一个备份集对应了一次完整的备份。
一般情况下,一个备份集就是一个目录,备份集包含一个或多个备份片文件,以及一个备份元数据文件。

备份片用来存储备份数据的文件。备份时,目标数据文件内容或归档日志内容经过处理
后,都会存放到各自的备份片文件中。备份片文件后缀为.bak,用来存放备份数据,备份集中存放数据页的备份片称为数据备份片

备份集与备份片的关系
备份片的大小可以在备份时通过 MAXPIECESIZE 指定,一个备份集中可能生成多个备份片

达梦数据库支持物理备份和逻辑备份
这里主要介绍物理备份
物理备份可以以联机备份和脱机备份来区分
联机备份:
数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份。
联机备份则使用客户端工具连接到数据库实例后,通过执行 SQL 语句进行;也可以通过配置作业,定时完成自动备份。联机备份不影响数据库正常提供服务,是最常用的备份手段之一;
联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,需要将备份期间产生的 REDO 日志一起备份。因此,只能在配置本地归档、并开启本地归档
的数据库上执行联机备份。
脱机备份:
数据库处于关闭状态时进行的备份操作,被称为脱机备份。
使用 DMRMAN 工具进行脱机备份,并且支持对异常关闭的数据库进行脱机库备份。备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修复本地归档,再进行备份。
达梦数据库又可以以一致性备份和非一致性备份来区分
按照备份集中的数据是否满足一致性,可以将备份划分为一致性备份和非一致性备份。
一致性备份的备份集包含了完整的数据文件内容和归档日志信息;利用一个单独的备份集可以将数据库恢复到备份时状态。不指定 WITHOUT LOG 选项的联机备份生成的备份集
就是一致性备份。脱机数据库备份会强制将检查点之后的有效 REDO 日志拷贝到备份集中,因此,脱机备份一定是一致性备份。数据库正常关闭时,会生成完全检查点,脱机备份生成
的备份集中,不包含任何 REDO 日志。
非一致性备份的备份集只包含数据文件相关内容,没有归档日志信息,利用非一致性备
份还原的数据库,无法直接启动,必须借助归档日志来恢复。表空间备份、指定 WITHOUT LOG
选项的联机备份生成的备份集都是非一致性备份集。
完全备份和增量备份
按照备份数据完整性,可将备份分为完全备份和增量备份。库备份和表空间备份支持增量备份,表备份不支持增量备份。
完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。当数据规模比较大的情况下,生成的完全备份集通常会比较大,而且备份时间也会比较长
因为只做全备太消耗数据库的资源,合理的备份策略制定是每个DBA应该做的
增量备份又分为差异增量备份和累积增量备份
差异增量备份
差异增量备份的基备份既可以是一个完全备份集,也可以是一个增量备份集。
利用增量备份进行还原操作时,要求其基备份必须是完整的;如果差异增量备份的基备份本身也是一个增量备份,那么同样要求其基备份是完整的;任何一个增量备份,最终都是以一个完全备份作为其基备份。因此,完全备份是增量备份的基础。
累积增量备份
累积增量备份的基备份只能是完全备份集,而不能是增量备份集。
增量备份的基备份集既可以是脱机备份生成的,也可以是联机备份生成的,脱机增量备份的基备份集可以是联机备份生成的,联机增量备份的基备份集也可以是脱机备份生成的。
还原与恢复
还原是备份的逆过程,就是从备份集中读取数据页,并将数据页写入到目标数据库对应数据文件相应位置的过程。
由于联机备份时,系统中可能存在一些处于活动状态的事务正在执行,并不能保证备份集中的所有数据页是处于一致性状态;而脱机备份时,数据页不一定是正常关闭的,也不能保证备份集中所有数据页是处于一致性状态。因此,还原结束后目标库有可能处于非一致性状态,不能马上提供数据库服务;必须要进行数据库恢复操作后,才能正常启动。

备份还原原理:
1.归档说明
备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点
就是将 Redo 日志写入到本地归档日志文件的过程。配置本地归档情况下,Redo 日志刷盘线程将 Redo 日志写入联机 Redo 日志文件后,对应的 RLOG_PKG 由专门的归档线程负责写入本地归档日志文件中。

与联机 Redo 日志文件可以被覆盖重用不同,本地归档日志文件不能被覆盖,写入其中的 Redo 日志信息会一直保留,直到用户主动删除;如果配置了归档日志空间上限,系统会自动删除最早生成的归档 Redo 日志文件,腾出空间。如果磁盘空间不足,且没有配置归档日志空间上限(或者配置的上限超过实际空间),系统将自动挂起,直到用户主动释放出足够的空间后继续运行。

DM 提供了按指定的时间或指定的 LSN 删除归档日志的系统函数(SF_ARCHIVELOG_DELETE_BEFORE_TIME 和
SF_ARCHIVELOG_DELETE_BEFORE_LSN),但需谨慎使用。避免归档日志缺失,导致数据无法恢复。

归档日志备份
与联机备份收集备份过程中产生的 REDO 日志写入备份集不同,归档日志备份专门用来备份本地归档日志文件,将符合条件的本地归档日志文件拷贝到备份集中保存起来。
归档日志备份仅备份指定数据库生成的本地归档日志文件,要求归档日志文件的DB_MAGIC 与数据库的 DB_MAGIC 保持一致。如果本地归档目录中包含多个不同数据库的归档日志文件,也只会备份一个特定数据库的归档日志。由于经过还原后数据库的DB_MAGIC 会产生变化,因此即便 PERMANENT_MAGIC 相同DB_MAGIC 不同的数据库产生的归档日志也不会备份。
与普通的数据库备份一样,归档日志备份也支持加密与压缩功能,可以联机执行归档日志备份,也可以在数据库关闭情况下使用 DMRMAN 工具进行脱机备份。归档日志备份时,可以指定是否删除已经备份的归档日志文件,在生成归档日志备份集的同时,删除本地归档日志文件,释放磁盘空间。
由于本地归档的异步实现机制,为了确保归档日志备份的完整性,一般会在归档日志备份之前执行一个归档切换动作。

备份还原举例说明:
实验1:验证从归档恢复数据库的实验
先做一个数据库的全备,然后插入数据,并生成归档 最后用归档追加数据,找到我们创建的这张表 因为创建表是在做备份之后,所以必须用归档才能找到数据。
1.做数据库的全备 SQL> backup database backupset ‘/dm/backup/db_bak_20200509/’;
在这里插入图片描述
2.用SQL命令往数据库里面写数据
在这里插入图片描述

3.模拟数据库宕机或者丢失数据文件,破坏数据库的redo文件,一定不要在生产环境这么玩!!!
在这里插入图片描述
4.4.用备份恢复数据库 RMAN> restore database ‘/dm/data/DAMENG/dm.ini’ from backupset ‘/dm/backup/db_bak_20200509’;
在这里插入图片描述
5.用归档再做recover
RMAN> recover database ‘/dm/data/DAMENG/dm.ini’ with archivedir ‘/dm/data/DAMENG/arch’;
在这里插入图片描述
6.更新数据库魔数
在这里插入图片描述
7.启动数据库并且查询表结构,发现表在,就说明表恢复成功了
在这里插入图片描述
实验2:验证从备份集恢复数据库的实验
1.破坏数据库的redo文件,并验证redo文件的损坏会不会造成数据库损坏
在这里插入图片描述
发现数据库已经进不去了
在这里插入图片描述
2.关库,并用RMAN做restore,因为还原全库只能在脱机模式下还原
在这里插入图片描述
3.recovery数据库
在这里插入图片描述
4.更新数据库魔数
在这里插入图片描述
5.在OS层启动数据库
在这里插入图片描述
6.发现可以登陆到数据库,恢复成功
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值