Rman脚本(windowns) 1、RMAN 命令参数:
C:\>rman ;;;-----一般敲错这个提示才会出来。Argument Value Description-----------------------------------------------------------------------------target quoted-string connect-string for target databasecatalog quoted-string connect-string for recovery catalognocatalog none if specified, then no recovery catalogcmdfile quoted-string name of input command filelog quoted-string name of output message log filetrace quoted-string name of output debugging message log fileappend none if specified, log is opened in append modedebug optional-args activate debuggingmsgno none show RMAN-nnnn prefix for all messagessend quoted-string send a command to the media managerpipe string building block for pipe namestimeout integer number of seconds to wait for pipe inputchecksyntax none check the command file for syntax errors----------------------------------------------------------------------------- 2、编写批处理:
rman target sys/admin@orcl catalog rman/rman@rman cmdfile 'c:\temp\rmandk.sql' log 'c:\temp\rman_backup_"%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log' append checksyntax
---cmdfile 'c:\temp\rmandk.sql' 指我们执行批处理通过cmdfile调用rmanbk.sql运行RMAN脚本内容。
---log 指定日志的存放位置。---append 指日志以追加方式写入 --- checksyntax 检查语法是否有误。
3、测试:
恢复管理器:>Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到目标数据库: HUNT (DBID=719233105)连接到恢复目录数据库RMAN> run {2> allocate channel ch01 device type disk;3> allocate channel ch02 device type disk;4> resync catalog;5> sql 'alter system archive log current';6> backup as compressed backupset incremental level 0 database format='e:\rman\Oracle10g_%d_data_0_%T_%U.rman' tag='Level_0_data';7> sql 'alter system archive log current';8> backup archivelog all delete all input format ='e:\rman\Oracle10g_%d_archivelog_0_%T_%U.rman';9> DELETE NOPROMPT OBSOLETE;10> sql 'alter system archive log current';11>>12>>13> }-----以上为rmanbk.sql的内容。此 cmdfile 不存任何在语法错误恢复管理器完成。----加上checksyntax 仅做语法检查,不做实际备份。生成如下日志: rman_backup_20120518.log 4、写入恢复目录:
可以将脚本保存在恢复目录当中,操作如下:
RMAN> create script rmanbackup_0 {2> allocate channel ch01 device type disk;3> allocate channel ch02 device type disk;4> resync catalog;5> sql 'alter system archive log current';6> backup as compressed backupset incremental level 0 database format='e:\rman\Oracle10g_%d_data_0_%T_%U.rman' tag='Levl_0_data';7> sql 'alter system archive log current';8> backup archivelog all delete all input format ='e:\rman\Oracle10g_%d_archivelog_0_%T_%U.rman';9> DELETE NOPROMPT OBSOLETE;10> sql 'alter system archive log current';11>>12>>13> } created script rmanbackup_0
5、运行脚本:
Rman> run {execute script rmanbackup_0;} 批处理调用时只需修改rmanbk.sql :
C:\TEMP>type rmandk.sqlrun {execute script rmanbackup_0;} 6、修改脚本:
Rman>print script rmanbackup_0 to file ‘c:\temp\rmanbackup_0’;script rmanbackup_0 written to file c:\temp\rmanbackup_0 修改完成后执行:
RMAN> replace script rmanbackup_0 from file 'c:\temp\rmanbackup_0';script commands will be loaded from file c:\temp\rmanbackup_0replaced script rmanbackup_0 7、查看脚本:
RMAN> print script rmanbackup_0;printing stored script: rmanbackup_0{allocate channel ch01 device type disk;backup as compressed backupset incremental level 0 database format='e:\rman\Oracle10g_%d_data_0_%T_%U.rman'release channel ch02; }
RMAN> list script names;List of Stored Scripts in Recovery CatalogScripts of Target Database HUNTScript NameDescription----------------------------------------------------------------------- rmanbackup_0
以下脚本为本地脚本,仅当前数据库可用,我们可以通过以下命令创建全局脚本。RMAN> Create global script glscr_01 {2> Backup database;3> }created global script glscr_01RMAN> list global script names;List of Stored Scripts in Recovery CatalogGlobal ScriptsScript NameDescription-------------------------------------------glscr_01执行:Rman> run {execute global script glscr_01;} 8、删除脚本:
RMAN>delete [global] script rmanbackup_0