注册
DCA培训中备份还原整理
培训园地/ 文章详情 /

DCA培训中备份还原整理

三米 2023/06/26 1243 1 0

1,全量备份熟悉基本语法
BACKUP DATABASE '<INI 文件路径>' [<备份类型>] [TO <备份名>] [BACKUPSET '<备份集路径>']
例:backup database '/data/dmdata/DAMENG/dm.ini' backupset'/data/dmdata/DAMENG/dmbak/dmfullbak';
备份类型缺省为full

[DEVICE TYPE <介质类型>[PARMS '<介质参数>'] DEVICE TYPE 为 DISK,使用达梦自带 SBT 磁盘存储

[BACKUPINFO '<备份描述>'] 备份的描述信息。最大不超过 256 个字节。

[MAXPIECESIZE <备份片限制大小>] 最大备份片文件大小上限,以 MB 为单位,最小 128MB,32 位系统最大 2GB,64 位系统最大 128GB。缺省为 2GB

[LIMIT <read_limit>|<write_limit>] 指定备份时最大的读写文件速度,单位为 MB/S,默认为 0,表示无速度限制。
<read_limit>读速度上限 <write_limit>写速度上限

[IDENTIFIED BY <密码>|"<密码>" 指定备份时的加密密码。密码长度为 9 到 48 个字节。密码可以用双引号括起来,避免一些语法检测。

[WITH ENCRYPTION <TYPE>] 指定加密类型,取值范围0、1、2。0表示不加密,不对备份文件进行加密处理;1表示简单加密,对备份文件设置口令,但文件内容仍以明文方式存储;2 表示完全数据加密,对备份文件进行完全的加密,备份文件以密文方式存储。缺省值为 1,当不指定 WITH ENCRYPTION 子句时,采用简单加密。

[ENCRYPT WITH <加密算法>]] 指定加密算法。缺省情况下,算法为 AES256_CFB。

[COMPRESSED [LEVEL <压缩级别>]] 是否对备份数据进行压缩处理。LEVEL表示压缩等级,取值范围0~9:0表示不压缩;压缩级别越高,压缩速度越慢,但压缩比越高,若指定COMPRESSED,但未指定LEVEL,则压缩等级默认1;若未指定COMPRESSED,则默认不进行压缩处理。

[WITHOUT LOG] 脱机数据库备份是否备份联机日志。正常退出的库无REDO日志需要备份;异常退出的库会有REDO日志需要备份。如果使用,则表示不备份,否则表示备份。如果使用了 WITHOUT LOG 参数,则使用 DMRMAN 工具还原时,必须指定 WITH ARCHIVEDIR
参数。(归档日志搜索目录。缺省情况下在 dmarch.ini 中指定的归档目录中搜索。)

[WITHOUT MIRROR] 联机数据库备份是否备份镜像文件。如果使用,则表示不备份,否则表示备份。

[TASK THREAD <线程数>] 备份过程中数据处理过程线程的个数,取值范围 0~64,默认为 4,。线程数(TASK THREAD)*并行数(PARALLEL)不得超过 512。

[PARALLEL [<并行数>] 指定并行备份的并行数和拆分块大小 并行数取值范围 0~128,默认为4。

[READ SIZE <拆分块大小>]] 指定并行备份大数据量的数据文件时的拆分块大小,默认为 1GB,最小为 512MB

[USE BAK_MAGIC <备份集魔数>] 指定备份集魔数,用于唯一标识 DMDPC集群内同一批次的MP和BP的备份集。在对DMDPC节点执行脱机备份时,BAK_MAGIC 由用户指定,若不指定则默认为 0,该参数仅在 DMDPC 环境下有效。

常用备份参考
backup database '/data/dmdata/DAMENG/dm.ini' backupset '/data/full'---全量备份
backup database '/data/dmdata/DAMENG/dm.ini' backupset '/data/full' BACKUPINFO ‘备份描述’
show backupset ‘备份路径’ 查看备份集信息
backup database '/home/dmdba/data/DAMENG/dm.ini' backupset '/data/full' COMPRESSED LEVEL 1 TASK THREAD 16 PARALLEL 16 ;
COMPRESSED LEVEL 1 压缩等级1 ,TASK THREAD 16 工作线程16 , PARALLEL 16 并行16
2,增量备份基于全量备份路径备份
1, 添加备份场景
01,停止数据库,使用dmrman工具进行脱机全量备份。
backup database '/data/dmdata/DAMENG/dm.ini' backupset '/data/full';---全量备份

02启动数据库,创建完测试表CS,停止数据库,脱机进行增量备份。

backup database '/data/dmdata/DAMENG/dm.ini' increment with backupdir '/data/full' backupset '/data/incr'; ---增量备份

3,全量还原
注:引用上述步骤2的场景。
1,使用全量备份的数据进行全量还原,还原如下,还原完成后,查看表CS显示没有表
restore database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/full';
recover database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/full';
recover database '/data/dmdata/DAMENG/dm.ini' update db_magic;

原因:CS表是在全量备份完成后创建的,增量备份把创建表CS的动作给备份下来。
4,全量+增量还原
模拟场景(测试):
在3步骤的基础上添加增量还原。
使用全量加增量还原把数据恢复到增量备份开始时的状态
restore database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/incr' with backupdir '/data/full';
recover database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/incr';
recover database '/data/dmdata/DAMENG/dm.ini' update db_magic

此处查看表CS是能正常查到的,说明全量+增量的数据恢复成功

5,全量+归档还原

模拟场景:
用户在19点56分做了一个误操作,删除了某些重要数据;我们可以指定恢复时 间点到下午 19点56 分,恢复被误删除的数据。

1,创建一个测试表,往T1表中插入300条数据并提交。

2,备份数据库

3,新建一个T2测试表插入数据并提交事务,正常生成一些归档。

使用 SELECT SYSDATE 命令查询此时的时间为:2023-06-05 19:56:26
使用 SELECT FILE_LSN FROM V$RLOG 命令查询此时的 LSN 为:72597。

4,误操作删除表T1中的数据。

此时的时间和 LSN 分别为 2023-06-05 19:59:55
75600

此时需要将数据库恢复到步骤 3的状态。 首先需要关闭数据库实例,然后利用 DMRMAN 工具还原数据库:

RESTORE DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/db_full_bak_for_time_lsn';

使用 RECOVER DATABASE...UNTIL TIME 命令恢复到指定的时间:
RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' WITH ARCHIVEDIR '/home/dmdba/data/dmarch/DAMENG' UNTIL TIME '2023-06-05 19:56:26';
recover database '/data/dmdata/DAMENG/dm.ini' update db_magic;

6,全量+增量还原+归档还原
模拟场景:
用户在6.3号10点10分做了一个误操作,删除了某些重要数据;我们可以指定恢复时 间点到6.3号10点10分,恢复被误删除的数据。

1,创建测试表T1并插入数据

2,备份数据库
backup database backupset '/data/full'; ---全量备份 此时为6.5号22点05分

往T1表中插入500条数据,分别查看此时的时间和lsn,并执行增量备份。
select SYSDATE;
select FILE_LSN FROM V$RLOG;
backup database increment with backupdir '/data/full/' to incr backupset '/data/incr';--增量备份

3,误删除T1表中的数据,此时数据库的时间和lsn分别为 6.6号22.15 127233

此时将数据库恢复到步骤 3的状态。 首先需要关闭数据库实例,然后利用 DMRMAN 工具还原数据库:

restore database '/data/dmdata/DAMENG/dm.ini' from backupset '/data/incr' with backupdir '/data/full';
RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' WITH ARCHIVEDIR '/home/dmdba/data/dmarch/DAMENG' UNTIL TIME '2023-06-06 22:09:16';使用归档恢复,恢复到指定时间点
recover database '/data/dmdata/DAMENG/dm.ini' update db_magic;

检查恢复结果。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服