■ 江蘇 繆振龍
編者按: Shell腳本一直是Linux運(yùn)維管理的必備工具之一。通過(guò)Shell腳本,管理員可以輕松地完成復(fù)雜而重復(fù)性的維護(hù)工作。
單位機(jī)房有一臺(tái)Sun小型機(jī),運(yùn)行Solaris 10系統(tǒng),安裝Oracle 10g數(shù)據(jù)庫(kù)。該小型機(jī)通過(guò)iSCSI協(xié)議連接到遠(yuǎn)程存儲(chǔ)服務(wù)器。因?yàn)闃I(yè)務(wù)數(shù)據(jù)的重要性,需要對(duì)數(shù)據(jù)進(jìn)行日常備份。
為提高備份效率,我們通過(guò)一個(gè)簡(jiǎn)單的shell腳本實(shí)現(xiàn),由于白天業(yè)務(wù)流量較大,為不影響業(yè)務(wù)系統(tǒng)運(yùn)行,采用crontab在每天晚間自動(dòng)執(zhí)行備份腳本,將服務(wù)器本地?cái)?shù)據(jù)備份到遠(yuǎn)程存儲(chǔ)服務(wù)器上。經(jīng)過(guò)近一周測(cè)試,數(shù)據(jù)備份運(yùn)行正常。
圖1 創(chuàng)建數(shù)據(jù)備份目錄
圖2 數(shù)據(jù)自動(dòng)備份
圖3 備份腳本內(nèi)容
1.通 過(guò)SecureCRT連接到Sun小型機(jī),創(chuàng)建數(shù)據(jù)備份目錄并賦權(quán),如圖1所示。
2.編寫(xiě)shell腳本,實(shí)現(xiàn)數(shù)據(jù)自動(dòng)備份,如圖2所示。
3.編寫(xiě)shell腳本,實(shí)現(xiàn)自動(dòng)備份。
-bash-3.2$ vi oracle_bak.sh
備份腳本內(nèi)容,如圖3所示。腳本結(jié)束后,使用wq保存。為防止Oracle在導(dǎo)出過(guò)程中出現(xiàn)異常錯(cuò)誤,可在業(yè)務(wù)空閑期執(zhí)行該腳本測(cè)試。確認(rèn)無(wú)誤后,再配置Crontab計(jì)劃任務(wù)。
在向Crontab添加定時(shí)任務(wù)前,先設(shè)置環(huán)境變量。
-bash-3.2$ EDITOR=vi
-bash-3.2$ export EDITOR
-bash-3.2$ crontab -e
#每天晚間11點(diǎn)自動(dòng)執(zhí)行腳本備份數(shù)據(jù)
0 23 * * * /export/home/oracle/oracle_bak.sh
圖4 備份情況
配置腳本和Crontab計(jì)劃后的第二天,查看前一天的備份情況,如圖4所示。
可以看出,備份過(guò)程中沒(méi)有出現(xiàn)警告。有的表是通過(guò)直接路徑方式導(dǎo)出,通過(guò)查閱相關(guān)資料。備份如果采用直接導(dǎo)出模式,數(shù)據(jù)將直接從磁盤(pán)中讀取到導(dǎo)出session的UGA中,跳過(guò)SQL命令處理層,避免了不必要的數(shù)據(jù)轉(zhuǎn)換,比傳統(tǒng)導(dǎo)出方式提高2至3倍速度。
除了采用將數(shù)據(jù)備份到遠(yuǎn)程iSCSI磁盤(pán),我們還可以在內(nèi)網(wǎng)中搭建NFS服務(wù)器,將數(shù)據(jù)備份到NFS共享盤(pán)中。兩種方式相比,NFS是基于文件級(jí)的存儲(chǔ),具有較高的可視性。而iSCSI方式則是基于數(shù)據(jù)塊級(jí)的存儲(chǔ),提供數(shù)據(jù)塊集合供用戶訪問(wèn)。兩種方式孰優(yōu)孰劣,業(yè)界暫無(wú)定論。由于業(yè)務(wù)需求為備份數(shù)據(jù)庫(kù),從安全性和傳輸性能方面來(lái)看,筆者更傾向于采用iSCSI方式。
現(xiàn)在運(yùn)維技術(shù)已經(jīng)越來(lái)越向自動(dòng)化、智能化方向發(fā)展。這就要求運(yùn)維人員一定要緊跟新時(shí)代發(fā)展步伐,不斷提高自身運(yùn)維能力。
更正聲明:在2019年第4期“基礎(chǔ)設(shè)施與數(shù)據(jù)管理”欄目中文章“安裝Kali Linux”的署名更正為“濰坊工程職業(yè)學(xué)院信息工程系 趙培元”。