connectcatalog$rman_log_name/$rman_log_pass
connecttarget$rman_name/$rman_pw
利用LINUX的crintab进行执行!
!
RMAN备份脚本及自动批处理(windows)
2010-02-0900:
05
RMAN备份脚本及自动批处理(windows)
接上章RMAN备份前工作:
C:
\DocumentsandSettings\Administrator>rmancatalogrmanuser1/rmanuser1target
system/system@oradb
RMAN>showall;
设置控制文件的自动备份和自动备份的目录(建议设置,备份目录自定)
RMAN>CONFIGURECONTROLFILEAUTOBACKUPON;
RMAN>CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'd:
/backup/%F';
RMAN>exit;
按如上设置后,控制文件和spfile就会随着数据库备份自动备份到d:
/backup下;
建立脚本文件和批处理文件:
脚本文件,如文件名为orabackup.rcv,具体内容如下:
run{
allocatechanneld1typedisk;
allocatechanneld2typedisk;
backupincrementallevel0databaseformat'd:
\backup\level0_%d_%s_%p_%u.bak';
sql'altersystemarchivelogcurrent';
backuparchivelogallformat'd:
\backup\log_%d_%s_%p_%u.bak'deleteallinput;
releasechanneld2;
releasechanneld1;
}
crosscheckbackup;
deletenopromptexpiredbackup;
deletenopromptobsolete;
resynccatalog;
exit
批处理文件,如文件名为orabackup.bat,具体内容如下
rmancatalogrmanuser1/rmanuser1@oradatargetsystem/system@oradbCMDFILE'd:
\backup\orabackup.rcv'LOG’d:
\backup\oracl_%date'
将orabackup.bat和orabackup.rcv存放在同一目录下,执行orabackup.bat就可以调用orabackup.rcv备份数据库了,你可以再windows的计划任务里执行orabackup.bat就可以自动备份了;
RMAN备份脚本
===========================================================
作者:
hxhy()
发表于:
2007.10.3109:
35
分类:
ORACLE学习资料
出处:
---------------------------------------------------------------
注意:
此文档是本人由网络资料整理而成
备份策略:
星期天0级
星期一,二,四,五六2级
星期三1级
--本地
mkdir/home/oracle/backup
mkdir/home/oracle/backup/script
mkdir/home/oracle/backup/log
mkdir/home/oracle/backup/export
--备份目的地
mkdir/home/oracle/rman_backup
createtablespacerman_tbsdatafile'/oradata/luke/rman_tbs01.dbf'size1024M;
createuserrmanidentifiedbyrmandefaulttablespacerman_tbstemporarytablespacetemp;
grantconnect,resource,recovery_catalog_ownertorman;
rmancatalogrman/rman
createcatalogtablespacerman_tbs;
connecttargetsys/lukewhx@luke
registerdatabase;
reportschema;
configureretentionpolicytoredundancy2;
configureretentionpolicytorecoverywindowof7days;
--倒出RMAN用户数据脚本exp_rman.par
userid=rman/rman
file=/home/oracle/backup/export/rman.dmp
log=/home/oracle/backup/log/rman.log
--倒出RMAN数据SHELL脚本exp_rman.sh
#!
/bin/bash
cd$HOME
..bash_profile
cd$HOME/backup/script
expparfile=exp_rman.par
--零级备份RMAN脚本level0_backup.rcv
connectcatalogrman/rman
connecttargetsys/unumall@unu2
run{
allocatechanneld1typedisk;
allocatechanneld2typedisk;
backupincrementallevel0databaseformat'/home/oracle/rman_backup/level0_%d_%s_%p_%u.bak'
tag='level0'includecurrentcontrolfile;
sql'altersystemarchivelogcurrent';
backuparchivelogallformat'/home/oracle/rman_backup/log_%d_%s_%p_%u.bak'deleteall
input;
releasechanneld2;
releasechanneld1;
}
crosscheckbackup;
deletenopromptexpiredbackup;
deletenopromptobsolete;
resynccatalog;
--零级备份SHELL脚本的level0_backup.sh
#!
/bin/bash
cd$HOME
..bash_profile
cd$HOME/backup/script
rmancmdfile=level0_backup.rcvmsglog=$HOME/backup/log/level0_backup.log
./home/oracle/backup/script/exp_rman.sh
--一级差异增量备份RMAN脚本level1_backup.rcv
connectcatalogrman/rman
connecttargetsys/luke@luke
run{
allocatechanneld1typedisk;
backupincrementallevel1format'/home/oracle/rman_backup/level1_%d_%s_%p_%u.bak'tag=
'level1'database;
sql'altersystemarchivelogcurrent';
backuparchivelogallformat'/home/oracle/rman_backup/log_%d_%s_%p_%u.bak'deleteall
input;
releasechanneld1;
}
crosscheckbackup;
deletenopromptexpiredbackup;
deletenopromptobsolete;
resynccatalog;
--一级差异增量备份SHELL脚本level1_backup.sh#!
/bin/bash
cd$HOME
..bash_profile
cd/home/oracle/backup/script
rmancmdfile=level1_backup.rcvmsglog=$HOME/backup/log/level1.log
./home/oracle/backup/script/exp_rman.sh
--二级差异增量备份RMAN脚本level2_backup.rcv
connectcatalogrman/rman
connecttargetsys/luke@luke
run{
allocatechanneld1typedisk;
backupincrementallevel2format'/home/oracle/rman_backup/level2_%d_%s_%p_%u.bak'tag=
'level2'database;
sql'altersystemarchivelogcurrent';
backuparchivelogallformat'/home/oracle/rman_backup/log_%d_%s_%p_%u.bak'deleteall
input;
releasechanneld1;
}
crosscheckbackup;
deletenopromptexpiredbackup;
deletenopromptobsolete;
resynccatalog;
--二级差异增量备份SHELL脚本level2_backup.sh
#!
/bin/bash
cd$HOME
..bash_profile
cd/home/oracle/backup/script
rmancmdfile=level2_backup.rcvmsglog=$HOME/backup/log/level2.log
./home/oracle/backup/script/exp_rman.sh
提高RMAN增量备份性能
alterdatabaseenableblockchangetrackingusingfile
'/u01/app/oracle/admin/devdb/bdump/luke.log';
descv$block_change_tracking;
oraclerman备份脚本收集
2,常用备份脚本:
备份到磁盘:
(如果是磁带,将DISK改成'SBT_TAPE')
0级备份脚本:
RUN{
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
BACKUP
INCREMENTALLEVEL=0
SKIPINACCESSIBLE
TAGhot_db_bk_level0
FILESPERSET5
FORMAT'bk_%s_%p_%t'
DATABASE;
sql'altersystemarchivelogcurrent';
RELEASECHANNELch00;
RELEASECHANNELch01;
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
BACKUP
filesperset20
FORMAT'al_%s_%p_%t'
ARCHIVELOGALLDELETEINPUT;
RELEASECHANNELch00;
RELEASECHANNELch01;
ALLOCATECHANNELch00TYPEDISK;
BACKUP
FORMAT'cntrl_%s_%p_%t'
CURRENTCONTROLFILE;
RELEASECHANNELch00;
}
1级差异增量备份:
RUN{
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
BACKUP
INCREMENTALLEVEL=1
SKIPINACCESSIBLE
TAGhot_db_bk_level0
FILESPERSET5
FORMAT'bk_%s_%p_%t'
DATABASE;
sql'altersystemarchivelogcurrent';
RELEASECHANNELch00;
RELEASECHANNELch01;
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
BACKUP
filesperset20
FORMAT'al_%s_%p_%t'
ARCHIVELOGALLDELETEINPUT;
RELEASECHANNELch00;
RELEASECHANNELch01;
ALLOCATECHANNELch00TYPEDISK;
BACKUP
FORMAT'cntrl_%s_%p_%t'
CURRENTCONTROLFILE;
RELEASECHANNELch00;
}
1级累积增量备份脚本:
RUN{
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
BACKUP
INCREMENTALLEVEL=1CUMULATIVE
SKIPINACCESSIBLE
TAGhot_db_bk_level0
FILESPERSET5
FORMAT'bk_%s_%p_%t'
DATABASE;
sql'altersystemarchivelogcurrent';
RELEASECHANNELch00;
RELEASECHANNELch01;
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
BACKUP
filesperset20
FORMAT'al_%s_%p_%t'
ARCHIVELOGALLDELETEINPUT;
RELEASECHANNELch00;
RELEASECHANNELch01;
ALLOCATECHANNELch00TYPEDISK;
BACKUP
FORMAT'cntrl_%s_%p_%t'
CURRENTCONTROLFILE;
RELEASECHANNELch00;
}
恢复脚本:
RUN{
ALLOCATECHANNELch00TYPEDISK;
ALLOCATECHANNELch01TYPEDISK;
RESTOREDATABASE;
RECOVERDATABASE;
RELEASECHANNELch00;
RELEASECHANNELch01;
}
OracleRman备份脚本
编辑一个文本,
[oracle@oraclebak]$vifull.bak
source~/.bash_profile //加上这个是为了当我们crontab自动调用时可以执行.
rmantarget/ <run{
changearchivelogallcrosscheck; //标定控制文件中归档日志的状态.
crosscheckbackup; //交叉检测,系统删除了,但rman不知道.
deletenopromptexpiredbackup; //让ramn知道,在系统里已经被删除的.
sql'altersystemarchivelogcurrent' //归档当前日志
backuparchivelogall format'/oraclebak/backup/ar_%u'; //备份归档日志
backupincrementallevel0databaseformat'/oraclebak/0_%u';//0级数据库备份(包括数据,控制,参数文件)
allocatechannelC1typedisk;
allocatechannelC2typedisk;
deletenopromptobsolete; 删除除其他版本的备份.
releasechannelC1;
releasechannelC2;
}
exi