物理备份还原

文章目录

  • 一.简介
  • 二.准备工作
  • 三.联机备份还原
  • 四.脱机备份还原

一.简介

1.备份还原简介

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

DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。

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

还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行回滚。

2.物理备份简介

物理备份则直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备 份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。

(1)联机备份和脱机备份

按照数据库状态划分,可将备份分为联机备份和脱机备份。

数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份。数据库处于关闭状态时进行的备份操作,被称为脱机备份。

使用 DMRMAN 工具进行脱机备份,并且支持对异常关闭的数据库进行脱机库备份。备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修复本地归档,再进行备份。

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

联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,需要将备份期间产生的 REDO 日志一起备份。因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。

(2)完全备份和增量备份

按照备份数据完整性,可将备份分为完全备份和增量备份。库备份和表空间备份支持增量备份,表备份不支持增量备份。

完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。当数据规模比较大的情况下,生成的完全备份集通常会比较大,而且备份时间也会比较长。

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

1. 差异增量备份

差异增量备份的基备份既可以是一个完全备份集,也可以是一个增量备份集。

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

2. 累积增量备份

累积增量备份的基备份只能是完全备份集,而不能是增量备份集。

增量备份的基备份集既可以是脱机备份生成的,也可以是联机备份生成的,脱机增量备份的基备份集可以是联机备份生成的,联机增量备份的基备份集也可以是脱机备份生成的。

3.物理还原简介

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

由于联机备份时,系统中可能存在一些处于活动状态的事务正在执行,并不能保证备份集中的所有数据页是处于一致性状态;而脱机备份时,数据页不一定是正常关闭的,也不能保证备份集中所有数据页是处于一致性状态。因此,还原结束后目标库有可能处于非一致性状态,不能马上提供数据库服务;必须要进行数据库恢复操作后,才能正常启动。

(1)联机还原和脱机还原

联机还原指数据库处于运行状态时,通过 SQL 语句执行还原操作。表还原可以在联机状态下执行。

脱机还原指数据库处于关闭状态时执行的还原操作,脱机还原通过 DMRMAN 工具进行。库备份、表空间备份和归档备份,可以执行脱机还原。脱机还原操作的目标库必须处于关闭状态。

(2)完全还原和增量还原

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

4.归档

备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。

Redo 日志本地归档(LOCAL),就是将 Redo 日志写入到本地归档日志文件的过程。

远程归档(REMOTE ARCHIVE),顾名思义就是将归档目录配置在远程节点上。具体有两种配置方式:一是共享本地归档的远程归档,即将远程归档目录配置为另一节 点的本地归档目录,以此来共享它的本地归档日志文件;二是通过 MAL 发送的远程归档, 即将写入本地归档的 REDO 日志信息,通过 MAL 发送到远程节点,并写入远程节点的指定归档目录中,形成远程归档日志文件。

5.备份还原方法

DM提供了各种手段进行备份与还原恢复的操作,包括备份还原SQL语句、DMRMAN(DM RECOVERY MANEGER)工具、图形化工具DM管理工具和DM控制台工具。借助DISQL交互式工具中执行备份还原SQL语句可完成联机的数据备份与数据还原,包括数据库备份、归档备份、表空间备份与还原、表备份与还原;DMRMAN工具用于执行脱机的数据备份、还原与恢复,包括脱机的数据库备份、还原与恢复,脱机还原表空间,归档的备份、还原与修复;DM管理工具和DM控制台工具为图形化操作工具,DM管理工具对应SQL备份还原语句,DM控制台工具对应DMRMAN工具,分别用于联机和脱机备份还原数据。

二.准备工作

1.支持与限制

(1)联机备份

对联机备份的支持与限制:

1) MPP 环境仅允许库和归档备份,且各节点都会执行,生成相应的备份集,支持 DDL CLONE

2)DSC 环境支持库备份、表空间备份和表备份,要求 DSC 环境的所有节点都处于 OPEN 状态;

3) MOUNT 状态仅支持归档备份;

4) SUSPEND 状态所有备份均不支持;

5) OPEN 状态支持所有备份,支持 DDL CLONE

6) PRIMARY 模式支持所有备份,支持 DDL CLONE

7) STANDBY 模式仅支持库级、表空间级和归档备份,支持 DDL CLONE

8) DDL CLONE 必须备份归档,不允许指定 WITHOUT LOG

(2)联机还原

仅支持表级还原,对联机还原的支持与限制:

1) MPP 和分布式数据库不支持;

2) PRIMARY 支持;

3) SUSPEND 状态所有还原均不支持;

4) OPEN/NORMAL 支持。

