Oracle數(shù)據(jù)庫的異地備份淺析
假如你對Oracle數(shù)據(jù)庫中的異地備份不是很了解的話,以下的文章就是對如何在UNIX下自動備份Oracle數(shù)據(jù)庫中的異地備份的相關(guān)內(nèi)容的具體介紹,其實在UNIX下自動備份Oracle數(shù)據(jù)庫中的異地備份的實操是很簡單的。
我們知道,通??捎肍TP命令在兩臺主機間傳輸數(shù)據(jù),但一般是通過交互方式實現(xiàn)的,即需要手工輸入目標(biāo)主機的IP地址、用戶名、口令等。顯然,這不符合自動備份的要求。所幸的是,我們可以通過編寫一個.netrc的文件來達(dá)到目標(biāo)。
這一文件必須命名為.netrc,且必須存放在啟動FTP命令的機器上的用戶注冊目錄中,該文件的權(quán)限應(yīng)禁止組內(nèi)或其它用戶進(jìn)行讀訪問。這樣,當(dāng)用戶使用FTP命令的時候,系統(tǒng)將會在該用戶的注冊目錄中尋找.netrc文件,假如能夠?qū)ふ业?,將會首先?zhí)行該文件,否則,會交互式地提示用戶輸入用戶名、口令等。
在使用FTP命令之前,應(yīng)先在另一臺作備份用的UNIX機器上建一目錄,以容納備份文件,本文建的目錄是/pub 。需要指出的是,為了加快備份速度,兩臺主機之間的傳輸速率應(yīng)盡可能的高,***位于同一局域網(wǎng)上。
.netrc文件內(nèi)容如下:
- machine host2
host2為作備份用的主機名
- login oracle
oracle為備份主機上的一個用戶
- passWord oracle
oracle用戶的口令為oracle
- macdef init
定義一個名為init的宏,它將在自動注冊進(jìn)程的***被執(zhí)行
- bin
文件的傳輸方式設(shè)為二進(jìn)制
- lcd /backup
進(jìn)入本地工作目錄/backup
- cd /pub
進(jìn)入備份主機目錄/pub
- mput
將/backup目錄下的所有文件傳輸至備份主機
- bye
#退出FTP會話進(jìn)程
.netrc文件編寫完成后,使用下述命令:
- chmod 600 .netrc
這樣,.netrc文件就只能被該用戶所訪問。
四、啟動備份進(jìn)程
Cron是一個***進(jìn)程,它由/etc/rc.local啟動執(zhí)行。Cron檢查/var/spool/cron/crontabs/?目錄中的文件,找到所要執(zhí)行的任務(wù)和執(zhí)行任務(wù)的時間。
Crontab文件的每一行由六個域(minutes、hours、day of month、month、day of week、 command)組成,域之間用空格或Tab分開,其中:
minutes:分鐘域,值的范圍是0到59
hours:小時域,值的范圍是0到23
day of month:日期,值的范圍是1到31
month:月份,值的范圍是1到12
day of week:星期,值的范圍是0到6,星期日值為0
command:所要運行的命令
假如一個域是?,表明命令可以在該域所有可能的取值范圍內(nèi)執(zhí)行。
假如一個域是由連字符隔開的兩個數(shù)字,表明命令可以在兩個數(shù)字之間的范圍內(nèi)執(zhí)行(包括兩個數(shù)字本身)。
假如一個域是由逗號隔開的一系列值組成的,表明命令可以在這些值組成的范圍內(nèi)執(zhí)行。
假如日期域和星期域都有值,則這兩個域都有效。
現(xiàn)在,我們編寫一個文件,用以啟動自動備份進(jìn)程。值得注重的是,該文件只能在Oracle用戶名下用crontab -e 命令來編輯,否則將不會被定時執(zhí)行,文件名定為Oracle,文件將放在/var/spool/cron/crontabs 目錄下。編輯完成后,可以在Oracle的$提示符下,用crontab -l命令來查看。
Oracle文件內(nèi)容:
0 23 ? ? ? /oracle/ora—backup
天天23點對數(shù)據(jù)庫執(zhí)行備份
0 2 ? ? ? /oracle/tar—backup
天天2點將文件備份到磁帶上
0 4 ? ? ? ftp -i host2
天天4點將文件備份到另一臺主機上
經(jīng)過以上的操作后,系統(tǒng)天天晚上將自動產(chǎn)生一個備份,并且自動將備份文件分別拷貝到磁帶上和另一臺主機上。系統(tǒng)治理員需要做的是,隔幾天換一盤磁帶(更換磁帶的周期取決于備份文件的大小和磁帶的容量)和清理備份目錄。這樣,他們就可以從備份數(shù)據(jù)的繁瑣中解脫出來,去做其它更有意義的工作。而數(shù)據(jù)庫既實現(xiàn)了磁帶備份,又實現(xiàn)了異地備份,相應(yīng)的安全性也大大提高了。
【編輯推薦】
- 創(chuàng)建Oracle procedure并調(diào)用在pl/sql里
- Oracle to_char的用法描述
- Oracle 多表關(guān)聯(lián)如何更新多個字段
- Oracle表列的修改具體步驟介紹
- 開發(fā)Oracle存儲過程的步驟介紹