DM8进行数据备份与还原

目录

1 准备工作

1.1 支持与限制

 1.2 归档配置

  1.2.1 何时配置归档

1.2.2 联机配置归档

1.2.3 手动配置归档

2 执行sql语句进行联机备份还原

2.1 数据备份

2.1.1 数据库备份

 2.1.2 表空间备份

2.1.3 表备份 

 2.1.4 归档备份

2.2 数据还原

2.2.1 表还原

3 DMRMAN进行脱机备份

3.1 DMRMAN使用

3.1.1 启动和退出DMRMAN

3.2 数据备份

3.2.1 数据库备份

 3.2.2 备份归档

4 数据库的还原与恢复

4.1 数据库的还原

4.2 数据库恢复 

5 图形化备份与还原

5.1 联机备份 

5.1.1 数据备份

5.1.2 备份管理

5.1.3 数据还原

5.2 使用CONSOLE脱机备份 

5.2.1 数据备份

5.2.2 备份管理

 5.2.3 数据还原

 2.2.4 数据恢复


1 准备工作

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。
  • 联机还原:

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

  1. MPP 和分布式数据库不支持;
  2. PRIMARY 支持;
  3. SUSPEND 状态所有还原均不支持;
  4. OPEN/NORMAL 支持。
  • 脱机备份

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

  1. MPP 视同单机环境,仅当前节点执行备份操作;
  2. 允许异常退出后备份,支持 DDL_CLONE;
  3. DSC 支持库级备份,支持 DDL_CLONE;当 DSC 环境下正常节点的 CKPT_LSN 小于故障节点的 CKPT_LSN 时,不支持脱机备份。
  • 脱机还原:

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

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

 1.2 归档配置

  1.2.1 何时配置归档

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

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

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

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

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

1.2.2 联机配置归档

        联机配置归档即在数据库实例启动的情况下,使用 SQL 语句完成 dmarch.ini 和 ARCH_INI 的配置。本地归档和远程归档均可以联机配置归档。

        语法如下:

ALTER DATABASE <ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句>;

<归档配置语句>::= 'DEST = <归档目标>,TYPE = <归档类型>'

<归档类型>::=<local方式>|<remote方式>

<local方式>::=LOCAL [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>]

<remote方式>::=REMOTE [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>],INCOMING_PATH = <归档存放路径>

        ADD:增加归档。该参数可以配置本地归档和远程归档。

        MODIFY:修改归档。该参数可以修改已有归档的配置参数。不建议修改归档类型。

        DELETE: 删除归档。在归档模式下,不允许删除本地归档。

增加或修改归档的步骤如下:

  1. 修改数据库为 MOUNT 状态;
  2. 增加或修改归档;
  3. 开启归档模式;
  4. 修改数据库为 OPEN 状态。

删除归档的步骤如下:

  1. 修改数据库为 MOUNT 状态;
  2. 关闭归档模式;
  3. 删除归档。

修改数据库状态的语法如下:

ALTER DATABASE <MOUNT|ARCHIVELOG|NOARCHIVELOG|OPEN>;

        MOUNT: 状态仅支持归档备份。

        ARCHIVELOG: 开启归档模式。

        NOARCHIVELOG: 关闭归档模式。

        OPEN: 状态支持所有备份,支持 DDL CLONE。

        配置如下所示。

--修改数据库为MOUNT状态

ALTER DATABASE MOUNT;

--配置本地归档

ALTER DATABASE ADD ARCHIVELOG 'DEST = /dm8/data/DAMENG/bak, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048';

--开启归档模式

ALTER DATABASE ARCHIVELOG;

--修改数据库为OPEN状态

ALTER DATABASE OPEN;

1.2.3 手动配置归档

手动配置归档即在数据库实例未启动的情况下,手动编写 dmarch.ini 文件和设置参数 ARCH_INI。下面将分别说明如何手动配置本地归档和远程归档。

  • 本地归档

步骤如下:

  1. 手动编辑 dmarch.ini 文件,之后保存在 dm.ini 所在的目录;

dmarch.ini 文件内容如下:

[ARCHIVE_LOCAL1] 