(3)脱机备份

脱机备份支持库级和归档备份。

1) MPP 视同单机环境,仅当前节点执行备份操作;

2) 允许异常退出后备份,支持 DDL_CLONE

3) DSC 支持库级备份,支持 DDL_CLONE;当 DSC 环境下正常节点的 CKPT_LSN 小于故障节点的 CKPT_LSN 时,不支持脱机备份。

(4)脱机还原

脱机还原跟目标库所处的模式、状态以及集群环境(MPP DSC)无关,允许库级、表空间级和归档还原。

在一般的应用场景中,常规性的数据库维护工作,即在不影响数据库正常运行的情况下,建议定期执行联机数据库备份,且完全备份和增量备份结合使用。执行两次完全备份的时间间隔可以尽量长一点,在两次完全备份之间执行一定数量的增量备份,比如,可以选择每周执行一次完全备份,一周内每天执行一次增量备份。为了尽量减少对数据库正常工作的影响,建议备份时间,选择在工作量较少的时间,比如深夜。

2.归档配置

(1)配置归档场景

联机备份数据库必须要配置归档。联机备份时,大量的事务处于活动状态,为确保备份数据的一致性,需要同时备份一段日志(备份期间产生的 REDO 日志),因此要求数据库必须配置本地归档且归档必须处于开启状态。

脱机备份数据库可配置归档也可以不配置。正常退出的库的备份不需要考虑本地归档日志的完整性,可以不配置归档;但对于故障退出的库的备份要求因故障未刷盘的日志也必须存在于本地归档中,因此必须配置归档,如果本地归档缺失,需要用户先修复归档,然后再备份。

备份表空间属于联机备份,必须配置归档。

备份表虽然是联机完全备份,但不需要配置归档。因为表在还原之后不需要再进行恢复操作,用不到归档日志。

备份归档日志必须配置归档。 

(2)联机配置归档

修改数据库为MOUNT状态:

alter database mount;

配置本地归档:

ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmarch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 10240';

开启归档模式:

ALTER DATABASE ARCHIVELOG;

修改数据库为OPEN状态:

ALTER DATABASE OPEN;

查询 v$dm_arch_ini、v$arch_status 等动态视图可以获取归档配置以及归档状

态等相关信息。

select * from v$arch_status;

(3)手动配置归档

cd /dmdata/DAMENG

vi dm.ini

ARCH_INI = 1

 

vi dmarch.ini

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmarch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 2048

 

 ./dmserver /dmdata/DAMENG/dm.ini

exit 

目的:启动数据库实例,让数据库运行于归档模式。 

三.联机备份还原

1.图形化(DM管理工具)

MANAGER 工具的对象导航树中的备份节点提供了联机备份还原相关的各项操作。导航树备份节点下面包含四个子节点:库备份、表备份、表空间备份和归档备份。各备份节点的右键菜单中提供了所有可操作的选项,包括新建备份、指定工作目录、备份还原、备份校验、属性等。

备份文件夹节点右键菜单如下:

(1)数据备份(以库备份为例)

数据备份包括库备份、表备份、表空间备份和归档备份,分别对应导航树备份节点中库备份、表备份、表空间备份和归档备份这四个子节点。

库备份文件夹节点右键菜单->新建备份:

 

选择常规配置项: 

 高级选项页面中可以配置一些其他的高级选项:

点击确定完成创建。

(2)备份管理

如果打开库备份看不到创建的备份,需要在库备份右击点击指定工作目录,添加备份集目录。

 

备份集查看: 

备份校验: 

 备份删除:

(3)数据还原(表还原)

库备份和表空间备份不支持联机还原,只有表备份支持联机还原。表还原过程中表空间中其他的表还可以正常操作。

2.联机执行SQL语句

(1)备份(数据库备份)

语法格式:

BACKUP DATABASE [[[FULL] [DDL_CLONE]]| INCREMENT [CUMULATIVE][WITH BACKUPDIR '< 基备份搜索目录>'{,'<基备份搜索目录>'}]|[BASE ON BACKUPSET '<基备份目录>']][TO <备份名>][BACKUPSET '<备份集路径>']

[DEVICE TYPE <介质类型> [PARMS '<介质参数>']]

[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>]

[IDENTIFIED BY <密码>|”<密码>” [WITH ENCRYPTION <TYPE>][ENCRYPT WITH <加密算法>]]

[COMPRESSED [LEVEL <压缩级别>]] [WITHOUT LOG]

[TRACE FILE '<TRACE 文件名>'] [TRACE LEVEL <TRACE 日志级别>]

[TASK THREAD <线程数>][PARALLEL [<并行数>] [READ SIZE <拆分块大小>]];

