存储脚本(Stored Script) 用于存放频繁执行的备份、转储和恢复操作。通过使用预先建立好的存储脚本,不仅可以避免操作人员执行交互操作时可能发生的错误,而且可以使系统自动执行备份操作。注意,存储脚本只能存放在恢复目录中。
1. 建立存储脚本
建立存储脚本是使用CREATE SCRIPT. 命令来完成的。
RMAN> create script. bak_database{
2> backup format='d:/1109/%d_%s_%p.bak'
3> database include current controlfile
4> plus archivelog;
5> sql 'alter system archive log current';
6> }
已创建脚本 bak_database
2. 运行存储脚本
(1) 在RMAN 提示符下运行存储脚本
RMAN> run {execute script. bak_database;}
正在执行脚本: bak_database
启动 backup 于 09-11月-08
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=153 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =52 记录 ID=723 时间戳=670330585
输入存档日志线程 =1 序列 =53 记录 ID=725 时间戳=670356551
输入存档日志线程 =1 序列 =54 记录 ID=727 时间戳=670356647
输入存档日志线程 =1 序列 =55 记录 ID=729 时间戳=670357152
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_291_1.BAK 标记=TAG20081109T181914 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
完成 backup 于 09-11月-08
启动 backup 于 09-11月-08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00005 name=E:/USER07.DBF
输入数据文件 fno=00001 name=D:/DEMO/SYSTEM01.DBF
输入数据文件 fno=00003 name=D:/DEMO/SYSAUX01.DBF
输入数据文件 fno=00004 name=C:/DEMO/USERS01.DBF
输入数据文件 fno=00002 name=D:/DEMO/UNDOTBS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_292_1.BAK 标记=TAG20081109T181919 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:15
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_293_1.BAK 标记=TAG20081109T181919 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 09-11月-08
启动 backup 于 09-11月-08
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =56 记录 ID=732 时间戳=670357361
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_294_1.BAK 标记=TAG20081109T182242 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 09-11月-08
sql 语句: alter system archive log current
(2) 在命令行运行存储脚本
C:/>rman target sys/demo@demo catalog rman/rman@catdb script. bak_database
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 11月 9 18:25:12 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: DEMO (DBID=3408444956)
连接到恢复目录数据库
正在执行脚本: bak_database
启动 backup 于 09-11月-08
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=149 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =52 记录 ID=723 时间戳=670330585
输入存档日志线程 =1 序列 =53 记录 ID=725 时间戳=670356551
输入存档日志线程 =1 序列 =54 记录 ID=727 时间戳=670356647
输入存档日志线程 =1 序列 =55 记录 ID=729 时间戳=670357152
输入存档日志线程 =1 序列 =56 记录 ID=731 时间戳=670357361
输入存档日志线程 =1 序列 =57 记录 ID=733 时间戳=670357366
输入存档日志线程 =1 序列 =58 记录 ID=735 时间戳=670357515
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_295_1.BAK 标记=TAG20081109T182516 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 09-11月-08
启动 backup 于 09-11月-08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00005 name=E:/USER07.DBF
输入数据文件 fno=00001 name=D:/DEMO/SYSTEM01.DBF
输入数据文件 fno=00003 name=D:/DEMO/SYSAUX01.DBF
输入数据文件 fno=00004 name=C:/DEMO/USERS01.DBF
输入数据文件 fno=00002 name=D:/DEMO/UNDOTBS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_296_1.BAK 标记=TAG20081109T182519 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:05
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_297_1.BAK 标记=TAG20081109T182519 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
完成 backup 于 09-11月-08
启动 backup 于 09-11月-08
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =59 记录 ID=738 时间戳=670357708
通道 ORA_DISK_1: 正在启动段 1 于 09-11月-08
通道 ORA_DISK_1: 已完成段 1 于 09-11月-08
段句柄=D:/1109/DEMO_298_1.BAK 标记=TAG20081109T182830 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 09-11月-08
sql 语句: alter system archive log current
恢复管理器完成。
3. 显示存储脚本内容
RMAN> print script. bak_database;
正在打印存储的脚本: bak_database
{backup format='d:/1109/%d_%s_%p.bak'
database include current controlfile
plus archivelog;
sql 'alter system archive log current';
}
4. 替换存储脚本
RMAN> replace script. bak_database{
2> backup database format='d:/1109/%d_%s_%p.bak';
3> }
已替换脚本 bak_database
RMAN> print script. bak_database;
正在打印存储的脚本: bak_database
{backup database format='d:/1109/%d_%s_%p.bak';
}
5. 删除存储脚本
RMAN> delete script. bak_database;
已删除脚本: bak_database
6. 列出所有存储脚本
RMAN> list script. names;
恢复目录中存储脚本的列表
目标数据库 DEMO 的脚本
脚本名
说明
-----------------------------------------------------------------------
bak_database
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20335819/viewspace-708676/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20335819/viewspace-708676/