資料庫邏輯備份(轉)
兩機互為備份,exp方式。
[@more@]每天定時做好備份,然後往磁帶機上寫,再傳往另外的主機
一、匯出資料庫
export命令將資料庫中的資料備份成一個二進位制檔案,它通常有三種模式:使用者模式、表模式和整個資料庫模式。
本文擬採用使用者模式,備份之前,應先建立一個備份目錄,以容納備份檔案,比如可建一個/backup目錄。
接著我們可在UNIX的Oracle目錄下(也可以是其它目錄)分別建立兩個檔案ora—backup,tar—backup。
需要說明的是,前一個檔案需要對Oracle的引數進行初始化,為了方便起見,我們不妨將初始化命令放到一個檔案中
(檔名姑且定為ora—env),再由第一個檔案呼叫它。
1. ora—env檔案對Oracle的引數進行初始化,其內容如下:
ORACLE—HOME=$ORACLE—HOME;export ORACLE—HOME
ORACLE—SID=ora73;export ORACLE—SID
ORACLE—TERM=sun;export ORACLE—TERM
LD—LIBRARY—PATH=$ORACLE—HOME/lib;export LD—LIBRARY—PATH
ORA—NLS32=$ORACLE—HOME/ocommon/nls/admin/data;export ORA—NLS
PATH=.:/usr/ccs/bin:/usr/ucb:$ORACLE—HOME/bin:$PATH;export PATH
DISPLAY=host1:0;export DISPLAY
NLS—LANG=american—america.zhs16cgb231280;export NLS—LANG
2. ora—backup檔案對資料庫做export匯出,匯出的檔名可以任意定,本文定為字母“xx”加當天日期,即假如當天日期是12月10號,則匯出的檔名為“xx1210.dmp”,以區別於其它日期的備份檔案。
ora—backup檔案內容:
./oracle/ora—env
#初始化Oracle資料庫
rq=′date +″%m%d″ ′
#把當天日期賦予變數rq
rm /backup/?
# 清空 /backup目錄
exp test/test file=/backup/xx$rq.dmp log=/backup/xx$rq.log
本命令用於在$提示符下,匯出test使用者的資料(其口令亦為test),匯出檔案及日誌均放在/backup目錄下。
二、磁帶備份
tar—backup檔案將用export命令匯出的資料檔案複製到磁帶上。
tar—backup檔案內容:
tar rvf /dev/rmt/0n/backup/?
本命令可將/backup目錄下當天產生的檔案備份到磁帶上。本檔案中,tar命令使用了三個引數,其中r選項表示向磁帶上拷入檔案而不破壞磁帶原來內容,v選項表示在複製過程中顯示檔案資訊,f選項後面加上磁帶裝置名,指定檔案向何處複製,n選項表示磁帶機不倒帶。/dev/rmt/0表示UNIX主機第一個磁帶驅動器,同理,/dev/rmt/1則表示UNIX主機第二個磁帶驅動器,依此類推。
ora—env、ora—backup、tar—backup檔案編寫完成後,分別使用下述命令:
chmod 755 ora—env
chmod 755 ora—backup
chmod 755 tar—backup
這樣,三個檔案就都變成了可執行檔案。
三、異地備份
我們知道,通常可用FTP命令在兩臺主機間傳輸資料,但一般是透過互動方式實現的,即需要手工輸入目標主機的IP地址、使用者名稱、口令等。顯然,這不符合自動備份的要求。所幸的是,我們可以透過編寫一個.netrc的檔案來達到目標。這一檔案必須命名為.netrc,且必須存放在啟動FTP命令的機器上的使用者註冊目錄中,該檔案的許可權應禁止組內或其它使用者進行讀訪問。這樣,當使用者使用FTP命令的時候,系統將會在該使用者的註冊目錄中尋找.netrc檔案,如果能夠尋找到,將會首先執行該檔案,否則,會互動式地提示使用者輸入使用者名稱、口令等。
在使用FTP命令之前,應先在另一臺作備份用的UNIX機器上建一目錄,以容納備份檔案,本文建的目錄是/pub 。需要指出的是,為了加快備份速度,兩臺主機之間的傳輸速率應儘可能的高,最好位於同一區域網上。
.netrc檔案內容如下:
machine host2
# host2為作備份用的主機名
login oracle
#oracle為備份主機上的一個使用者
password oracle
#oracle使用者的口令為oracle
macdef init
#定義一個名為init的宏,它將在自動註冊程式的最後被執行
bin
#檔案的傳輸方式設為二進位制
lcd /backup
# 進入本地工作目錄/backup
cd /pub
# 進入備份主機目錄/pub
mput ?
# 將/backup目錄下的所有檔案傳輸至備份主機
bye
#退出FTP會話程式
.netrc檔案編寫完成後,使用下述命令:
chmod 600 .netrc
這樣,.netrc檔案就只能被該使用者所訪問。
四、啟動備份程式
Cron是一個永久程式,它由/etc/rc.local啟動執行。Cron檢查/var/spool/cron/crontabs/?目錄中的檔案,找到所要執行的任務和執行任務的時間。
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:所要執行的命令
如果一個域是?,表明命令可以在該域所有可能的取值範圍內執行。
如果一個域是由連字元隔開的兩個數字,表明命令可以在兩個數字之間的範圍內執行(包括兩個數字本身)。
如果一個域是由逗號隔開的一系列值組成的,表明命令可以在這些值組成的範圍內執行。
如果日期域和星期域都有值,則這兩個域都有效。
現在,我們編寫一個檔案,用以啟動自動備份程式。值得注意的是,該檔案只能在Oracle使用者名稱下用crontab -e 命令來編輯,否則將不會被定時執行,檔名定為Oracle,檔案將放在/var/spool/cron/crontabs 目錄下。編輯完成後,可以在Oracle的$提示符下,用crontab -l命令來檢視。
Oracle檔案內容:
0 23 ? ? ? /oracle/ora—backup
# 每天23點對資料庫執行備份
0 2 ? ? ? /oracle/tar—backup
# 每天2點將檔案備份到磁帶上
0 4 ? ? ? ftp -i host2
# 每天4點將檔案備份到另一臺主機上
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9417382/viewspace-932247/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE資料庫的邏輯備份(轉)Oracle資料庫
- 邏輯備份全庫或者邏輯備份多個使用者的資料
- 認識資料庫物理備份和邏輯備份區別資料庫
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- 資料庫(表)的邏輯備份與恢復資料庫
- oracle邏輯備份之--資料泵Oracle
- 使用crontab和expdp實現資料庫定期邏輯備份資料庫
- Linux環境下資料庫自動邏輯備份Linux資料庫
- oracle邏輯備用資料庫(一)Oracle資料庫
- 邏輯備份--mysqldumpMySql
- mysql 邏輯備份 (mysqldump)MySql
- mysql的邏輯備份MySql
- 邏輯備庫Switchover
- 配置物理備庫+邏輯備庫
- Mysql備份與恢復(2)---邏輯備份MySql
- 揭祕ORACLE備份之--邏輯備份(EXP)Oracle
- 揭祕ORACLE備份之--邏輯備份(EXPDP)Oracle
- MongoDB 邏輯備份工具mongodumpMongoDB
- Oracle 邏輯備份 expdp/impdpOracle
- expdp 邏輯備份指令碼指令碼
- MySql邏輯備份恢復MySql
- Oracle邏輯備份指令碼Oracle指令碼
- openGauss-邏輯備份
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- dataguard之邏輯備庫移動資料檔案
- 邏輯備用資料庫主要作用是什麼。資料庫
- Windows邏輯備份-EXPDP(保留5天內邏輯備份)批處理指令碼Windows指令碼
- 用ASP備份資料庫 (轉)資料庫
- 邏輯Data Guard主備庫的轉換
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(1)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(2)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(3)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(4)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(5)
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle
- 11 管理邏輯備庫
- ORACLE備份和恢復 - 邏輯備份 exp/impOracle
- 邏輯資料庫的管理資料庫