欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

RMAN其他恢复主题

程序员文章站 2022-05-19 12:25:17
...

默认情况下,即使丢失了只读的数据文件,RMAN也不会在执行完全数据库还原操作时还原只读的数据文件。要在完全恢复期间还原只读的

1、只读表空间的恢复
默认情况下,即使丢失了只读的数据文件,RMAN也不会在执行完全数据库还原操作时还原只读的数据文件。要在完全恢复期间还原只读的数据文件,就必须在restore命令中使用check readonly参数。
restore database check readonly;
需要注意的是,执行recover tablespace或recover datafile命令时,RMAN的工作情况是不一样的。使用上述任何一种recover命令时,,不管表空间是否为只读状态都会执行恢复操作。
2、归档重做日志的还原
在默认位置上还原指定的归档重做日志
restore archivelog all;
restore archivelog from logseq=20 thread=1;
restore archivelog from logseq=20 until logseq=30 thread=1;
在默认位置以外的目录中还原归档重做日志,必须使用run代码块
run
{
set archivelog destination to "d:\Oracle\newarch";
restore archivelog all;
}
需要注意的是,如果RMAN认为一个归档重做日志已经存在,就不会在磁盘上还原,即使设置还原到其他位置也不行。
3、数据文件副本的还原
可以从数据文件副本(而不是备份集)中还原数据库的数据文件。
restore (datafile 5) from datafilecopy;
recover datafile 5;
sql "alter database datafile 5 online;"
4、恢复损坏的数据块————块介质恢复(block media recovery,BMR)
blockrecover datafile 19 block 44;
可以恢复多个数据文件中的多个数据块
blockrecover datafile 19 block 44,46,127;
blockrecover datafile 19 block 44 datafile 22 block 203;
可以使用backup validate database命令查看RMAN在备份和复制期间检测到的所有数据库损坏,这条命令会在v$backup_corruption(历史坏快)和v$database_block_corruption(当前坏快)视图中填充检测到的所有坏快。
可以使用以下命令修复v$database_block_corruption视图中记录的坏快:
blockrecover corruption list restore until time 'sysdate - 5';
可以使用nofileupdate测试运行:
blockrecover corruption list restore until time 'sysdate - 5' nofileupdate;
在以上命令中还能使用until SCN和until sequence关键字。

推荐阅读:

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密