- 論壇徽章:
- 1
|
出處:Unix愛好者家園unix-cd.com
在UNIX系統(tǒng)中,為了使數(shù)據(jù)備份變得輕松、容易、安全,最好的辦法就是自動安排系統(tǒng)例行工作(系統(tǒng)調(diào)度),在系統(tǒng)空閑時間里自動執(zhí)行任務(wù)。如定期刪除一些流水文件、日志文件,定期完成數(shù)據(jù)的本地備份和異地備份等。這樣既發(fā)揮了UNIX系統(tǒng)的卓越功能,又減輕了系統(tǒng)管理員的工作量,使數(shù)據(jù)備份做到及時安全。
一、建立數(shù)據(jù)備份用戶
首先建立一個用戶,如:userbk,將該用戶的屬主、屬組設(shè)定為Informix,權(quán)限為755。在該用戶下存放備份的各種數(shù)據(jù),以便統(tǒng)一備份到磁帶上或異地機器上。
二、用系統(tǒng)例行工作安排作業(yè)
UNIX系統(tǒng)有一個始終運行的守護進程,該進程可以在正常調(diào)度的間隙運行作業(yè),用戶可以在一個文件中指定crontab命令運行任務(wù),cron守護程序在初始化或該文件修改后自動讀取其內(nèi)容。crontab文件中指定的各個域為:
分鐘 小時 月 日 星期幾 命令
如文件/usr/spool/cron/crontabs/root存放超級用戶調(diào)度的命令,內(nèi)容為:
17 5 ?? 0 /etc/cleanup>/dev/null
0 2 ?? 0,4 /usr/lib/cron/logchecker
3 3 ???/usr/lib/cleantmp>/dev/null
1 3 ???/etc/setclk-rd1800>/dev/null 2>&1
#5 18 ??1-5/usr/lib/sa/sa2 -s 8:00 -e 18:01-i 1200-A
0 4 ??0 /etc/custom -V symlinks;#CUSTOM -SYMLINK -REPORT
0 0 ??1-5 scosh cronsched-r
0 0??1 scosh cronsched-wr
第一行的作用是在每周星期日5:17執(zhí)行/etc/cleanup來清除系統(tǒng)上的某些日志文件。第二行的作用是每周星期日和星期四2:00執(zhí)行/usr/lib/cron/logchecker來檢查守護進程cron的日志文件。第三行為每天3:03運行/usr/lib/cheantmp命令清除指定目錄中的臨時文件等。
用戶可以用命令crontab -u root -e來編輯此文件,在文件最后加入一行內(nèi)容:
0 3 ??? kill-user
此行內(nèi)容為每天3:00運行kill-user,此命令文件的任務(wù)是終止某些用戶的進程。
同樣,用命令crontab-u userbk -e來編輯userbk文件,安排userbk用戶的作業(yè)任務(wù),內(nèi)容如下:
10 3??? bdbf
30 5 ?? 0 ftp -invydbf.log
0 2 ? 1 ?rm ?.log
第一行內(nèi)容為每天3:10運行bdbf程序,使數(shù)據(jù)備份至/usr/userbk目錄下, 并拷貝到磁帶上。第二行內(nèi)容為每周星期日5:30運行ydbf程序,將備份至/usr/userbk目錄下的數(shù)據(jù)通過網(wǎng)絡(luò)傳送到異地機器上存貯,并將備份信息寫入 ydbf.log日志文件中。第三行內(nèi)容為每月1日2:00刪除/usr/userbk下的日志文件。
三、本地數(shù)據(jù)備份
筆者使用的操作平臺為SCO Openserver5.04系統(tǒng),數(shù)據(jù)庫為Informix4.0和Informix-Online7.3兩種版本。在Informix4.0上使用的業(yè)務(wù)有“人身保險”(用戶名rsbx)、“子女備用金保險”(用戶名zbbx)等。數(shù)據(jù)以字符串形式保存在各自的目錄下,備份時可用tar命令或cpio命令將整個用戶目錄備份即可。而在Informix-Online7.3上應(yīng)用的有“綜合處理系統(tǒng)”(用戶名c4g1,庫名picc2.dbs),“會計記帳系統(tǒng)”(用戶名為claf,庫名account.dbs)等,數(shù)據(jù)存放在Online指定的設(shè)備上,平時采用ontape -s命令備份,但由于此命令實現(xiàn)自動備份較困難,并且不能和其它數(shù)據(jù)備份到一盤磁帶上,會造成備份介質(zhì)的浪費。所以最好采用 dbexport命令備份數(shù)據(jù)。運行dbexport命令的前提是調(diào)用數(shù)據(jù)庫的相關(guān)用戶必須
退出,一旦有一個應(yīng)用點沒有退出,備份就會失敗。為了確保數(shù)據(jù)的安全備份,需編制一個終止進程的命令文件,即前述中由超級用戶調(diào)度的kill-user程序。
程序1:/usr/bin/kill-user
ps -u rsbx >tmp-a
ps -u zbbx >>tmp-a
ps -u c4gl >>tmp-a
ps -u claf >>tmp-a
cut -cl-6 tmp-a >tmp-b
while read a
do
kill-9 $a
echo “kill alread$a”|cat>>/tmp/kill-user.log
done RSBX;compress RSBX
find /usr/zbbx |cpio-oacvB>ZBBX;compress ZBBX
…
rm-r?.exp
dbexport -c picc2 -ss
find ./picc2.exp | cpio-oacvB>PICC2;compress PICC2
dbexport -c account -ss
find ./account.exp | cpio-oacvB>ACCOUNT;compress ACCOUNT
…
sleep 10
tar c8v ?.Z
date | cat>>userbk.log
echo“PICC2 ACCOUNT RSBX ZBBX...backup over”|cat>>userbk.log
程序中所設(shè)置的環(huán)境變量同Informix用戶的環(huán)境變量設(shè)置一樣,所有需要備份的數(shù)據(jù)用歸檔命令cpio拷貝至/usr/userbk目錄下,用戶可根據(jù)自已的實際情況自行添加,然后用tar命令統(tǒng)一將所有文件拷貝至磁帶上,最后將備份信息寫到日志文件userbk.log中,這樣系統(tǒng)管理員只需每天早晨上班后檢查一下是否備份好,然后更換一般磁帶即可。
四、異地數(shù)據(jù)備份
熟悉網(wǎng)絡(luò)的人都知道FTP的功能十分強大,它主要用于網(wǎng)絡(luò)之間的文件傳輸。一般情況下,用戶傳輸多個文件時,需登錄服務(wù)器逐一傳輸,只有等待一個文件傳送完畢之后才能傳輸下一個,這樣用戶需花很長時間守候在終端前等待一個文件傳輸結(jié)束。為了簡化工作,在UNIX平臺上FTP支持非在線傳輸,即用戶只需把要輸入的命令逐條寫進shell腳本,FTP傳輸文件時調(diào)用腳本即可,例:對上述/usr/userbk目錄下的數(shù)據(jù)文件的異地備份,可用如下腳本來完成。
程序3:/usr/userbk/ydbf
open hostgs
user mybackup mypasswd
mpt ?.Z
bye
程序中的hostgs為異地的主機名。該主機名需在本地主機/etc/hosts文件中定義。mybackup、mypasswd是異地主機中為備份數(shù)據(jù)而建立的用戶名和口令字,當系統(tǒng)例行程序調(diào)用此程序時,可將數(shù)據(jù)全部備份至異地的hostgs主機中mybackup用戶下。
五、數(shù)據(jù)恢復
本地備份到磁帶上的數(shù)據(jù)可用tar x8v命令將數(shù)據(jù)文件拷貝到/usr/userbk目錄下。異地備份的數(shù)據(jù)可用FTP命令傳輸至該目錄下,或者直接用/usr/userbk目錄下的數(shù)據(jù),用uncompress?.Z解壓。
對于Informix4.0版以字符串形式存放的數(shù)據(jù),可直接用cpio命令來恢復。如:rsbx用戶數(shù)據(jù)可用如下命令來恢復:
cpio -icduvB
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/31/showart_520574.html |
|