備份主備庫都能用的指令碼(zt)
#!/bin/bash
. ~/.bash_profile
export ORACLE_SID=mytest
export BACKUP_HOME='/oracle/backup_rman';
export DATABASE_ROLE_LOG='/tmp/des_temp.log';
export DATABASE_ROLE='';
sqlplus -S "/as sysdba" >$DATABASE_ROLE_LOG <
set head off
select DATABASE_ROLE from v\$database;
exit
EOF
DATABASE_ROLE="`cat $DATABASE_ROLE_LOG |sed '/^$/d'`";
if [ "$DATABASE_ROLE" == "PRIMARY" ]; then
echo "################BACKUP THE $DATABASE_ROLE DATABASE################";
rman target / <
CONFIGURE RETENTION POLICY TO REDUNDANCY 4;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '$BACKUP_HOME/%F.ctl';
allocate channel v1 type disk;
allocate channel v2 type disk;
crosscheck copy;
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired copy;
delete noprompt expired backup;
delete noprompt expired archivelog all;
delete noprompt obsolete;
backup database format '$BACKUP_HOME/%d_full_%s_%p_%c_%T.bak';
backup current controlfile format '$BACKUP_HOME/%d_control_%s_%c_%p_%T.ctl';
backup archivelog all format '$BACKUP_HOME/%d_arch_%s_%c_%p_%T.bak';
release channel v1;
release channel v2;}
exit;
EOF
elif [ "$DATABASE_ROLE" == "PHYSICAL STANDBY" ]; then
echo "################BACKUP THE $DATABASE_ROLE DATABASE################";
sqlplus "/as sysdba" <
exit;
EOF
rman target / <
CONFIGURE CONTROLFILE AUTOBACKUP on;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '$BACKUP_HOME/%F.ctl';
allocate channel v1 type disk;
allocate channel v2 type disk;
crosscheck copy;
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired copy;
delete noprompt expired backup;
delete noprompt expired archivelog all;
delete noprompt obsolete;
backup database format '$BACKUP_HOME/%d_full_%s_%p_%c_%T.bak';
backup current controlfile format '$BACKUP_HOME/%d_control_%s_%c_%p_%T.ctl';
backup archivelog all format '$BACKUP_HOME/%d_arch_%s_%c_%p_%T.bak';
release channel v1;
release channel v2;}
exit;
EOF
sqlplus "/as sysdba" <
exit;
EOF
else
echo "ORA-################";
fi;
find /home/oracle/shell/log -name "rman_$ORACLE_SID_*log" -mtime +30 -print -exec rm {} \;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7734298/viewspace-703523/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle物理熱備份指令碼(ZT)Oracle指令碼
- MySQL備份之分庫分表備份指令碼MySql指令碼
- 主庫模型調整需要做一個全庫備份,備份與恢復指令碼模型指令碼
- 資料庫備份指令碼資料庫指令碼
- RMAN全庫備份指令碼指令碼
- 備份指令碼指令碼
- 資料庫全備份指令碼資料庫指令碼
- rman備份和增量備份指令碼指令碼
- EXP的備份指令碼指令碼
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- 簡單的備份資料庫指令碼資料庫指令碼
- ORACLE備份指令碼Oracle指令碼
- mysqldump 備份指令碼MySql指令碼
- rman 備份指令碼指令碼
- mysqldump備份指令碼MySql指令碼
- innobackupex備份指令碼指令碼
- SQLServer備份指令碼SQLServer指令碼
- SQL 備份指令碼SQL指令碼
- Mongodb 備份指令碼MongoDB指令碼
- rman備份指令碼指令碼
- oracle 備份指令碼Oracle指令碼
- mysql備份指令碼MySql指令碼
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- 《mysql資料庫備份小指令碼》MySql資料庫指令碼
- RMAN備份恢復——RAC環境資料庫的備份(zt)資料庫
- NoSQL 資料庫的主主備份SQL資料庫
- Oracle冷備份(一致備份)指令碼Oracle指令碼
- 使用rman備份的指令碼指令碼
- CRONTAB呼叫的備份指令碼指令碼
- 備份SCHEMA資訊的指令碼指令碼
- Rman備份的shell指令碼指令碼
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- Mysql資料庫的簡單備份指令碼MySql資料庫指令碼
- 資料庫連結的備份指令碼(轉)資料庫指令碼
- RAC模式下的備份策略以及RMAN備份指令碼模式指令碼
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼
- windows mysqldump備份指令碼WindowsMySql指令碼
- 自動備份指令碼指令碼