ARCH_TYPE = LOCAL 

ARCH_DEST = d:\dm_arch\arch

ARCH_FILE_SIZE = 1024 

ARCH_SPACE_LIMIT = 2048

        2.编辑 dm.ini 文件,设置参数 ARCH_INI=1,保存;

        3.启动数据库实例,数据库已运行于归档模式。

  • 远程归档

        与本地归档一样,远程归档也是配置在 dmarch.ini 文件中,配置步骤请参考本地归档。

一般建议 DMDSC 集群中的节点,在配置本地归档之外,再交叉配置集群中所有其他节点的远程归档。

下面以两节点 DMDSC 集群为例,说明如何编辑 dmarch.ini 文件以配置远程归档,DSC0 和 DSC1 是 DMDSC 集群中的两个实例,交叉进行 REMOTE 归档配置:

DSC0 实例的 dmarch.ini 配置:

ARCH_LOCAL_SHARE    = 1

[ARCHIVE_LOCAL1]

  ARCH_TYPE      	 = LOCAL

  ARCH_DEST     	 = +DMDATA/dameng/arch_dsc0

  ARCH_FILE_SIZE	 = 128

  ARCH_SPACE_LIMIT  = 0

[ARCH_REMOTE1]

  ARCH_TYPE      	= REMOTE

  ARCH_DEST      	= DSC1

  ARCH_INCOMING_PATH = +DMDATA/dameng/arch_dsc1

  ARCH_FILE_SIZE	 = 128

  ARCH_SPACE_LIMIT  = 0

DSC1 实例的 dmarch.ini 配置:

ARCH_LOCAL_SHARE         = 1

[ARCHIVE_LOCAL1]

  ARCH_TYPE     	 = LOCAL 

  ARCH_DEST     	 = +DMDATA/dameng/arch_dsc1

  ARCH_FILE_SIZE	 = 128

  ARCH_SPACE_LIMIT   = 0

[ARCH_REMOTE1]

  ARCH_TYPE     	 = REMOTE

  ARCH_DEST     	 = DSC0

  ARCH_INCOMING_PATH = +DMDATA/dameng/arch_dsc0

  ARCH_FILE_SIZE 	= 128

  ARCH_SPACE_LIMIT  = 0

2 执行sql语句进行联机备份还原

2.1 数据备份

2.1.1 数据库备份

        通过disql工具中使用backup语句进行整个数据库的备份。

        主要语法如下:

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 <拆分块大小>]];

        eg:设置联机数据库备份路径

SQL>BACKUP DATABASE BACKUPSET '/dm8/dm_bak/db_bak_20220822_1408';

        备份成功,如下图所示:

         eg:设置备份备份集名字FULL_BAK

SQL>BACKUP DATABASE TO FULL_BAK BACKUPSET '/dm8/dm_bak/db_bak_20220822_1426';

        备份成功如下图所示:

 

        eg:增量备份设置基备份集路径,以SYSTEM表空间为例

SQL>BACKUP TABLESPACE SYSTEM BACKUPSET '/dm8/dm_bak/ts_full_bak_20220822_1433';

SQL>BACKUP TABLESPACE SYSTEM INCREMENT BACKUPSET '/dm8/dm_bak/ts_increment_bak_20220822_1434';

SQL>BACKUP TABLESPACE SYSTEM INCREMENT BASE ON BACKUPSET '/dm8/dm_bak/ts_full_bak_20220822_1433'
BACKUPSET '/dm8/dm_bak/ts_increment_bak_20220822_1434';

        成功备份如下图所示:

        1)完全备份

        执行数据库备份,必须使数据库处于OPEN状态。

完全备份数据库步骤如下:

  1. 配置归档;
  2. 保证数据库处于 OPEN 状态;
  3. DIsql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
SQL>BACKUP DATABASE FULL BACKUPSET '/dm8/dm_bak/db_full_bak_01';

        备份成功如下图所示:

        默认为全库备份。

        2)增量备份

        增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改的数据页。执行增量备份的主要目的是快速备份数据库中的修改,减少备份时间和避免重复的备份。