INCREMENT:备份类型。INCREMENT 表示增量备份,若要执行增量备份必须指定该参数。

CUMULATIVE:用于增量备份中,指明为累积增量备份类型,若不指定则缺省为差异增量备份类型。

WITH BACKUPDIR:用于增量备份中,指定基备份的搜索目录,最大长度为 256 个字节。若不指定,自动在默认备份目录和当前备份目录下搜索基备份。如果基备份不在默认的备份目录或当前备份目录下,增量备份必须指定该参数。

BASE ON BACKUPSET:用于增量备份中,指定基备份集路径。

TO:指定生成备份名称。若未指定,系统随机生成,默认备份名格式为:DB_库名_备份类型_备份时间。其中,备份时间为开始备份时的系统时间。

BACKUPSET:指定当前备份集生成路径。若指定为相对路径,则在默认备份路径中生成备份集。若不指定,则在默认备份路径中按约定规则,生成默认备份集目录。库级备份默认 备 份 集 目 录 名 生 成 规 则 : DB_ 库 名 _ 备份类型 _ 备 份 时间,如DB_DAMENG_FULL_20180518_143057_123456。表明该备份集为 2018 5 18 14 30 57 123456 毫秒时生成的库名为 DAMENG 的数据库完全备份集。若库名超长使备份集目录完整名称长度大于 128 个字节将直接报错路径过长。

完全备份:

BACKUP DATABASE FULL BACKUPSET '/dmbak/db_full_bak_01';

 

增量备份:

BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmbak' BACKUPSET '/dmbak/db_increment_bak_01';

(2)备份管理

备份管理相关系统过程与函数总结如下: 

SF_BAKSET_BACKUP_DIR_ADD:添加备份目录。 l

SF_BAKSET_BACKUP_DIR_REMOVE:删除内存中指定的备份目录。  

SF_BAKSET_BACKUP_DIR_REMOVE_ALL:删除内存中全部的备份目录。  

SF_BAKSET_CHECK:对备份集进行校验。  

SF_BAKSET_REMOVE:删除指定设备类型和指定备份集目录的备份集。

SF_BAKSET_REMOVE_BATCH:批量删除满足指定条件的所有备份集。

SP_DB_BAKSET_REMOVE_BATCH:批量删除指定时间之前的数据库备份集。

SP_TS_BAKSET_REMOVE_BATCH:批量删除指定表空间对象及指定时间之前的表空间备份集。

SP_TAB_BAKSET_REMOVE_BATCH:批量删除指定表对象及指定时间之前的表备份集。

SP_ARCH_BAKSET_REMOVE_BATCH:批量删除指定条件的归档备份集。

备份管理相关动态视图总结如下: 

V$BACKUPSET:显示备份集基本信息。

V$BACKUPSET_DBINFO:显示备份集的数据库相关信息。

V$BACKUPSET_DBF:显示备份集中数据文件的相关信息。

V$BACKUPSET_ARCH:显示备份集的归档信息。

V$BACKUPSET_BKP:显示备份集的备份片信息。

V$BACKUPSET_SEARCH_DIRS:显示备份集搜索目录。

V$BACKUPSET_TABLE:显示表备份集中备份表信息。

V$BACKUPSET_SUBS:显示并行备份中生成的子备份集信息。

SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/dmbak');

select * from V$BACKUPSET;

(3)数据还原(表)

语法格式:

RESTORE TABLE [<表名>] [STRUCT] [KEEP TRXID]

FROM BACKUPSET'<备份集路径>' [DEVICE TYPE <介质类型> [PARMS '<介质参数>']]

[IDENTIFIED BY <密码>|”<密码>” [ENCRYPT WITH <加密算法>]]

[TRACE FILE '<TRACE 文件名>'] [TRACE LEVEL <TRACE 日志级别>];

BACKUP TABLE T1 BACKUPSET '/dmbak/tab_bak_01';

RESTORE TABLE T1 FROM BACKUPSET '/dmbak/tab_bak_01';

 

如果备份文件与目标表中都包含索引或约束,先执行表结构还原,再执行表数据还原。 

四.脱机备份还原

1.图形化(控制台工具)

DM 控制台工具 CONSOLE 来执行脱机的备份与还原操作。

(1)数据备份

CONSOLE 工具的控制导航树中提供备份还原节点,单击备份还原节点可以打开备份还原管理界面。在备份还原管理界面中,点击新建备份按钮,打开新建备份对话框,首页显示的是常规选项页面。

 

脱机备份高级选项页面:

备份结束后,如果备份成功则弹出备份成功的对话框;如果备份失败,则弹出对话框提示失败原因。 

 

