(一)基础概念

备份
  数据库备份与还原是系统容灾的重要方法。备份就是将待备份的数据经过加密、压缩等处理后写入备份片文件中,并将相关备份信息写入备份元数据文件的过程。备份的目的就是在数据库遭到损坏时可以执行还原恢复操作把数据库复原到损坏前的某个时间点。

备份集
用来存放备份过程中产生的备份数据及备份信息。一个备份集对应一次完整的备份,一个备份集为一个目录,由一个或多个备份片文件和一个元数据文件组成。

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

元数据
元数据文件用来存放备份信息,元数据文件的后缀为.meta。通过元数据文件,可以了解整个备份集信息。

还原
还原是备份的逆过程,就是把备份集中的备份数据经过处理后写回还原目标库中相应的数据文件中的过程。

恢复
恢复是重做本地归档日志或者备份集中备份的归档日志的过程。

备份库
备份库是指需要进行备份的库,又称源库或源备份库。

还原库
还原库指用来做还原的库,又称目标库或者还原目标库。

恢复库
恢复库是指已经做过恢复的库。

(二)备份还原分类

逻辑备份
利用 dexp 导出工具,将指定对象(库级、模式级、表级)的数据导出到文件的备份方式。

物理备份
根据备份范围(库级、模式级、表级)将数据文件中有效数据页和归档日志复制到备份片文件中的过程。

         物理备份是更强健的数据保护方式,也是备份策略中的首选;逻辑备份作为物理备份的补充方式,更加灵活。

联机备份和脱机备份

  数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份。数据库处于关闭状态时进行的备份操作,被称为脱机备份。
  备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修复本地归档,再进行备份。

  联机备份则使用客户端工具连接到服务器实例后,通过执行 SQL 语句进行;也可以通过配置作业,定时完成自动备份。联机备份不影响数据库正常提供服务,是最常用的备份手段之一。

  联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,需要将备份期间产生的 REDO 日志一起备份。因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。
  只有已经关闭的数据库才允许执行脱机备份。正在运行的数据库,无法执行脱机备份,系统会报错。

数据备份和归档日志备份

  按照备份内容不同,可以分为数据备份和归档日志备份。数据备份主要针对数据文件内容,包括库备份、表空间备份和表备份。

  库备份,又称为库级备份。库备份会拷贝数据库中所有数据文件的有效数据页,如果是联机备份,则还会拷贝备份过程中产生的归档日志,写入到备份集中。

  表空间备份是针对特定表空间执行的备份,又称为表空间级备份。表空间备份只能在联机状态下执行。

  表备份则拷贝指定表的所有数据页到备份集中,并会记录各个数据页之间的逻辑关系用以恢复。表备份只能在联机状态下执行,一次表备份操作只能备份一张用户表,并且不支持增量表备份。

  归档日志备份,是专门针对归档日志文件进行操作,不涉及任何数据文件内容。归档日志备份扫描归档目录收集档文件,并将归档日志写入到备份集中。既可以在数据库运行状态下,执行联机归档日志备份;也可以在数据库关闭状态下执行脱机归档日志备份。

一致性备份和非一致性备份

  按照备份集中的数据是否满足一致性,可以将备份划分为一致性备份和非一致性备份。
  一致性备份的备份集包含了完整的数据文件内容和归档日志信息;利用一个单独的备份集可以将数据库恢复到备份时状态。不指定 WITHOUT LOG 选项的联机备份生成的备份集就是一致性备份。脱机数据库备份会强制将检查点之后的有效 REDO 日志拷贝到备份集中,因此,脱机备份一定是一致性备份。数据库正常关闭时,会生成完全检查点,脱机备份生成的备份集中,不包含任何 REDO 日志。

  非一致性备份的备份集只包含数据文件相关内容,没有归档日志信息,利用非一致性备份还原的数据库,无法直接启动,必须借助归档日志来恢复。表空间备份、指定 WITHOUT LOG选项的联机备份生成的备份集都是非一致性备份集。

完全备份和增量备份

  按照备份数据完整性,可将备份分为完全备份和增量备份。库备份和表空间备份支持增量备份,表备份不支持增量备份。
完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。当数据规模比较大的情况下,生成的完全备份集通常会比较大,而且备份时间也会比较长。

  增量备份是在某个特定备份集基础上,收集数据库新修改的数据页进行备份,可以有效减少备份集的空间占用、提高备份速度。这个特定的、已经存在的备份集称为增量备份的基备份,根据对基备份的要求不同,DM 的增量备份分为以下两种:

  1. 差异增量备份

  差异增量备份的基备份既可以是一个完全备份集,也可以是一个增量备份集。
  利用增量备份进行还原操作时,要求其基备份必须是完整的;如果差异增量备份的基备份本身也是一个增量备份,那么同样要求其基备份是完整的;任何一个增量备份,最终都是以一个完全备份作为其基备份。因此,完全备份是增量备份的基础。

  1. 累积增量备份

  累积增量备份的基备份只能是完全备份集,而不能是增量备份集。
  增量备份时,并不关心其基备份集是脱机备份生成的,还是联机备份生成的,脱机增量备份的基备份集可以是联机备份生成的,联机增量备份的基备份集也可以是脱机备份生成的。

逻辑还原和物理还原

  逻辑还原是逻辑备份的逆过程,逻辑还原就是使用 dimp 工具,把 dexp 导出的备份数据重新导入到目标数据库。
  物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN 工具(或者 SQL 语句),把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。

联机还原和脱机还原

  联机还原指数据库处于运行状态时,通过 SQL 语句执行还原操作。表空间还原和表还原可以在联机状态下执行,并且表空间还原要求目标表空间不是 ONLINE 状态。
  脱机还原指数据库处于关闭状态时执行的还原操作,脱机还原通过 DMRMAN 工具进行。
  库备份、表空间备份和归档备份,可以执行脱机还原。脱机还原操作的目标库必须处于关闭状态。

数据还原和归档日志还原

  根据备份集类型,数据还原可以分为库还原、表空间还原和表还原。库还原的目标库必须处于关闭状态;表空间还原既可以脱机执行也可以联机执行;表还原操作只能联机执行。
  表空间还原的数据来源既可以是表空间备份集,也可以是库备份集。还原的目标表空间不能是 TEMP 表空间,只能是 MAIN、SYSTEM、ROLL 表空间,或者用户定义的表空间。
  表还原从表备份集读取数据,重新恢复目标表数据,还会在目标表上重建索引、约束。
  归档日志还原则将归档日志备份集中的归档日志内容,重新生成到指定目录中。

完全还原和增量还原

  完全还原是指直接利用完全备份集进行数据还原操作。增量还原指通过增量备份集进行数据还原操作。但是考虑到增量备份集的基础一定是一个完全备份集,因此增量还原过程中隐含了一个完全还原操作。如果增量备份集的基备份集被删除了,那么单独使用这个增量备份集是无法进行还原操作的。

————资料来源于《达梦数据库应用基础》