增量备份数据库步骤如下:

  1. 配置归档;
  2. 保证数据库处于 OPEN 状态;
  3. DIsql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/dm_bak' BACKUPSET '/dm8/dm_bak/db_increment_bak_02';

         成功备份,如下图所示:

 2.1.2 表空间备份

        备份方式和数据库备份完全一致。

        主要语法如下:

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

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

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

[IDENTIFIED BY <密码>|"<密码>" [WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]] [COMPRESSED [LEVEL <压缩级别>]] 

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

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

        1)完全备份

步骤如下:

  1. 配置归档;
  2. 保证数据库处于 OPEN 状态;
  3. DIsql 中输入备份表空间语句,最简单的不设置其他参数的完全备份表空间语句,如下所示:
SQL>BACKUP TABLESPACE MAIN FULL BACKUPSET '/dm8/dm_bak/ts_full_bak_01';

 成功备份如下图所示:

        2)增量备份 

增量备份表空间步骤如下:

  1. 配置归档;
  2. 保证数据库处于 OPEN 状态;
  3. DIsql 中输入备份表空间语句,最简单的不设置其他参数的增量备份语句如下:
SQL>BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR '/dm8/dm_bak' BACKUPSET
'/dm8/dm_bak/ts_increment_bak_02';

     成功备份如下图所示:

2.1.3 表备份 

        与备份数据库与表空间不同,备份表不需要服务器配置归档。表备份拷贝指定表所使用的所有数据页到备份集中,并记录各个数据页之间的逻辑关系用来恢复表数据结构。表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。当数据库中某张表比较重要而又没必要备份整个数据库或表空间时就可以选择表备份。

        主要语法如下:

BACKUP TABLE <表名>  

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

[BACKUPINFO '<备份描述>'] 

[MAXPIECESIZE <备份片限制大小>] 

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

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

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

完整的备份表步骤如下:

  1. 完整的备份表步骤如下:

  2. 保证数据库处于 OPEN 状态;
  3. 创建待备份的表 TAB_01:
  4. DIsql 中输入备份表语句,简单的备份语句如下:

      建表: 

SQL>CREATE TABLE TABLE_01(C1 INT);

       备份表:

SQL>BACKUP TABLE TABLE_01 BACKUPSET '/dm8/dm_bak/tab_bak_01';

        备份成功,如下图所示:

 2.1.4 归档备份

        在 DIsql 工具中使用 BACKUP 语句可以备份归档日志。归档备份的前提:一,归档文件的 db_magic、permanent_magic 值和库的 db_magic、permanent_magic 值必须一样;二,服务器必须配置归档;三,归档日志必须连续,如果出现不连续的情况,前面的连续部分会忽略,仅备份最新的连续部分。如果未收集到指定范围内的归档,则不会备份。联机备份的时候经常会切换归档文件,最后一个归档总是空的,所以最后一个归档不会被备份。

        主要语法如下:

BACKUP <ARCHIVE LOG |ARCHIVELOG> 

[ALL | [FROM LSN <lsn>]| [UNTIL LSN <lsn>]|[LSN BETWEEN <lsn> AND <lsn>] | [FROM TIME '<time>']|[UNTIL TIME '<time>']|[TIME BETWEEN'<time>'> AND '<time>' ]][<notBackedUpSpec>][DELETE INPUT] [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 <拆分块大小>]]

<notBackedUpSpec>::=NOT BACKED UP [<num> TIMES]|[SINCE TIME '<datetime_string>']

完整的备份归档步骤如下:

  1. 配置归档;
  2. 保证数据库处于 OPEN 或者 MOUNT 状态;
  3. DIsql 中输入备份数据库语句。
SQL>BACKUP ARCHIVE LOG ALL BACKUPSET '/dm8/dm_bak/arch_bak_01';

         备份成如下图所示:

2.2 数据还原

        DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN 执行。

2.2.1 表还原

        表的还原不需要恢复操作。主要语法如下:

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

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

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

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

        联机还原表步骤如下:

        1、 创建备份表,联机

SQL> create table restore(c1 int);

         2、备份表数据

SQL> backup table restore backupset '/dm8/dm_bak/tab_bak_01';

        3、校验备份

