最近用戶在做備份審核,發現了很多問題。恰好通過這次審核,優化了備份腳本。分享給需要的朋友
環境說明:備份發起在備庫執行,這樣降低主庫資源消耗(確實因為這個出過問題,頭疼啊)
Oracle 19c
單節點執行即可,注意需要配置賬號和密碼
全備Leve0
#!/bin/bash
ORACLE_HOME=/u01/app/oracle/product/19/dbhome_1
export ORACLE_HOME
ORACLE_SID=test
export ORACLE_SID
MAILTO=ttttt@qq.com
EXECDATE=`date +"%y%m%d%H%M%S"`
BACKUPNAME=`date +"20%y%m%d"`
#echo `date +"20%y%m%d"`
mkdir /backup/$BACKUPNAME
#SUBJECT="$ORACLE_SID @ `hostname` DB Backup $EXECDATE"
RMAN_LOG_FILE=/backup/log/$ORACLE_SID$EXECDATE.out
RMAN=$ORACLE_HOME/bin/rman
TARGET_CONNECT_STR=sys/Password@oraclesid
DESTINATION=/backup/$BACKUPNAME
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
#find /backup -name
#rm $DESTINATION/*
$RMAN target $TARGET_CONNECT_STR nocatalog log $RMAN_LOG_FILE <<EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch01 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch02 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch03 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch04 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch05 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch06 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch07 TYPE disk MAXPIECESIZE=8000M;
crosscheck copy;
delete noprompt expired copy;
crosscheck backup;
delete noprompt expired backup;
DELETE FORCE NOPROMPT BACKUP DEVICE TYPE DISK COMPLETED BEFORE 'SYSDATE-1';
delete noprompt obsolete;
BACKUP as compressed backupset incremental level 0
FORMAT '$DESTINATION/lev0_%U.bkp' database;
backup as compressed backupset archivelog all format '$DESTINATION/arch_%U.bkp';
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-1';
backup current controlfile format '$DESTINATION/%d_CTRL_%U.bak';
backup spfile format '$DESTINATION/%d_SPFILE_%U.bak';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
RELEASE CHANNEL ch04;
RELEASE CHANNEL ch05;
RELEASE CHANNEL ch06;
RELEASE CHANNEL ch07;
}
exit;
EOF
echo >> $RMAN_LOG_FILE
df -h >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
cp $RMAN_LOG_FILE $DESTINATION
mail -s "[ip] ERPDB Status:Success" $MAILTO<<EOF
....`date`...
[ip] ERPDB Status:Success
`tail -100 $RMAN_LOG_FILE`
EOF增量備份
#!/bin/bash
ORACLE_HOME=/u01/app/oracle/product/19/dbhome_1
export ORACLE_HOME
ORACLE_SID=test
export ORACLE_SID
MAILTO=ttttttttt@qq.com
EXECDATE=`date +"%y%m%d%H%M%S"`
BACKUPNAME=`date +"20%y%m%d"`
#echo `date +"20%y%m%d"`
mkdir /backup/$BACKUPNAME
#SUBJECT="$ORACLE_SID @ `hostname` DB Backup $EXECDATE"
RMAN_LOG_FILE=/backup/log/$ORACLE_SID$EXECDATE.out
RMAN=$ORACLE_HOME/bin/rman
TARGET_CONNECT_STR=sys/Password@testORACLE_SID
DESTINATION=/backup/$BACKUPNAME
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
#find /backup -name
#rm $DESTINATION/*
$RMAN target $TARGET_CONNECT_STR nocatalog log $RMAN_LOG_FILE <<EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch01 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch02 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch03 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch04 TYPE disk MAXPIECESIZE=6000M;
crosscheck copy;
delete noprompt expired copy;
crosscheck backup;
delete noprompt expired backup;
DELETE FORCE NOPROMPT BACKUP DEVICE TYPE DISK COMPLETED BEFORE 'SYSDATE-2';
delete noprompt obsolete;
sql 'alter system archive log current';
BACKUP as compressed backupset incremental level 1
FORMAT '$DESTINATION/lev1_%U.bkp' database;
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$DESTINATION/arch_%U.bkp';
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-1';
BACKUP CURRENT CONTROLFILE FORMAT '$DESTINATION/control_%U_%t.bkp';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
RELEASE CHANNEL ch04;
}
exit;
EOF
echo >> $RMAN_LOG_FILE
df -h >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
echo ==== ended on `date` ==== >> $RMAN_LOG_FILE
cp $RMAN_LOG_FILE $DESTINATION
mail -s "[ip ] ERPDB Status:Success" $MAILTO<<EOF
....`date`...
[ip ] ERPDB Status:Success
`tail -100 $RMAN_LOG_FILE`
EOF
最后修改時間:2022-11-17 15:34:25
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




