2021-02-28

DM8备份还原

备份还原工具
Disql 工具:联机数据备份与还原,包括库备份、表空间备份与还原、表备份与还原;
DMRMAN 工具:脱机数据库备份还原与恢复;
客户端工具 MANAGER和CONSOLE:对应命令行工具DIsql和DMRMAN的功能,分别用于联机和脱机备份还原数据。

1.使用SQL语句联机配置归档:
修改数据库为mount状态

ALTER DATABASE MOUNT;

2.配置本地归档;

ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dm_arch/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048';
开启归档模式;
ALTER DATABASE ARCHIVELOG;
修改数据库为open状态;
ALTER DATABASE OPEN;

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

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dm_arch/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 2048

2)编辑dm.ini文件,设置参数ARCH_INI=1,保存。
3)启动服务器,服务器已运行与归档模式;

SQL方式备份
1.数据库备份

BACKUP DATABASE BACKUPSET 'db_bak_01';

指定备份集路径,设置备份名,指定介质类型,添加备份描述,限制备份片大小,备份压缩,进行备份;

SQL> BACKUP DATABASE TO
 WEEKLY_FULL_BAK BACKUPSET ‘/home/dm_bak/db_bak_3_02’ DEVICE TYPE TAPE  
 BACKUPINFO ‘完全备份’MAXPIECESIZE 300  COMPRESSED LEVEL 5 PARALLEL 8;

注:指定的备份名、加密密码、加密算法名长度限制为128字节;
MOUNT模式下不允许数据库备份

数据库备份
完全备份
FULL参数可省略,默认为完全备份:

SQL> BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

完全备份中,可指定DDL_CLONE(数据库克隆)参数,只备份定义不备份数据。该参数只用于数据库级完全备份中。

增量备份

SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' 
BACKUPSET '/home/dm_bak/db_increment_bak_02'; 

表空间备份

SQL>  BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';

指定基备份目录(不指定则搜索最近一次完全/增量备份作基备份)

SQL>BACKUP TABLESPACE MAIN INCREMENT BASE ON 
BACKUPSET'ts_full_bak_01' BACKUPSET 'ts_increment_bak_02';

注:备机状态/MOUNT状态/MPP和RAC环境均不允许表空间备份

表备份:表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说

SQL>   BACKUP TABLE TAB_01 BACKUPSET 'tab_bak_01';

归档备份
归档备份拷贝指定归档目录下的所有的归档文件到备份集中,备份归档需要服务器配置归档。

SQL>BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01'; 

备份加密:
例:数据库完全备份,创建加密密码为“cdb546”,加密算法为“rc4”,复杂数据库加密备份:

SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_for_encrypt_01' 
IDENTIFIED BY "cdb546" WITH ENCRYPTION 2 ENCRYPT WITH RC4; 

其中, 参数WITH ENCRYPTION(默认值为 1 ,简单加密) 和 ENCRYPT WITH(默认加密算法AES256_CFB)可不指定。

设置跟踪日志文件
例:以数据库完全备份为例,为备份设置跟踪日志文件:

SQL>BACKUP DATABASE BACKUPSET
 '/home/dm_bak/db_bak_for_trac_01'   TRACE FILE'/home/dm_log/db_bak_trace.log‘  TRACE LEVEL 2;

其中, 参数TRACE FILE 用于指定生成的跟踪日志文件路径;
TRACE LEVEL 表示是否启用TRACE,有效值1和2。1表示不启用TRACE功能,2表示启用,系统默认值为1。

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

SF_RMAN_ADD_BACKUP_DIR:添加备份目录。 
SF_RMAN_REMOVE_BACKUP_DIR:指定删除内存中的备份目录。
SF_RMAN_REMOVE_BACKUP_DIR_ALL:删除内存中全部的备份目录。
SF_RMAN_BAKSET_CHECK:校验指定的备份文件。
SF_RMAN_BAKSET_REMOVE:删除指定的备份集。
SP_RMAN_BATCH_DEL_DB_BAKSET:批量删除数据库备份集。
SP_RMAN_BATCH_DEL_TS_BAKSET:批量删除表空间备份集。
SP_RMAN_BATCH_DEL_TAB_BAKSET:批量删除表备份集

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

V$BACKUPSET:显示备份集基本信息。 
V$BACKUPSET_DBINFO:显示备份集的数据库相关信息。 
V$BACKUPSET_DBF:显示备份集中数据文件的相关信息。 
V$BACKUPSET_ARCH:显示备份集的归档信息。 
V$BACKUPSET_RLOG:显示备份集的日志信息。
V$BACKUPSET_BKP:显示备份集的备份片信息。 
V$BACKUPSET_SEARCH_DIRS:显示备份集搜索目录。 
V$BACKUPSET_TABLE:显示表备份集中备份表信息。 
V$BACKUPSET_INDEX:显示表备份集中备份索引信息。 
V$BACKUPSET_SUBS:显示并行备份中生成的子备份集信息

