怎么進(jìn)行l(wèi)inux下的oracle10g rman備份,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出濱江免費(fèi)做網(wǎng)站回饋大家。
RMAN是Oracle提供的一個(gè)數(shù)據(jù)庫(kù)備份和恢復(fù)工具,利用rman可以比較方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。Oracle 數(shù)據(jù)庫(kù)可運(yùn)行在歸檔和非歸檔模式下,這兩者的區(qū)別就在于對(duì)redo log的處理。歸檔模式下,當(dāng)一個(gè)redo log 寫(xiě)滿之后,就會(huì)把這個(gè)redo log里的內(nèi)容寫(xiě)入歸檔文件,等寫(xiě)完之后,這個(gè)redo log 就可以繼續(xù)使用,如果是非歸檔模式下,redo log 就被直接覆蓋了。 數(shù)據(jù)庫(kù)的恢復(fù)一般都需要?dú)w檔文件,這里面記錄了對(duì)數(shù)據(jù)庫(kù)的操作,所以生產(chǎn)數(shù)據(jù)庫(kù)一般都運(yùn)行在歸檔模式下,以防數(shù)據(jù)的丟失。
一、設(shè)置ORACLE的RMAN備份準(zhǔn)備工作:
1、查看數(shù)據(jù)庫(kù)現(xiàn)有運(yùn)行模式
sql>select name,log_mode from v$database;
NAME LOG_MODE
-------- ------------
BIGSUN NOARCHIVELOG #非歸檔模式
也可以通過(guò)下面的語(yǔ)句進(jìn)行查看
sql> archive log list ;(conn / as sysdba)
Database log mode No Archive Mode
Automatic archival Disabled #非歸檔模式
Archive destination /export/data/oracle/product/10.0.0.2/dbs/arch
Oldest online log sequence 28613
Current log sequence 28615
非歸檔模式的數(shù)據(jù)庫(kù)需要改為歸檔模式,才能進(jìn)行RMAN備份。步驟如下:
1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';
該語(yǔ)句含義是確定歸檔日志的路徑,實(shí)際上Oracle 10g可以生成多份一樣的日志,保存多個(gè)位置,以防不測(cè)
例如再添加一個(gè)日志位置可使用以下語(yǔ)句
SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';
2.關(guān)閉數(shù)據(jù)庫(kù)
SQL> shutdown immediate
3.啟動(dòng)數(shù)據(jù)mount狀態(tài):
SQL> startup mount;
4、修改數(shù)據(jù)庫(kù)為歸檔模式:
SQL> alter database archivelog;
5、打開(kāi)數(shù)據(jù)庫(kù),查詢:
SQL> alter database open;
修改日志文件命名格式:
SQL> alter system set log_archive_max_processes = 5;
SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
修改完成后可以查看日志模式是否修改成功!
sql>select name,log_mode from v$database;
NAME LOG_MODE
-------- ------------
BIGSUN ARCHIVELOG #歸檔模式
二、用腳本實(shí)現(xiàn)RMAN自動(dòng)備份。
注: level 0 全備份; level 1 差量備份; level 2 增量備份
首先在linux oracle服務(wù)器的/data/rmanbak/script/目錄下新建3個(gè)腳本文件,并賦予每個(gè)腳本執(zhí)行權(quán)限。
bakl0.sh 腳本
RUN_STR="
BAK_LEVEL=0
export BAK_LEVEL
ORACLE_HOME=/opt/app/oracle/10.2.0
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
RMAN_LOG_FILE=${0}.out
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
$RMAN nocatalog target sys/admin msglog $RMAN_LOG_FILE append << EOF
run{
allocate channel c1 type disk;
backup incremental level 0 format "/data/rmanbak/inc0_%u_%T" tag monday_inc0 database;
release channel c1;
}
bakl1.sh 腳本
RUN_STR="
BAK_LEVEL=1
export BAK_LEVEL
ORACLE_HOME=/opt/app/oracle/10.2.0
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
RMAN_LOG_FILE=${0}.out
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
$RMAN nocatalog target sys/admin msglog $RMAN_LOG_FILE append << EOF
run{
allocate channel c1 type disk;
backup incremental level 1 format "/data/rmanbak/inc1_%u_%T" tag monday_inc0 database;
release channel c1;
}
bakl2.sh 腳本
RUN_STR="
BAK_LEVEL=2
export BAK_LEVEL
ORACLE_HOME=/opt/app/oracle/10.2.0
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
RMAN_LOG_FILE=${0}.out
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
$RMAN nocatalog target sys/admin msglog $RMAN_LOG_FILE append << EOF
run{
allocate channel c1 type disk;
backup incremental level 2 format "/data/rmanbak/inc2_%u_%T" tag monday_inc0 database;
release channel c1;
}
其二、編輯oracle用戶的自動(dòng)執(zhí)行任務(wù)計(jì)劃
crontab -e -u oracle
30 23 * * 0 rman target / msglog=/data/rmanbak/rman_bk_'date '+%Y%m%d%H%M%S''.log
cmdfile=/data/rmanbak/script/bakl0.sh
30 23 * * 1 rman target / msglog=/data/rmanbak/bakl0.log cmdfile=/data/rmanbak/script/bakl2.sh
30 23 * * 2 rman target / msglog=/data/rmanbak/bakl0.log cmdfile=/data/rmanbak/script/bakl2.sh
30 23 * * 3 rman target / msglog=/data/rmanbak/bakl0.log cmdfile=/data/rmanbak/script/bakl1.sh
30 23 * * 4 rman target / msglog=/data/rmanbak/bakl0.log cmdfile=/data/rmanbak/script/bakl2.sh
30 23 * * 5 rman target / msglog=/data/rmanbak/bakl0.log cmdfile=/data/rmanbak/script/bakl2.sh
30 23 * * 6 rman target / msglog=/data/rmanbak/bakl0.log cmdfile=/data/rmanbak/script/bakl2.sh
最后重啟crontab 命令 : #service crond restart
三、定期刪除備份的歸檔文件
比如歸檔文件需要保存15天。我們可以寫(xiě)一個(gè)shell 腳本(del_archive_backup.sh
)如下,然后添加到crontab 里定時(shí)執(zhí)行就可以刪除過(guò)期的歸檔文件了。
#!/bin/ksh
PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin
export PATH
find /data/arch/incremental_hotbackup -mtime +15 -name "arch_*"
-exec rm {} \;
注:find后面寫(xiě)你自己的路徑就可以了。
關(guān)于怎么進(jìn)行l(wèi)inux下的oracle10g rman備份問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
分享標(biāo)題:怎么進(jìn)行l(wèi)inux下的oracle10grman備份
文章URL:http://vcdvsql.cn/article2/gjigic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、用戶體驗(yàn)、網(wǎng)站內(nèi)鏈、商城網(wǎng)站、App開(kāi)發(fā)、服務(wù)器托管
聲明:本網(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)