(2)备份管理

查看备份集:

 

点击属性按钮后打开备份属性对话框,可查看备份属性: 

元信息主要显示备份集本身相关的信息如备份是否为联机备份、备份的范围、备份的加密信息以及备份的压缩信息等: 

节点信息显示系统中各节点开始/结束 LSN 以及开始/结束日志包序号。单库只有一个节点,集群系统中会有多个节点。节点信息只有 DSC 环境的备份集才有:

文件信息显示备份集的所有数据文件和备份片信息。 

数据库信息显示备份库的固有信息。 

(3)数据还原

在备份还原管理主界面中,点击还原按钮,打开备份还原对话框。还原有三种类型:库还原、归档还原和表空间还原。

 

高级选项页面可配置备份还原高级参数信息。 

生成映射文件: 

(4)数据恢复

在备份还原管理界面中,点击恢复按钮,打开备份恢复对话框。

 

(5)数据库更新

更新 DB_MAGIC 是数据库还原之后,必须执行的一步。在备份还原管理界面中,点击更新 DB_Magic 按钮,打开更新 DB_MAGIC 对话框。

 

2.脱机工具 DMRMAN 进行备份还原

(1)备份

语法格式:

BACKUP DATABASE '<INI 文件路径 >' [[[FULL][DDL_CLONE]] |INCREMENT [CUMULATIVE][WITH BACKUPDIR '<基备份搜索目录>'{,'<基备份搜索目录>'}]|[BASE ON BACKUPSET '<基备份集目录>']]

[TO <备份名>] [BACKUPSET '<备份集路径>'][DEVICE TYPE <介质类型>[PARMS '<介质参数>']

[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>] [IDENTIFIED BY <密码>|”<密码>” [WITH ENCRYPTION <TYPE>][ENCRYPT WITH <加密算法>]]

[COMPRESSED [LEVEL <压缩级别>]][WITHOUT LOG]

[TASK THREAD <线程数>][PARALLEL [<并行数>][READ SIZE <拆分块大小>]];

跟SQL语句执行备份语法的区别在于DATABASE:必选参数。指定备份源库的 INI 文件路径。 

完全备份:

BACKUP DATABASE '/dmdata/DMOA/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmbak/BACKUP_FILE_11'

增量备份:

BACKUP DATABASE '/dmdata/DMOA/dm.ini' INCREMENT WITH BACKUPDIR '/dmbak' BACKUPSET '/dmbak/db_increment_bak_01'

(2)备份管理

管理备份一个重要的目的是删除不再需要的备份。DMRMAN 工具提供 SHOWCHECKREMOVELOAD 等命令分别用来查看、校验、删除和导出备份集。

查看:show命令

show backupset '/dmbak/BACKUP_FILE_01'

 

检验:check命令

CHECK BACKUPSET '/dmbak/BACKUP_FILE_01';

 

删除:remove命令

REMOVE BACKUPSET '/dmbak/BACKUP_FILE_01';

 

导出:LOAD命令

LOAD BACKUPSETS FROM <device_type_stmt> [WITH BACKUPDIR '<备份集搜索目录>'{,'<备份集搜索目录>'}]TO BACKUPDIR '<备份集存放目录>';

<device_type_stmt>::= DEVICE TYPE <介质类型> [PARMS '<介质参数>']

由于目前介质类型只支持TAPE,所以在输入命令之前需要置环境变量 TAPE,值为/dev/nst0

(3)数据库还原和恢复

语法格式:

RESTORE DATABASE <restore_type> FROM BACKUPSET '<备份集路径>'

[<device_type_stmt>]

[IDENTIFIED BY <密码>|”<密码>” [ENCRYPT WITH <加密算法>]]

[WITH BACKUPDIR '<基备份搜索目录>'{,'<基备份搜索目录>'}]

[MAPPED FILE '<映射文件路径>'][TASK THREAD <任务线程数>]

[RENAME TO '<数据库名>'];

<restore_type>::=<type1>|<type2>

<type1>::='<ini_path>' [WITH CHECK] [REUSE DMINI] [OVERWRITE] [FORCE]

<type2>::= TO '<system_dbf_dir>' [WITH CHECK] [OVERWRITE]

<device_type_stmt>::= DEVICE TYPE <介质类型> [PARMS '<介质参数>']

还原:

RESTORE DATABASE '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmbak/BACKUP_FILE_01'

恢复:

RECOVER DATABASE '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmbak/BACKUP_FILE_01'

更新db_magic:

RECOVER DATABASE '/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC


更多资讯请上达梦技术社区了解: https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值