一般informix可以利用磁帶備份的方式,備份所有的資料庫,一般的命令如下:
ontape -s -L 0

但由於磁帶本身也有可能因為長時間使用未進行更換(一般半年要更換新的磁帶),
造成真的需要進行復原時,可能因為磁帶某部份磁性消失形成資料遺失而無法正常
回復資料。

所以一般正常進行磁帶備份,也應該要對informix中重要資料庫做好備份,並將這
些備份出來的檔案備份到另外一個檔案伺服器中,做好雙保險措施。


以下的linux shell就是依照這樣的想法寫出來的。
1.先以informix 或是 root登入
2.程式如下:
程式名稱:DBexport_db
informix DB Name:testDB

#export informix環境變數
INFORMIXDIR=/u/informix;export INFORMIXDIR
INFORMIXSERVER=on_shm1; export INFORMIXSERVER
PATH=$INFORMIXDIR/bin:$PATH;export PATH
DB_LOCALE=zh_tw.big5;export DB_LOCALE
CLIENT_LOCALE=zh_tw.big5;export CLIENT_LOCALE
SERVER_LOCALE=zh_tw.big5;export SERVER_LOCALE
DBLANG=zh_tw.big5;export DBLANG
#日期型式(YYMMDD/)
DBDATE=Y4MD/;export DBDATE
#(按住 Ctrl ,先按 V 再按 A 即可 )
DBDELIMITER=^A;export DBDELIMITER
TERM=vt100;export TERM
LANG=zh_tw.big5;export LANG

#變更目錄到準備用來備份的目錄路徑,這邊是以/u1/backup當做備份的目錄路徑
cd /u1/backup
#輸出informix中 testDB資料庫,完成後會產生目錄 testDB.exp 的目錄與檔案
#dbexport.out
dbexport testDB

#宣告資料目錄名稱並加上備份日期
newfile="/u1/backup/testDB"$(date +%y%m%d).exp
#宣告新的資料目錄壓縮後的檔案名稱
newtarfile="/u1/backup/testDB"$(date +%y%m%d).tar.gz
#宣告dbexport.out的新檔名(原檔名加上備份日期)
newfile1="/u1/backup/dbexport"$(date +%y%m%d).out


#變更到 /u1/backup 目錄
cd /u1/backup
#變更資料庫檔名
mv /u1/backup/testDB.exp $newfile 2>/dev/null
tar cvzf $newtarfile $newfile
#變更dbexport.out檔名
mv /u1/backup/dbexport.out $newfile1 2> /dev/null


3.記得於crontab加入以下文字,讓備份每天替您執行
#本例排訂每天早上1:10執行備份程式
10 1 * * * /u1/backup/DBexport_db

arrow
arrow
    全站熱搜

    clinno 發表在 痞客邦 留言(0) 人氣()