SQL>select SF_BAKSET_CHECK('DISK','/dm8/dm_bak/tab_bak_01');

        4、 还原表数据

SQL>restore table restore from backupset '/dm8/dm_bak/tab_bak_01';

3 DMRMAN进行脱机备份

3.1 DMRMAN使用

3.1.1 启动和退出DMRMAN

        在DM数据库安装路径下,找到bin目录执行如下命令就可以开启和退出dmrman工具。      

#启动dmrman
./dmrman
#退出dmrman
RMAN>exit

3.2 数据备份

3.2.1 数据库备份

        在 DMRMAN 工具中使用 BACKUP 命令可以备份整个数据库。使用 DMRMAN 脱机备份数据库需要关闭数据库实例。若是正常退出的数据库,则脱机备份前不需要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。

        主要语法如下:

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 <拆分块大小>]];

       1)完全备份

        执行数据库备份要求数据库处于脱机状态。若是正常退出的数据库,则脱机备份前不需要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。以正常退出的数据库为例,一个完整的创建脱机数据库备份的步骤如下:

  1. 保证数据库处于脱机状态;
  2. 启动 DMRMAN 命令行工具;
  3. DMRMAN 中输入以下命令:
RMAN>BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL BACKUPSET '/dm8/dm_bak/db_full_bak_03';

      备份成功如下图所示:

         2)增量备份

        增量备份指基于指定的库的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改了的数据页。脱机增量备份要求两次备份之间数据库必须有操作,否则备份会报错。

        输入如下命令进行增量备份:

RMAN>BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' INCREMENT WITH BACKUPDIR '/dm8/dm_bak' BACKUPSET '/dm8/dm_bak/db_increment_bak_04';

       备份成功,如下图所示:  

 3.2.2 备份归档

        使用 DMRMAN 备份归档需要设置归档,否则会报错。

        主要的语法如下:

BACKUP<ARCHIVE LOG | ARCHIVELOG> 

[ALL | [FROM LSN <lsn>]|[UNTIL LSN <lsn>] | [LSN BETWEEN < lsn> AND < lsn>] | [FROM TIME '<time>'] | [UNTIL TIME '<time>'] | [TIME BETWEEN '<time>' AND '<time>']] [<notBackedUpSpec>][DELETE INPUT] 

DATABASE '<INI文件路径>' 

[TO <备份名>] [<备份集子句>];

<备份集子句>::= [BACKUPSET '<备份集路径>'] [DEVICE TYPE <介质类型>[PARMS '<介质参数>'] [BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>] 

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

[COMPRESSED [LEVEL <压缩级别>]][TASK THREAD <线程数>][PARALLEL [<并行数>][READ SIZE <拆分块大小>]]

<notBackedUpSpec> 

一个完整的创建脱机归档备份如下:

  1. 配置归档;
  2. 保证数据库处于脱机状态;
  3. 启动 DMRMAN 命令行工具;
  4. DMRMAN 中输入以下命令:
RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/dm8/data/DAMENG/dm.ini' BACKUPSET '/dm8/dm_bak/arch_all_bak_02';

         成功备份如下图所示:

4 数据库的还原与恢复

4.1 数据库的还原

        使用 RESTORE 命令完成脱机还原操作,在还原语句中指定库级备份集,可以是脱机库级备份集,也可以是联机库级备份集。数据库的还原包括数据库配置文件还原和数据文件还原,目前可能需要还原的数据库配置文件包括 dm.ini、dm.ctl、服务器秘钥文件(dm_service.prikey 或者 dm_external.config,若备份库指定 usbkey 加密,则无秘钥文件)、联机日志文件。

        主要语法如下:

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 '<介质参数>']

         数据库恢复流程如下:

        1)联机创建备份文件

SQL> BACKUP DATABASE BACKUPSET '/dm8/dm_bak/db_full_bak_for_restore';

        2)创建目标库。库可以存在或者新创建。

./dminit path=/dm8/data db_name=DM_FOR_RESTORE

        3)检验备份,校验备份集的合法性。又联机和脱机方式。

        联机方式:

 select SF_BAKSET_CHECK('DISK','/dm8/dm_bak/db_full_bak_for_restore'); 

        

        脱机方式:

