數(shù)據(jù)庫Oracle數(shù)據(jù)的異地的自動備份
相關(guān)命令
文中主要用到三個命令,這里先單獨介紹一下:
export: 將數(shù)據(jù)庫中數(shù)據(jù)備份成一個二進(jìn)制系統(tǒng)文件,它有三種模式: 用戶模式、表模式、整個數(shù)據(jù)庫模式。還可分為三種備份類型:完全型、積累型、增量型。本文以整個數(shù)據(jù)庫模式下的完全型為例說明。export使用格式為:
exp userid file
其中:userid的用法為username/userpassword,即Oracle中的用戶名/口令。userid必須為exp的第一個參數(shù),file指備份文件所放位置及名稱。
ftp: 一般情況下可通過交互方式實現(xiàn)兩臺主機間的數(shù)據(jù)傳輸,即需要手工輸入目標(biāo)主機的IP地址、用戶名、口令等。但是當(dāng)用戶使用ftp命令時,系統(tǒng)將會先在該用戶的注冊目錄中尋找.netrc文件,并首先執(zhí)行該文件。這樣,我們可以通過編寫一個.netrc的文件來達(dá)到自動備份的目的。要注意該文件必須命名為.netrc,且必須存放在啟動ftp命令主機上的用戶注冊目錄里。ftp常用選項:
-i:進(jìn)行多文件傳送時關(guān)閉交互提示;
-n:在連接之后不進(jìn)行自動登錄。
本文使用“-i”選項,以關(guān)閉交互提示。
crontab: cron是一個永久進(jìn)程,它由/etc/rc.local啟動執(zhí)行。cron檢查/var/spool/cron/crontabs/目錄中的文件,找到所要執(zhí)行的任務(wù)和執(zhí)行任務(wù)的時間,并自動完成。該目錄中文件由crontab命令建立。用戶所建立的crontab文件存于/var/spool/cron/crontabs中,其文件名與用戶名一致,本文使用crontab的用戶為Oracle,所建立的文件名也為Oracle。
cron使用者的權(quán)限記載在下列兩個文件中: /usr/var/adm/cron/cron.deny和/usr/var/adm/cron/cron.allow。前面的文件中所列的用戶不允許使用crontab命令;后一文件中所列的用戶允許使用crontab命令。crontab命令的常用格式為:
crontab -l:顯示用戶的crontab文件的內(nèi)容;
crontab -r:從crontabs目錄中刪除用戶的crontab文件;
crontab -e:編輯用戶的crontab文件。
crontab文件每行中有6個字段,前5個為時間設(shè)定段,第6個為所要執(zhí)行的命令。時間段分別為: minutes、hours、day of month、month、day of week,字段之間用空格或Tab分開。字段如果為“*”,表示該字段在所有可能的取值范圍內(nèi)取值; 如果一個字段是由連字符隔開的兩個數(shù)字,表明命令可以在兩個數(shù)字之間的范圍內(nèi)執(zhí)行。
備份數(shù)據(jù)庫
設(shè)定數(shù)據(jù)庫的擁有者為Oracle,用戶名為mistest,其口令為test,新建備份目錄為/export/home/oracle/backup。建立一個命名為testbackup的備份文件,文件內(nèi)容如下:
ORACLE-HOME=/export/home/oracle/815;export ORACLE-HOME
ORACLE-SID=ora815;export ORACLE-SID
rm /export/home/oracle/backup/*
rq=丶date +“%m%d”丶
/export/home/oracle/815/bin/exp mistest/test file=/export/home/oracle
/backup/exp$rq.dmp log=/exoport/home/oracle/backup/exp$rq.log
說明:前兩句對Oracle數(shù)據(jù)庫初始化,第3條語句清空備份目錄,第4條語句建立一個取當(dāng)前日期的變量,以便在最后一條語句的備份文件名里含有當(dāng)前日期信息。
[NextPage]
異地傳輸
在備份主機里建立一個備份目錄:/data/oradata/newbackup, 在本地主機Oracle用戶的注冊目錄/export/home/oracle里建立一個.netrc文件。設(shè)定好備份主機的IP地址,備份主機上的用戶為oraclebk, 口令為testbk2。.netrc文件內(nèi)容為:
machine x.x.x..x
login oraclebk
password testbk2
macdef init
bin
lcd /export/home/oracle/backup
cd /data/oradata/backup
mput *
bye
說明: 前3條語句完成在備份主機上的登錄,第4條語句定義一個名為init的宏,第5條語句表示以二進(jìn)制傳輸,第6條語句表示進(jìn)入本地工作目錄,第7條語句表示進(jìn)入備份主機目錄,第8條語句完成將本地主機/export/home/oracle/backup目錄下的所有文件傳輸至備份主機/data/oradata/backup目錄下,最后一條語句退出ftp會話進(jìn)程。
.netrc文件編寫完成后,用命令“chmod 600
.netrc”使該文件只能被該用戶所訪問。
自動執(zhí)行
我們以oracle用戶登錄本地主機,用“crontab -e”編寫crontab文件用以啟動自動備份進(jìn)程。oracle文件內(nèi)容如下:
10 23 * * * /export/home/oracle/testbackup
30 23 * * * ftp -i x.x.x.x
說明:第1條語句指定每天自動在23點10分執(zhí)行對數(shù)據(jù)庫的備份,第2條語句指定每天自動在23點半啟動ftp,將備份文件傳輸?shù)絺浞葜鳈C(備份主機為符合語句中指定IP地址的主機)。
Oracle文件只能在Oracle用戶名下用“crontab -e”命令來編輯。編輯完成后,可以在用“crontab-l”命令來查看crontab文件內(nèi)容,同時在/var/spool/cron/crontabs目錄下查看是否增加了一個Oracle文件。
至此,本地主機可以每天定時備份數(shù)據(jù)庫,并定時把備份數(shù)據(jù)傳到備份主機。這樣,較好地實現(xiàn)了Oracle數(shù)據(jù)異地自動備份,本地主機如果有什么故障,數(shù)據(jù)有了可靠備份,同時,在一定程度上也減輕了系統(tǒng)管理人員煩瑣、重復(fù)的備份工作。
上一頁
相關(guān)文章
Oracle Database Server ''TNS Listener''遠(yuǎn)程數(shù)據(jù)投毒漏洞(CVE-2012-167
這篇文章主要介紹了Oracle Database Server 'TNS Listener'遠(yuǎn)程數(shù)據(jù)投毒漏洞(CVE-2012-1675的完美解決方法的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下2016-09-09
查看oracle數(shù)據(jù)庫的編碼及修改編碼格式的方法
本節(jié)主要介紹了如何查看oracle數(shù)據(jù)庫的編碼及修改編碼格式,需要的朋友可以參考下2014-07-07
通過Navicat連接Oracle數(shù)據(jù)庫的詳細(xì)步驟
本文介紹如何通過Navicat 連接Oracle數(shù)據(jù)庫,以往總是使用Oracle客戶端來連接Oracle數(shù)據(jù)庫,但是Oracle客戶端一般有幾百M的大小,而且安裝繁瑣配置麻煩,如果可以通過Navicat直接連接Oracle則會非常輕松方便,需要的朋友可以參考下2023-10-10
Oracle賬戶被鎖錯誤:the?account?is?locked解決方法
the?account?is?locked意思是賬戶被鎖定了,這種情況需要大家去解鎖,這篇文章主要給大家介紹了關(guān)于Oracle賬戶被鎖錯誤:the?account?is?locked的解決方法,需要的朋友可以參考下2023-12-12
一次簡單的Oracle恢復(fù)Case實戰(zhàn)記錄
這篇文章主要給大家介紹了一次簡單的Oracle恢復(fù)Case實戰(zhàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10

