Oracle 11g出了一个新特性,在RMAN脚本中使用替换变量。今天我在服务器端做了个小实验,尝试了下这个特性,虽然出了一些错,不过都解决啦!感觉这个特性还是不错的,下面进入正题。
1.创建放脚本和备份文件的目录
$cd /u01
$mkdir -p oraclescripts/backup/dynamic
$mkdir /u01/backupfiles
2.创建相关脚本
$cd /u01/oraclescripts/backup/dynamic
$vi backup.cmd
加入下面命令:
#backup.cmd
connect target /
run{
backup datafile 5
tag=&1
format '&2';
}
exit;
这是一个RMAN命令,一会用shell脚本来调用它,下面创建shell脚本:
$vi nightly_backup.sh
加入下面命令:
#!/bin/bash
tag=$1
format=$2
rman @backup.cmd using $tag $format
OK,我们去执行这个shell脚本,
$sh nightly_backup.sh testtag '/u01/backupfiles/file5.bk'
我用两个参数,第一个是Tag,第二个是要备份的路径。shell脚本取到两个参数后,在执行@backup.cmd时,把这两个参数传入到&1和&2,我这个实验是备份5号数据文件,大家可以自定义备份策略。
这个实验虽小,可我做得也是困难重重,google了好几遍,比如传参时,要用转义,tag后要加=号等等,总之,实验虽小,但学到了很多,这里我分享给大家,希望对新手有帮助。我的参考资料是《RMAN Recipes for Oracle Database 11g》中的第四章第10节。
RMAN Recipes for Oracle Database 11g pdf下载见