浅说DM达梦8的备份还原
备份与还原简介
归档日志
在归档模式下,联机REDO 日志被连续拷贝到归档日志后就生成了归档日志文件。
归档日志文件以归档时间命名。例如: ARCHIVE_LOCAL1_20160217171507968.log
开启归档模式会对系统性能产生一定影响,但更安全。
检查点与日志序列号
检查点的功能是按照数据页第一次被修改的顺序,依次将BUFFER缓冲区中的脏页写入磁盘,并在这个过程中动态调整CKPT_LSN值,释放日志空间。
LSN (LOG SEQUENCE NUMBER),即日志序列号,表示REDO 日志产生的顺序,系统为每个REDO 日志分配一个LSN值。
备份集
一个备份集对应一次完整备份,为一个目录,由一个或多个备份片和一个元数据文件组成。
备份片
备份片(后缀为.bak)是用来存储备份数据的文件。备份时,目标数据文件内容或归档日志内容经过处理后,都会存放到这些备份片文件中。
元数据
元数据文件(后缀为.meta)用来存储备份信息。包括:
备份集本身相关的信息
备份源库的建库参数信息
备份集中备份数据文件信息
备份集中备份片的信息
DM8中对备份的划分标准有如下几种:
1、备份组织形式:物理备份和逻辑备份
2、备份时,数据库是否运行:联机备份和脱机备份
3、备份的粒度大小:库备份、表空间备份、归档备份和表备份
归档备份支持联机和脱机;
归档备份会把收集到的归档文件,备份到备份集中的每一个备份片。必要的时候可以使用归档备份集,还原归档。
4.、备份数据的一致性:一致性备份和非一致性备份
5.、备份数据的完整性:完全备份和增量备份
恢复
恢复是重做 本地归档日志 或者 备份集中备份的归档日志 的过程。
没有经过恢复的还原数据库是不允许启动的。
表空间和表还原均为联机执行,都不需要再执行恢复操作。此处恢复是指数据库恢复操作。
分类:
根据恢复过程中是否重做归档,及重做归档日志的来源,可将恢复分三类:
(1)更新DB_MAGIC
DB_MAGIC记录数据库的变化,当数据库经过备份还原并恢复后,DB_MAGIC就会改变(SELECT DB_MAGIC FROM V$RLOG;)
在不需要重做归档日志恢复数据的情况下,可以直接更新DB_MAGIC 来完成最后的恢复工作。
(2)从备份集恢复
利用备份集中备份日志的恢复过程。
(3)从归档恢复
利用重做本地归档日志来恢复数据的过程。
从归档恢复可恢复到最新状态,或指定的时间点、指定的LSN值
备份还原工具
Disql 工具:联机数据备份与还原,包括库备份、表空间备份与还原、表备份与还原;
DMRMAN 工具:脱机数据库备份还原与恢复;
客户端工具 MANAGER和CONSOLE:对应命令行工具DIsql和DMRMAN的功能,分别用于联机和脱机备份还原数据。
1、库级备份
SQL> backup database backupset '/dm8/bak/full_bak01';
操作已执行
已用时间: 00:00:06.346. 执行号:300.
SQL>
也可指定备份集路径、设置备份名、指定介质类型、添加备份描述、限制备份片大小、备份压缩、并行备份:`在这里插入代码片
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模式下不允许数据库备份。
可指定DDL_CLONE(数据库克隆)参数,只备份定义不备份数据。该参数只用于数据库级完全备份中。
SQL> backup database DDL_CLONE backupset '/dm8/bak/full_bak02';
操作已执行
已用时间: 00:00:03.721. 执行号:301.
SQL>
1.2、库级增量备份
SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/bak' backupset '/dm8/bak/inc_bak_01';
操作已执行
已用时间: 00:00:07.088. 执行号:302.
SQL>
1.3、表空间备份
最简单的表空间备份语句:
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';
(其他备份选项设置参考前述库备份)
完全备份(FULL参数可省略,默认为完全备份)
SQL> BACKUP TABLESPACE MAIN FULL BACKUPSET '/home/dm_bak/ts_full_bak_01';
增量备份
SQL> BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/ts_increment_bak_02';
注意:备机状态/MOUNT状态/MPP和RAC环境均不允许表空间备份。
1.4、表备份
表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。
SQL> BACKUP TABLE TAB_01 BACKUPSET 'tab_bak_01';
(其他备份选项设置参考前述库备份)
注:备机状态/MOUNT状态/MPP和RAC环境均不允许表备份还原。
4、归档备份
归档备份拷贝指定归档目录下的所有的归档文件到备份集中。
备份归档需要服务器配置归档。
SQL>BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';
2、还原
2.1、表空间还原
系统处于OPEN状态下
可使用表空间完全备份、表空间增量备份、数据库备份文件还原表空间
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace main from backupset '/dm8/databak/main.tabp.bak0407'
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace main
2.2、表还原:
不需配置归档
系统处于OPEN状态下
表还原是联机完全备份还原,因此还原后不需要恢复
SQL> restore table table_name from backupset '/dm8/bak/tab_bak01'
2.3、库还原
RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
从备份集恢复
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset';
从归档恢复:
从归档恢复是利用重做本地归档日志来恢复数据的过程。
允许恢复到指定的时间点及指定的LSN值。
查看备份集的数据库信息,获取源库的DB_MAGIC–
RMAN>SHOW BACKUPSET '/home/dm_bak/db_full_bak_for_recover_arch' INFO DB;
利用归档恢复数据库
RMAN>RECOVER DATABASE
'/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR'/home/dm_arch/arch' USE DB_MAGIC 1447060265;
不论使用哪种数据恢复,最后都需要更新DB_MAGIC 完成数据库恢复。
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
3、DMRMAN工具
DMRMAN(DM RECOVERY MANEGER)是 DM8的脱机备份还原管理工具,统一 负责库级脱机备份、脱机还原、数据库恢复等相关操作
3.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';
3.2、备份归档
创建归档备份:
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//dm.inDAMENGi'
BACKUPSET '/home/dm_bak/db_increment_bak_02';
3.3、管理备份
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';
批量删除所有备份集:
RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak';
批量删除指定时间之前的备份集:
RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak' UNTIL TIME'2015-11-1 00:00:00';
更多资料可参考 达梦技术社区:https://eco.dameng.com