DM达梦数据库学习笔记之脱机工具DMRMAN备份还原(6)
(一)准备工作
注意事项
1:脱机工具要关闭数据库实例
2:DM7必须在绝对路径下运行dmrman(会在运行目录下寻找管道文件)
DM8可以修改USE_AP=2不使用管道备份
3:用户必须为dmdba
4:所有备份都需脱机,启用DMRMAN命令工具
环境配置
dmrman会有一些默认的配置(存储类型,备份目录,归档目录,跟踪日志)
查看默认配置
RMAN>CONFIGURE
修改默认配置
修改备份目录:CONFIGURE DEFAULT BACKUPDIR '备份目录 ’
修改归档目录:CONFIGURE DEFAULT ARCHIVEDIR '备份目录 ’
修改跟踪日志:CONFIGURE DEFAULT TRACE FILE '备份目录 ’
(二)数据备份
1. 完全备份
BACKUP DATABASE'dm.ini路径' BACKUPSET'完全备份集路径';
2. 增量备份
BACKUP DATABASE'dm.ini路径' INCREMENT WITH BACKUPDIR '基备份(不指定就默认最近的一次完全备份)' BACKUPSET'增量备份集路径';
3. 归档备份
备份起止LSN的归档(可选)
BACKUP ARCHIVE LOG LSN BETWEEN 起LSN AND 止LSN DATABASE ' dm.ini路径'BACKUPSET '归档备份集路径';
4. 加密备份
创建加密密码为“cdb546”,加密算法为“rc4”的复杂 加密类型的数据库加密备份
ENCRYPTION(0不加密,1简单加密,2复杂加密)
BACKUP DATABASE ' dm.ini路径'BACKUPSET '备份集路径' IDENTIFIED BY "密码" WITH ENCRYPTION 2 ENCRYPT WITH RC4;
5. 日志追踪
1:配置环境变量,生成备份时会生成跟踪日志
CONFIGURE DEFAULT TRACE FILE '日志生成路径 ' TRACE LEVEL 2;
2:备份数据库
BACKUP DATABASE ' dm.ini路径'BACKUPSET '备份集路径' ;
(三)管理备份
1. 备份查看
单个查看
SHOW BACKUPSET’备份集路径’
批量查看
SHOW BACKUPSETS WITH BACKUPDIR’备份集路径1’, ’备份集路径2’;
2. 备份校验
CHECK BACKUPSET '备份集路径';
3. 备份删除
删除备份
REMOVE BACKUPSET'备份集路径';
删除增量备份且都在默认备份集路径下
REMOVE BACKUPSET '增量备份集路径' DATABASE 'dm.ini路径' CASCADE;
批量删除所有备份
REMOVE BACKUPSETS WITH BACKUPDIR '备份集根路径';
批量删除指定时间之前的备份
REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak' UNTIL TIME'2015-11-1 00:00:00';
(四)数据还原与恢复
脱机通过RESTORE,还需要RECOVER,数据库才能用
1. 数据库还原
1.1 脱机还原
1:脱机校验备份
CHECK BACKUPSET ‘备份集路径’;
2:脱机还原
RESTORE DATABASE 'dm.ini路径' FROM BACKUPSET '备份集路径';
1.2 指定映射文件还原
还原后的数据文件默认地生成到还原目标库的路径下,如果用户想生成数据文件到特定的路径,就需要指定映射文件参数
在还原前指定备份集生成映射文件
DUMP BACKUPSET’备份集路径’ DATABASE ’ dm.ini路径’ MAPPED FILE’映射文件路径’;
在执行还原时我们可以修改里面的文件的路径就可以达到修改数据文件的路径
RESTORE DATABASE 'dm.ini路径' FROM BACKUPSET '备份集路径' MAPPED FILE ‘映射文件路径’;
2. 数据库恢复
数据库恢复有三种方式:更新DB_MAGIC恢复、从备份集恢复和从归档恢复
2.1 更新DB_MAGIC恢复
1:脱机校验备份
CHECK BACKUPSET ‘备份集路径’;
2:还原数据库
RESTORE DATABASE 'dm.ini路径' FROM BACKUPSET '备份集路径';
3:脱机恢复
当备份集为脱机备份即备份过程中无日志生成,那么此时还原后的数据库中数据与备份 时数据状态一致。在不需要重做归档日志恢复数据的情况下,可以直接更新 DB_MAGIC
RECOVER DATABASE ' dm.ini路径' UPDATE DB_MAGIC;
2.2 从备份集恢复
当备份集为联机备份即备份过程中有日志生成,则可以重做备份集中备份的日志,将数据库恢复到备份时的状态,即从备份集恢复
RECOVER DATABASE ' dm.ini路径' FROM BACKUPSET '备份集路径';
2.3 从归档恢复
当执行过从备份集还原,本地归档日志属于备份集备份时的库。或者未执行过还原的库,但恢复目标库与本地归档日志来源于同一个库,且目标库与原 来的库分离后没有再单独执行过操作或者故障重启过
如果使用原备份库,且备份库故障,需要先执行目标库归档修复
REPAIR ARCHIVELOG DATABASE ' dm.ini路径';
查看备份集的数据库信息,获取源库的DB_MAGIC:SHOW BACKUPSET ‘备份集路径’ INFO DB;
RECOVER DATABASE ' dm.ini路径' WITH ARCHIVEDIR'归档路径' USE DB_MAGIC ******;
若还原后,立即执行执行恢复,可以不用指定DB_MAGIC
若恢复出现归档不足,可以执行本地归档恢复
1:dmrachk 校验归档
2:查看归档备份信息lsn
3:执行归档还原
RESTORE ARCHIVELOGFROM BACKUPSET '归档备份路径' ALL TO ARCHIVEDIR '归档路径';
4:再执行本地归档恢复
2.4 恢复数据库到指定时间点/LSN
RECOVER DATABASE 'dm.ini路径' WITH ARCHIVEDIR'归档路径' USE DB_MAGIC *****UNTIL LSN *****;
3. 归档还原
RESTORE ARCHIVE LOG FROM BACKUPSET '归档备份路径' TO DATABASE ' dm.ini路径'OVERWRITE 2;
OVERWRITE:还原归档时,如果遇到归档已经存在的处理,
1:跳过已存在归档, 继续其他日志的还原。跳过的信息会生成日志在安装目录log/dm_BAKRES_年 月.log里
2:直接报错返回
3:强制覆盖存在的归档日志
缺省为1
4. 归档修复
一般建议在数据库故障后,应立即执行归档修复, 否则后续还原恢复导致联机日志中未刷入本地归档的REDO日志丢失,届时再利用本地归档 恢复将无法恢复到故障前的最新状态
REPAIR ARCHIVELOG DATABASE ' dm.ini路径';
如果是集群,那么两个节点分别执行修复
5. 表空间还原
注意事项:
1:表空间还原不能是TEMP表空间
2:还原目标库不能为“已经执行过restore,但是未指定过recover”的库
3:SYSTEM表空间和ROLL表空间不允许指定UNTIL LSN或者UNTIL TIME还原
4:处于RES_OFFLINE或CORRUPT状态的表空间不允许指定表空间中数据文件还原
5:整个还原过程中不会修改数据库本身状态或者调整CKPT_LSN
6:若异常退出,需手动归档修复,使用完整的归档日志执行还原恢复
7:若目标库中SYSTEM表空间故障,则必须优先还原SYSTEM表空间
8:SYSTEM表空间处于ONLINE/OFFLINE状态且文件丢失,则必须要通过库还原修复,不支持表空间还原
6. 查看操作日志
6.1 全局日志文件
dm_DMSERVER_xxx.log 是全局日志文件,是DM7数据库服务器的运行日志。
日志格式:时间+日志类型(INFO/WARN/ERROR/FATAL)+进程(database)+进程 ID(Pxxxx)+线程(dm_sql_thd/main_thread等)+日志内容。
6.2 备份还原日志文件
dm_BAKRS_xxx.log 是备份还原日志文件, dm_BAKRS_xxx.log 是 DM7 备份还原在执行备份与还原时生成的日志
备份还原日志格式为: 时间+ 日志类型(INFO/WARN/ERROR/FATAL/CMD/CMD_PARSE ) + 进程 (dmrman/database/dmbakres) +进程ID(P开头)+主进程ID(PP开头,非dmbakres 显示4294967295,非法值,否则为相应dmrman或者database的进程号)+日志内容
6.3 SBT接口跟踪
SBT接口在打开TRACE跟踪( TRACE LEVEL > 1)的情况下生成执行日志,默认文件名为 dm_SBTTRACE_xxx.log
结语
点赞是对我最大的支持,关注是我最大的认可
邮箱:905049079@qq.com
QQ:905049079
转载请注明文章来源