DM8备份与还原(一)简介

  1. 备份还原:
    数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
    1.1概述:
    DM 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM 数据库的操作,归根结底都是对某个数据文件页的读写操作。
    因此,DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
    还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行回滚。
    1.2 备份集
    备份集用来存放备份过程中产生的备份数据及备份信息。一个备份集对应了一次完整的备份。一般情况下,一个备份集就是一个目录,备份集包含一个或多个备份片文件,以及一个备份元数据文件。并行备份和非并行备份情况下,备份集里的内容略有不同。
    1.3 备份片:
    备份片用来存储备份数据的文件。备份时,目标数据文件内容或归档日志内容经过处理后,都会存放到各自的备份片文件中。备份片文件后缀为.bak,用来存放备份数据,备份集中存放数据页的备份片称为数据备份片,存放 REDO 日志的备份片称为日志备份片。
    备份片的大小可以在备份时通过 MAXPIECESIZE 指定,一个备份集中可能生成多个备份片。
    1.4元数据:
    元数据文件用来存放备份信息,元数据文件的后缀为.meta。通过元数据文件,可以了解整个备份集信息。元数据文件中包含的备份信息包括:
     备份集本身相关的信息,如是否联机备份,备份的范围,备份的加密信息,以及备份的压缩信息等;
     备份源库的建库参数信息,如 DSC 的节点数,是否大小写敏感,PAGE_CHECK 属性等;
     数据文件信息,如备份了哪些数据文件,文件大小,以及文件相关的表空间信息等;
     备份片的信息,如包含哪些备份片文件、备份片大小等信息;
     备份库的dm.ini 参数信息和密钥文件 ( dm_service.private 或者dm_external.config,若指定 usbkey 加密,则不备份)。

  2. 备份
    备份的目的是当数据库遇到损坏的情况下,可以执行还原恢复操作,把数据库复原到损坏前的某个时间点。用于还原恢复数据库的载体是备份集,生成备份集的过程便是备份了。备份就是从源库(备份库)中读取有效数据页、归档日志等相关信息,经过加密、压缩等处理后写入备份片,并将相关备份信息写入备份元数据文件的过程。

    2.1 逻辑备份和物理备份:
    2.1.1 逻辑备份:
    是指利用 dexp 导出工具,将指定对象(库级、模式级、表级)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。
    2.1.2 物理备份:
    是直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。
    这两种备份方式,分别适应不同的应用场景。

    2.2 联机备份和脱机备份:
    数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份。数据库处于关闭状态时进行的备份操作,被称为脱机备份。只有已经关闭的数据库才允许执行脱机备份。正在运行的数据库,无法执行脱机备份,系统会报错。
    从 V2.0 版本开始,使用 DMRMAN 工具进行脱机备份,并且支持对异常关闭的数据库进行脱机库备份。备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修复本地归档,再进行备份。
    联机备份则使用客户端工具连接到数据库实例后,通过执行 SQL 语句进行;也可以通过配置作业,定时完成自动备份。联机备份不影响数据库正常提供服务,是最常用的备份手段之一。
    联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,需要将备份期间产生的 REDO 日志一起备份。因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。

    2.3 数据备份和归档日志备份:
    按照备份内容不同,可以分为数据备份和归档日志备份。
    2.3.1 数据备份主要针对数据文件内容,包括库备份、表空间备份和表备份:
     库备份,顾名思义就是对整个数据库执行的备份,又称为库级备份。库备份会拷贝数据库中所有数据文件的有效数据页,如果是联机备份,则还会拷贝备份过程中产生的归档日志,写入到备份集中。
     表空间备份是针对特定表空间执行的备份,又称为表空间级备份。表空间备份只能在联机状态下执行。
    表备份则拷贝指定表的所有数据页到备份集中,并会记录各个数据页之间的逻辑关系用以恢复。表备份只能在联机状态下执行,一次表备份操作只能备份一张用户表,并且不支持增量表备份。
    2.3.2 归档日志备份:
    是专门针对归档日志文件进行操作,不涉及任何数据文件内容。归档日志备份扫描归档目录收集归档日志文件,并将归档日志写入到备份集中。既可以在数据库运行状态下,执行联机归档日志备份;也可以在数据库关闭状态下执行脱机归档日志备份。

    2.4 一致性备份和非一致性备份:
    按照备份集中的数据是否满足一致性,可以将备份划分为一致性备份和非一致性备份。
    2.4.1 一致性备份:
    一致性备份的备份集包含了完整的数据文件内容和归档日志信息;利用一个单独的备份集可以将数据库恢复到备份时状态。不指定 WITHOUT LOG 选项的联机备份生成的备份集就是一致性备份。脱机数据库备份会强制将检查点之后的有效 REDO 日志拷贝到备份集中,因此,脱机备份一定是一致性备份。数据库正常关闭时,会生成完全检查点,脱机备份生成的备份集中,不包含任何 REDO 日志。
    2.4.2 非一致性备份:
    非一致性备份的备份集只包含数据文件相关内容,没有归档日志信息,利用非一致性备份还原的数据库,无法直接启动,必须借助归档日志来恢复。表空间备份、指定 WITHOUT LOG选项的联机备份生成的备份集都是非一致性备份集。

    2.5 完全备份和增量备份:
    按照备份数据完整性,可将备份分为完全备份和增量备份。库备份和表空间备份支持增量备份,表备份不支持增量备份。
    完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。当数据规模比较大的情况下,生成的完全备份集通常会比较大,而且备份时间也会比较长。
    增量备份是在某个特定备份集基础上,收集数据库新修改的数据页进行备份,可以有效减少备份集的空间占用、提高备份速度。这个特定的、已经存在的备份集称为增量备份的基备份,根据对基备份的要求不同,DM 的增量备份分为以下两种:
    (1)差异增量备份:
    差异增量备份的基备份既可以是一个完全备份集,也可以是一个增量备份集。利用增量备份进行还原操作时,要求其基备份必须是完整的;如果差异增量备份的基备份本身也是一个增量备份,那么同样要求其基备份是完整的;任何一个增量备份,最终都是以一个完全备份作为其基备份。因此,完全备份是增量备份的基础。
    (2)累积增量备份:
    累积增量备份的基备份只能是完全备份集,而不能是增量备份集。
    增量备份的基备份集既可以是脱机备份生成的,也可以是联机备份生成的,脱机增量备份的基备份集可以是联机备份生成的,联机增量备份的基备份集也可以是脱机备份生成的。

  3. 还原与恢复
    还原是备份的逆过程,就是从备份集中读取数据页,并将数据页写入到目标数据库对应数据文件相应位置的过程。
    由于联机备份时,系统中可能存在一些处于活动状态的事务正在执行,并不能保证备份集中的所有数据页是处于一致性状态;而脱机备份时,数据页不一定是正常关闭的,也不能保证备份集中所有数据页是处于一致性状态。因此,还原结束后目标库有可能处于非一致性状态,不能马上提供数据库服务;必须要进行数据库恢复操作后,才能正常启动。
    与备份类似,下面将从数据组织形式、数据库状态、还原粒度、还原内容等方面介绍还原的相关内容。
    3.1 逻辑还原和物理还原:
    逻辑还原是逻辑备份的逆过程,逻辑还原就是使用 dimp 工具,把 dexp 导出的备份数据重新导入到目标数据库。
    物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN 工具(或者 SQL 语句),把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。
    3.2 联机还原和脱机还原:
    联机还原指数据库处于运行状态时,通过 SQL 语句执行还原操作。表还原可以在联机状态下执行。
    脱机还原指数据库处于关闭状态时执行的还原操作,脱机还原通过 DMRMAN 工具进行。
    库备份、表空间备份和归档备份,可以执行脱机还原。脱机还原操作的目标库必须处于关闭状态。
    3.3 数据还原和归档日志还原:
    根据备份集类型,数据还原可以分为库还原、表空间还原和表还原。库还原和表空间必须脱机执行;表还原操作只能联机执行。
    表空间还原的数据来源既可以是表空间备份集,也可以是库备份集。还原的目标表空间不能是 TEMP 表空间,只能是 MAIN、SYSTEM、ROLL 表空间,或者用户定义的表空间。
    表还原从表备份集读取数据,重新恢复目标表数据,还会在目标表上重建索引、约束。归档日志还原则将归档日志备份集中的归档日志内容,重新生成到指定目录中。
    3.4 完全还原和增量还原:
    完全还原是指直接利用完全备份集进行数据还原操作。
    增量还原指通过增量备份集进行数据还原操作。但是考虑到增量备份集的基础一定是一个完全备份集,因此增量还原过程中隐含了一个完全还原操作。如果增量备份集的基备份集被删除了,那么单独使用这个增量备份集是无法进行还原操作的。

  4. 备份方式:
    当前仅支持备份集方式的备份还原,不再支持其他备份方式。备份还原实现策略有两种:
    dmap 辅助进程方式和无辅助进程方式。用户可通过 DM.INI 参数 bak_use_ap 来选择(dmrman 使用参数 use_ap),bak_use_ap 取值 1、2。默认为 1。
    (1)DMAP 辅助进程方式,可支持第三方备份(指定 DEVICE TYPE 为 TAPE)。DMAP插件执行,改造了备份还原任务子系统,允许指定并行度,大幅提升了备份还原的效率,特别是加密、压缩的处理效率。如果选择使用 DMAP 辅助进程,执行备份还原之前就必须启动DMAP 服务。安装 DM 数据库以后,DMAP 服务会自动启动。如果需要手动启动,有两种途径,一是启动 DM 服务查看器中的 DmAPService。二是通过手动启动 DMAP 执行码实现,DMAP执行码位于 DM 安装目录的 bin 子目录下。除此之外,LINUX 下,还可以调用 bin 目录下的 DmAPService 脚本。
    (2)无辅助进程方式,不依赖 DMAP,由主进程 dmserver 自身执行备份还原,但不支持第三方备份(指定 DEVICE TYPE 为 TAPE)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值