1、數(shù)據(jù)庫(kù)全備到硬盤
創(chuàng)新互聯(lián)建站專注于青山企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。青山網(wǎng)站建設(shè)公司,為青山等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)[oracle@centos7 scripts]$ cat rman_backup.sh source /home/oracle/.bash_profile rman target / log=/home/oracle/backup/backupall_rman.log<<EOF run { allocate channel ch2 device type disk; #分配通道 allocate channel ch3 device type disk; sql 'alter system archive log current'; #歸檔當(dāng)前日志 backup database format '/home/oracle/backup/db_%d_%T_%U'; #備份數(shù)據(jù)文件 sql 'alter system archive log current'; backup archivelog all format '/home/oracle/backup/arch_%t_%s' delete all input; #備份歸檔文件 backup format '/home/oracle/backup/con_%s_%p' current controlfile; #備份控制文件 crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt obsolete; delete noprompt backup of database completed before 'sysdate -15'; #刪除15天之前的數(shù)據(jù)庫(kù)備份集 delete noprompt archivelog all; delete noprompt backup of archivelog all completed before 'sysdate -15'; #刪除15天之前的歸檔備份集 release channel ch2; release channel ch3; } EOF2、增量備份腳本
0級(jí)增量
[oracle@centos7 scripts]$ cat rman_backup_level0.sh source /home/oracle/.bash_profile rman target / log=/home/oracle/backup/backupall_rman.log<<EOF run { allocate channel ch2 device type disk; #分配通道 allocate channel ch3 device type disk; sql 'alter system archive log current'; #歸檔當(dāng)前日志 backup incremental level 0 database format '/home/oracle/backup/db_level0_%d_%T_%U'; #備份數(shù)據(jù)文件 sql 'alter system archive log current'; backup archivelog all format '/home/oracle/backup/arch_level0_%t_%s' delete all input; #備份歸檔文件 backup format '/home/oracle/backup/con_level0_%s_%p' current controlfile; #備份控制文件 crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt obsolete; delete noprompt backup of database completed before 'sysdate -15'; #刪除15天之前的數(shù)據(jù)庫(kù)備份集 delete noprompt archivelog all; delete noprompt backup of archivelog all completed before 'sysdate -15'; #刪除15天之前的歸檔備份集 release channel ch2; release channel ch3; } EOF1級(jí)增量
[oracle@centos7 scripts]$ cat rman_backup_level1.sh source /home/oracle/.bash_profile rman target / log=/home/oracle/backup/backupall_rman.log<<EOF run { allocate channel ch2 device type disk; #分配通道 allocate channel ch3 device type disk; sql 'alter system archive log current'; #歸檔當(dāng)前日志 backup incremental level 1 database format '/home/oracle/backup/db_level1_%d_%T_%U'; #備份數(shù)據(jù)文件 sql 'alter system archive log current'; backup archivelog all format '/home/oracle/backup/arch_level1_%t_%s' delete all input; #備份歸檔文件 backup format '/home/oracle/backup/con_level1_%s_%p' current controlfile; #備份控制文件 crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt obsolete; delete noprompt backup of database completed before 'sysdate -15'; #刪除15天之前的數(shù)據(jù)庫(kù)備份集 delete noprompt archivelog all; delete noprompt backup of archivelog all completed before 'sysdate -15'; #刪除15天之前的歸檔備份集 release channel ch2; release channel ch3; } EOF注意:1級(jí)備份需要在0級(jí)備份的基礎(chǔ)上執(zhí)行。
3、支持全備和增量備份
[oracle@centos7 scripts]$ cat db_back_rman.sh ##=========================================================== ## db_bak_rman.sh ## created by Robinson ## 2017/12/15 ## usage: db_bak_rman.sh <$ORACLE_SID> <$BACKUP_LEVEL> ## BACKUP_LEVEL: ## F: full backup ## 0: level 0 ## 1: level 1 ##============================================================ #!/bin/bash # User specific environment and startup programs if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi ORACLE_SID=${1}; export ORACLE_SID RMAN_LEVEL=${2}; export RMAN_LEVEL TIMESTAMP=`date +%Y%m%d%H%M`; export TIMESTAMP DATE=`date +%Y%m%d`; export DATE RMAN_DIR=/u02/database/${ORACLE_SID}/backup/rman; export RMAN_DIR RMAN_DATA=${RMAN_DIR}/${DATE}; export RMAN_DATA #RMAN_LOG=$RMAN_DATA/log; export RMAN_LOG RMAN_LOG=/u02/database/${ORACLE_SID}/backup/rman/log export RMAN_LOG # Check rman level #====================================================================== if [ "$RMAN_LEVEL" == "F" ]; then unset INCR_LVL BACKUP_TYPE=full else INCR_LVL="INCREMENTAL LEVEL ${RMAN_LEVEL}" BACKUP_TYPE=lev${RMAN_LEVEL} fi RMAN_FILE=${RMAN_DATA}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}; export RMAN_FILE SSH_LOG=${RMAN_LOG}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}.log; export SSH_LOG MAXPIECESIZE=4G; export MAXPIECESIZE #Check RMAN Backup Path #========================================================================= if ! test -d ${RMAN_DATA} then mkdir -p ${RMAN_DATA} fi echo "---------------------------------" >>${SSH_LOG} echo " " >>${SSH_LOG} echo "Rman Begin to Working ........." >>${SSH_LOG} echo "Begin time at:" `date` --`date +%Y%m%d%H%M` >>${SSH_LOG} #Startup rman to backup #============================================================================= $ORACLE_HOME/bin/rman log=${RMAN_FILE}.log <<EOF connect target / run { CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS; CONFIGURE BACKUP OPTIMIZATION ON; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${RMAN_FILE}_%F'; ALLOCATE CHANNEL 'ch2' TYPE DISK maxpiecesize=${MAXPIECESIZE}; ALLOCATE CHANNEL 'ch3' TYPE DISK maxpiecesize=${MAXPIECESIZE}; set limit channel ch2 readrate=10240; set limit channel ch2 kbytes=4096000; set limit channel ch3 readrate=10240; set limit channel ch3 kbytes=4096000; CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT EXPIRED ARCHIVELOG ALL; BACKUP #AS COMPRESSED BACKUPSET ${INCR_LVL} DATABASE FORMAT '${RMAN_FILE}_%U' TAG '${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}'; SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; BACKUP ARCHIVELOG ALL FORMAT '${RMAN_FILE}_arc_%U' TAG '${ORACLE_SID}_arc_${TIMESTAMP}' DELETE INPUT; DELETE NOPROMPT OBSOLETE; RELEASE CHANNEL ch2; RELEASE CHANNEL ch3; } sql "alter database backup controlfile to ''${RMAN_DATA}/cntl_${BACKUP_TYPE}.bak''"; exit; EOF RC=$? cat ${RMAN_FILE}.log >>${SSH_LOG} echo "Rman Stop working @ time:"`date` `date +%Y%m%d%H%M` >>${SSH_LOG} echo >>${SSH_LOG} echo "------------------------" >>${SSH_LOG} echo "------ Disk Space ------" >>${SSH_LOG} df -h >>${SSH_LOG} echo >>${SSH_LOG} if [ $RC -ne "0" ]; then echo "------ error ------" >>${SSH_LOG} else echo "------ no error found during RMAN backup peroid------" >>${SSH_LOG} rm -rf ${RMAN_FILE}.log fi #Remove old backup than 3 days #============================================================================ RMDIR=${RMAN_DIR}/`/bin/date +%Y%m%d -d "3 days ago"`; export RMDIR echo >>${SSH_LOG} echo -e "------Remove old backup than 3 days ------\n" >>${SSH_LOG} if test -d ${RMDIR} then rm -rf ${RMDIR} RC=$? fi echo >>${SSH_LOG} if [ $RC -ne "0" ]; then echo -e "------ Remove old backup exception------ \n" >>${SSH_LOG} else echo -e "------ no error found during remove old backup set peroid------ \n" >>${SSH_LOG} fi exit另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享名稱:rman備份腳本shell版-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article46/dhiceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、定制開發(fā)、App設(shè)計(jì)、品牌網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容