还原
使用Disql执行还原
注:DIsql只能进行表空间和表的还原,库还原使用脱机工具DMRMAN。
表空间还原:
系统处于OPEN状态下
表空间还原、恢复操作一次性完成,还原后不需单独执行恢复
可使用表空间完全备份、表空间增量备份、数据库备份文件还原表空间

SQL> ALTER TABLESPACE MAIN OFFLINE; 
SQL> RESTORE TABLESPACE MAIN FROM BACKUPSET 'ts_bak_01'; 
SQL> ALTER TABLESPACE MAIN ONLINE;

Disql执行还原
表还原:不需配置归档系统处于OPEN状态下表还原是联机完全备份还原,因此还原后不需要恢复
1)保证数据库为open状态;
2)创建待备份还原的表

CREATE TABLE_TAB_RES_02(C1 INT);

3)创建索引;

CREATE INDEX I_TAB_FOR_RES_02 ON TAB_FOR_RES_02(C1);

4)备份表。

BACKUP TABLE_TAB_FOR_RES_02 BACKUPSET '/home/dm_bak_for_res_02';

5)校验备份,此步骤为可选;

SELECT SF_BAKSET_CHECK('DISK','/home/dm_bak_for_res_02');

6)执行表结构还原,表备份和表中都包含索引,如果执行表数据还原会报错:还原表中存在二级索引或约束;

RESTORE TABLE STRUCT TAB_FOR_RES_02 FROM BACKUPSET '/home/dm_bak_for_res_02';

7)执行表数据还原

RESTORE TABLE TAB_FOR_RES_02 FROM BACKUPSET '/home/dm_bak/tab_bak_res_02';

DMRMAN
(DM RECOVERY MANEGER)是 DM8的脱机备份还原管理工具,由它来统一 负责库级脱机备份、脱机还原、数据库恢复等相关操作。
1、DMRMAN备份数据库
数据库处于脱机状态。
创建完全备份:

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'
 FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

创建增量备份:

RMAN>BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'
 INCREMENT WITH BACKUPDIR '/home/dm_bak ' BACKUPSET '/home/dm_bak/db_increment_bak_02';

2、DMRMAN备份归档

创建归档备份:

RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'
BACKUPSET '/home/dm_bak/arch_all_bak_01'; 

创建设置条件的归档备份:
通过设置 LSN 或者时间点,控制需要备份归档的范围。

RMAN>BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 20000 DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'  
BACKUPSET '/home/dm_bak/db_increment_bak_02';

3、备份高级主题——备份加密
例:数据库完全备份,创建加密密码为“cdb546”,加密算法为“rc4”,复杂数据库加密备份:

RMAN>BACKUP       DATABASE     '/opt/dmdbms/data/DAMENG/dm.ini'     BACKUPSET 
'/home/dm_bak/db_bak_for_encrypt_04' IDENTIFIED BY "cdb546" WITH ENCRYPTION 2 
ENCRYPT WITH RC4; 

其中, 参数WITH ENCRYPTION(默认值为 1 ,简单加密) 和 ENCRYPT WITH(默认加密算法AES256_CFB)可不指定
3、备份高级主题——设置跟踪日志文件
与DIsql不同:DMRMAN不可在备份时指定参数生成跟踪文件,只能使用CONFIGURE命令进行事先配置。
例:为数据库脱机备份设置跟踪日志文件:
1)用CONFIGURE命令配置生成跟踪日志文件:

RMAN>CONFIGURE DEFAULT TRACE FILE '/home/dm_trace/trace.log ' TRACE LEVEL 2; 

2)备份数据库:

RMAN>BACKUP       DATABASE     '/opt/dmdbms/data/DAMENG/dm.ini'      BACKUPSET 
'/home/dm_bak/db_bak_for_trace_01' ; 

查看/home/dm_trace/trace.log文件即可跟踪本次备份的SBT接口调用过程

4.管理备份
备份集查看
备份集校验
备份集删除
1、查看备份集信息:

RMAN>SHOW BACKUPSET '/home/dm_bak/db_bak_for_show_01';

2、校验特定备份集:

RMAN>CHECK BACKUPSET 'db_bak_for_check_02'
 DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'; 

3、删除备份集:

RMAN>REMOVE BACKUPSET '/home/dm_bak/db_bak_for_remove_01'; 