RMAN>CHECK BACKUPSET '/dm8/dm_bak/db_full_bak_for_restore';

        4)还原数据库

RMAN>RESTORE DATABASE '/dm8/ch/b.ini' FROM BACKUPSET '/dm8/dm_bak/db_full_bak_05';

4.2 数据库恢复 

        使用 RECOVER 命令完成数据库恢复工作,可以是基于备份集的恢复工作,也可以是使用本地归档日志的恢复工作。如果还原后,数据已经处于一致性状态了,则可以使用更新 DB_MAGIC 方式恢复,前提是不需要重做日志。

        主要语法如下:

RECOVER DATABASE '<ini_path>'[FORCE] WITH ARCHIVEDIR '<归档日志目录>'{,'<归档日志目录>'} [USE DB_MAGIC <db_magic>] [UNTIL TIME '<时间串>'] [UNTIL LSN <LSN>]; | 

RECOVER DATABASE '<ini_path>' [FORCE] FROM BACKUPSET '<备份集路径>' [<device_type_stmt>] [IDENTIFIED BY <密码>|"<密码>" [ENCRYPT WITH <加密算法>]]; 

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

        1)备份集恢复数据库

        步骤如下:

        1、Disql备份数据

    SQL> backup database backupset '/dm8/dm_bak/db_full_bak_01';

        2、准备目标库

./dminit path=/dm8/data db_name=damengRecove auto_overwrite=1

        3、启动RMAN,检验备份

RMAN> check backupset '/dm8/dm_bak/db_full_bak_01';

 

        4、还原数据库

RMAN> restore database '/dm8/data/damengRecove/dm.ini' from backupset '/dm8/dm_bak/db_full_bak_01';

        5、恢复数据库

RMAN> recover database '/dm8/data/damengRecove/dm.ini' from backupset '/dm8/dm_bak/db_full_bak_01';

         

5 图形化备份与还原

5.1 联机备份 

5.1.1 数据备份

        数据备份包括库备份、表备份、表空间备份和归档备份,分别对应导航树备份节点中库备份、表备份、表空间备份和归档备份这四个子节点。点开各子节点,显示当前已经存在的相应备份集名称。

        图形进行备份界面,如下图所示。

        

          右键→新建库备份。

        

        然后可以进行一些高级配置。如下图所示。

         同时可以利用DDL查看备份库的sql语句。如下图所示。

       

5.1.2 备份管理

        备份管理包括备份集查看、备份校验、备份删除和指定工作目录,其中备份删除是备份管理的主要功能。

1、 备份集查看

        点击某个备份集节点右键菜单->属性,可以打开备份属性查看对话框,属性列表中可以查看该备份集的信息,包括备份集的元数据信息以及数据库信息。如下图所示。

2、备份集校验

        点击某备份集节点右键菜单->备份校验,即可校验备份集的合法性。

3、 备份删除

         点击某备份集节点右键菜单->删除,可以删除该备份集。也可以同时选中多个备份节点进行批量删除。

5.1.3 数据还原

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

        点击表备份集节点右键菜单->备份还原,可以打开表备份还原对话框,首页显示的是常规选项页面,如下图所示。注意前提是先进行表的备份,再还原。

        

5.2 使用CONSOLE脱机备份 

5.2.1 数据备份

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

        

5.2.2 备份管理

         在备份还原管理页面中,指定搜索目录,点击获取备份按钮,即可获取备份集列表。如下所示。

        点击获取备份按钮后可以获取到指定搜索目录下的所有备份集,并显示在备份集列表中。选择要查看的备份集,点击属性按钮。

 5.2.3 数据还原

        通过点击还原按钮进行还原。如下图所示。

         可以选择还原类型是表空间、数据库还是归档还原。如下图所示。

        还原成功如下图所示。

 2.2.4 数据恢复

        在CONSOLE工具下,点击恢复,进行数据恢复。如下图所示。

         可以选择恢复数据库或表空间,如下图所。

         恢复成功如下图所示。

详细信息,请到达梦数据库官方网站查看:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值