如果要使用存储脚本,首先需要启用恢复目录。
1. 创建存储脚本
以下是一些与存储脚本有关的命令
接下来,先执行备份
然后故意破坏参数文件
在RMAN中启动到nomount
然后执行restore脚本
完成后,查看日志序列号和线程号,这个将在恢复时用到。
执行恢复脚本
完成!
1. 创建存储脚本
点击(此处)折叠或打开
-
#RMAN连接到恢复目录
-
rman target / catalog rcowner/oracle@rcata
-
- #创建备份用脚本
- create script bak_db_arch
-
comment 'backup database plus archivelog, then clean archivelog.'
{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup database plus archivelog;
delete noprompt archivelog all;
release channel c1;
release channel c2;
} - #创建还原脚本
- create script restore_db
-
comment 'restore database, then db can be recovered.'
{
restore spfile;
shutdown immediate;
startup nomount;
restore controlfile;
alter database mount;
allocate channel c1 device type disk;
allocate channel c2 device type disk;
restore database;
release channel c1;
release channel c2;
} - #创建恢复脚本,需要用到替换变量
-
create script recover_db
{
set until sequence &1 thread &2;
recover database;
alter database open resetlogs;
} - #注意:在有替换变量的这一行,RMAN会立即要求输入初始值,因此不能将整段语句直接粘贴上去!
点击(此处)折叠或打开
-
# 查看恢复目录里有哪些脚本,同时会显示comment
-
list script names;
-
-
# 查看脚本内容
-
print script <脚本名>;
-
-
# 编辑脚本
-
replace script ...(...与创建命令相同)
-
-
# 删除脚本
- delete script <脚本名>;
点击(此处)折叠或打开
- run { execute script bak_db_arch; }
点击(此处)折叠或打开
- mv spfileprod.ora spfileprod.ora.old
点击(此处)折叠或打开
- RMAN> startup nomount
点击(此处)折叠或打开
- RMAN> run { execute script restore_db; }
点击(此处)折叠或打开
-
RMAN> list backup by file;
-
-
List of Archived Log Backups
-
============================
-
-
Thrd Seq Low SCN Low Time BS Key S #Pieces #Copies Compressed Tag
-
---- ------- ---------- ------------------- ------- - ------- ------- ---------- ---
-
1 2 4471363 2016-04-02 09:00:53 1104 A 1 1 NO TAG20160407T084606
-
1 3 4532043 2016-04-04 01:00:10 1104 A 1 1 NO TAG20160407T084606
-
1 4 4607063 2016-04-06 00:30:18 1105 A 1 1 NO TAG20160407T084606
-
1 1 4625382 2016-04-06 12:55:14 1106 A 1 1 NO TAG20160407T084606
-
1 1 4626459 2016-04-06 13:20:54 1107 A 1 1 NO TAG20160407T084606
- 1 2 4656086 2016-04-07 08:46:00 1142 A 1 1 NO TAG20160407T085111
点击(此处)折叠或打开
-
RMAN> print script recover_db;
-
-
printing stored script: recover_db
-
{
-
set until sequence &1 thread &2;
-
recover database;
-
alter database open resetlogs;
-
}
-
-
RMAN> run { execute script recover_db; }
-
-
executing script: recover_db
-
-
Enter value for 1: 3
-
-
Enter value for 2: 1
-
-
executing command: SET until clause
-
-
Starting recover at 2016-04-07 09:17:40
-
allocated channel: ORA_DISK_1
-
channel ORA_DISK_1: SID=63 device type=DISK
-
-
starting media recovery
-
-
archived log for thread 1 with sequence 2 is already on disk as file /u01/app/oracle/oradata/prod/disk1/redo02a.log
-
archived log file name=/u01/app/oracle/oradata/prod/disk1/redo02a.log thread=1 sequence=2
-
media recovery complete, elapsed time: 00:00:00
-
Finished recover at 2016-04-07 09:17:46
-
-
database opened
-
new incarnation of database registered in recovery catalog
-
starting full resync of recovery catalog
- full resync complete
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-2076680/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22621861/viewspace-2076680/