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';
- 准备目标库。还原目标库可以是已经存在的数据库,也可使用dminit 工具初始化一个新库。
3)校验待还原备份集的合法性(如果确定合法该步可省略)
RMAN>CHECK BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
- 还原数据库
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、数据备份
包括库备份、表备份、表空间备份和归档备份。
页面类似,以库备份为例:
注:需要在manager.ini里增加参数:-Duse_bak2=true
1、数据备份
增量备份相关选项(指定基备份、基备份扫描路径、PWR日志优化等):
备份高级设置(压缩、加密、备份日志、介质类型、跟踪日志、并行数等)
2、备份管理
备份集查看
备份校验
备份删除
指定工作目录
Manager支持联机还原表空间和表。
表空间还原前后MANAGER工具会默认地脱机和联机表空间,不需要用户执行这些操作。
表空间和表的还原操作流程基本类似,下面以表空间还原为例:
还原高级设置(介质类型、加密相关、跟踪日志、归档文件路径等):
Console工具进行脱机数据库备份还原
数据备份
备份管理
数据还原
数据恢复
数据备份——数据库脱机备份
备份管理——查看备份集
数据还原——库还原
数据恢复——库恢复
更新DB_MAGIC
从备份集恢复
从归档恢复
更新DB_MAGIC
(恢复到备份结束时间点):
数据恢复——库恢复
从备份集恢复
(恢复到备份结束时间点):
从归档恢复: