ITPub博客

首页 > 数据库 > 国内数据库 > DM7使用DMRMAN执行归档还原

DM7使用DMRMAN执行归档还原

原创 国内数据库 作者:eric0435 时间:2021-01-08 08:33:01 0 删除 编辑

使用DMRMAN执行归档还原
使用RESTORE命令完成脱机还原归档操作,在还原语句中指定归档备份集。备份集可以是脱机归档备份集,也可以是联机归档备份集。
语法如下:

RESTORE FROM BACKUPSET '< 备份集目录>'
[DEVICE TYPE DISK|TAPE[PARMS '< 介质参数>']]
[IDENTIFIED BY < 密码> [ENCRYPT WITH < 加密算法>]]
[TASK THREAD < 任务线程数>] [NOT PARALLEL]
[ALL | [FROM LSN ] | [UNTIL LSN ] | [LSN BETWEEN < lsn值> AND < lsn值>] | [FROM TIME '时间串'] | [UNTIL TIME '时间串'] | [TIME BETWEEN '时间串' AND '时间串'] ]
TO < 还原目录>
[OVERWRITE level];
< 还原目录>::=
ARCHIVEDIR '< 归档目录>' |
DATABASE ''

BACKUPSET:指定用于还原目标数据库的备份集目录。若指定为相对路径,会在默认备份目录下搜索备份集。
DEVICE TYPE:指存储备份集的介质类型,支持DISK和TAPE,默认为DISK。DISK表示备份集存储介质为磁盘,TAPE表示存储介质为磁带。
PARMS:介质参数,供第三方存储介质(TAPE类型)管理使用。
IDENTIFIED BY:指定备份时使用的加密密码,供还原过程解密使用。
ENCRYPT WITH:指定备份时使用的加密算法,供还原过程解密使用,若未指定,则使用默认算法。
TASK THREAD:指定还原过程中用于处理解压缩和解密任务的线程个数。若未指定,则默认为4;若指定为0,调整为1;若指定超过当前系统主机核数,则调整为当前核数。
NOT PARALLEL:指定并行备份集使用非并行方式还原。对于非并行备份集,不论是否指定该关键字,均采用非并行还原。
ALL:备份所有的归档。
FROM LSN, FROM TIME:指定备份的开始LSN或者开始的时间点。
UNTIL LSN, UNTIL TIME:指定备份的截止LSN或者截止的时间点。
BETWEEN ... AND ...:指定备份的区间,仅仅指备份区间内的归档文件。
< 还原目录>:用户可以指定还原到指定的目录ARCHIVEDIR,也可以指定还原指定的库的目录DATABASE。
OVERWRITE:还原归档时,如果遇到归档已经存在的处理,1:跳过已存在的归档日志,继续其他日志的还原。跳过的信息会生成一条日志记录在安装目录/log/dm_BAKRES_年月.log里;2:直接报错返回;3:强制覆盖存在的归档日志。缺省为1。

使用说明:
1) 联机备份归档,保证数据库运行在归档模式及OPEN状态。

SQL> backup archivelog all backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore';
executed successfully
used time: 00:00:44.498. Execute id is 208.

2) 校验备份,校验待还原备份集的合法性。校验备份有两种方式,联机和脱机,此处使用脱机校验。

RMAN> check backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore';
check backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore';
CMD END.CODE:[0]
check backupset successfully.
time used: 18.193(ms)

3) 还原归档。启动DMRMAN,设置OVERWRITE为2,如果归档文件已存在,会报错。

RMAN> restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
file dm.key not found, use default license!
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[4].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[3].
the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running.
[-102]:DM server is already running
[root@shard1 jydm]# service DmServicejydm stop
Redirecting to /bin/systemctl stop  DmServicejydm.service
RMAN> restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[4].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[3].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[2].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[1].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[0].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running, write dmrman info.
RESTORE ARCHIVE CHECK......
RESTORE ARCHIVE, dbf collect......
RESTORE ARCHIVE, dbf refresh ......
CMD END.CODE:[-8354],DESC:[for the archive file conflicted, restore failed]
[-8354]:for the archive file conflicted, restore failed

或者
RMAN> restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to archivedir '/dm_home/dmdba/dmdbms/data/jydm/bak/arch' overwrite 2;
restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to archivedir '/dm_home/dmdba/dmdbms/data/jydm/bak/arch' overwrite 2;
RESTORE ARCHIVE CHECK......
RESTORE ARCHIVE, dbf collect......
RESTORE ARCHIVE, dbf refresh ......
RESTORE BACKUPSET [/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore] START......
total 30 packages processed...
total 67 packages processed...
total 68 packages processed!
CMD END.CODE:[0]

restore successfully.
time used: 28142.800(ms)


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-2748322/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
系统架构师 Oracle ACE

注册时间:2011-10-12

  • 博文量
    641
  • 访问量
    6356736