4.管理备份
批量删除所有备份集:

RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak'; 

批量删除指定时间之前的备份集:

RMAN>REMOVE BACKUPSETS WITH BACKUPDIR
 '/home/dm_bak' UNTIL TIME'2015-11-1 00:00:00'; 

数据库还原
1)联机备份数据库:

SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
  1. 准备目标库。还原目标库可以是已经存在的数据库,也可使用dminit 工具初始化一个新库。
    3)校验待还原备份集的合法性(如果确定合法该步可省略)
RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_restore'; 
  1. 还原数据库
RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini'
 FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore'; 

数据库恢复
更新DB_MAGIC恢复
从备份集恢复
从归档恢复
1、更新DB_MAGIC恢复:
当备份集为脱机备份即备份过程中无日志生成,可以直接更新DB_MAGIC 完成数据库恢复。

RMAN>RECOVER DATABASE
 '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;

2、从备份集恢复:
如果备份集在备份过程中生成了日志,且这些日志在备份集中有完整备份(如联机数据库备份),在执行库还原后,可重做备份集中备份的日志,将数据库恢复到备份时的状态,即从备份集恢复。
例:1)联机备份数据库。
2) 准备目标库。
3)校验待还原备份集的合法性。
4) 还原数据库。
5)从备份集恢复数据库:

RMAN>RECOVER DATABASE
 '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' 
 FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset'; 

3、从归档恢复:
从归档恢复是利用重做本地归档日志来恢复数据的过程。
允许恢复到指定的时间点及指定的LSN值。
例:1)联机备份数据库。 2) 准备目标库。3)校验备份集。 4) 还原数据库。
5)查看备份集的数据库信息,获取源库的DB_MAGIC。

RMAN>SHOW BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch' INFO DB;

6)利用归档恢复数据库。

RMAN>RECOVER DATABASE
 '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR'/home/dm_arch/arch' USE DB_MAGIC 1447060265;

数据库恢复到指定时间点/LSN
例:1)联机备份数据库。 2) 修改一些数据,产生归档(SELECT SYSDATE-时间点t1;SELECT FILE_LSN FROM V$RLOG命令查询此时的LSN:50857)。3)误删除表数据(时间点t2;LSN50861)。 4) 还原数据库。
5)要恢复数据库至步骤2的状态,可以指定UNTIL TIME或UNTIL LSN参数重做部分归档:

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH 
ARCHIVEDIR'/home/dm_arch/arch' USE DB_MAGIC 1447060265 UNTIL TIME'2015-11-16 10:56:40.624931'; 
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH 
ARCHIVEDIR'/home/dm_arch/arch' USE DB_MAGIC 1447060265 UNTIL LSN 50857;

7.查看操作日志
整个操作过程中可能涉及的日志或跟踪文件位于DM数据库的log 目录中。操作日志类型包括:
全局日志文件dm_DMSERVER_xxx.log
备份还原日志文件dm_bakres_xxx.log
SBT接口跟踪文件dm_SBTTRACE_xxx.log

MANAGER工具进行联机备份还原
数据备份
备份管理
数据还原
1、数据备份
包括库备份、表备份、表空间备份和归档备份。
页面类似,以库备份为例:
2021-02-28
2021-02-28

注:需要在manager.ini里增加参数:-Duse_bak2=true

1、数据备份
增量备份相关选项(指定基备份、基备份扫描路径、PWR日志优化等):
2021-02-28

备份高级设置(压缩、加密、备份日志、介质类型、跟踪日志、并行数等)
2021-02-28

2、备份管理
备份集查看
备份校验
备份删除
指定工作目录

2021-02-28
2021-02-28

Manager支持联机还原表空间和表。
表空间还原前后MANAGER工具会默认地脱机和联机表空间,不需要用户执行这些操作。
表空间和表的还原操作流程基本类似,下面以表空间还原为例:
2021-02-28

还原高级设置(介质类型、加密相关、跟踪日志、归档文件路径等):
2021-02-28

Console工具进行脱机数据库备份还原
数据备份
备份管理
数据还原
数据恢复
2021-02-28

数据备份——数据库脱机备份
2021-02-28

备份管理——查看备份集
2021-02-28

数据还原——库还原
2021-02-28

数据恢复——库恢复
更新DB_MAGIC
从备份集恢复
从归档恢复

更新DB_MAGIC
(恢复到备份结束时间点):
2021-02-28

数据恢复——库恢复

从备份集恢复
(恢复到备份结束时间点):
2021-02-28

从归档恢复:
2021-02-28

上一篇:达梦数据库DM8安装


下一篇:DM TDD使用小结