如何實現多台主機的磁帶機同時備份,加快備份速度
隨著信息化進程的加快,不少企業從手工操作發展到利用信息技術,來提高生產率,企
業也積累了大量的數據,其中不少數據庫要求7x24小時運轉的。
數據庫的備份過程,即使不停機也會降低服務器的性能,盡量縮短備份時間窗的好處是
顯而易見的。
但是一台UNIX主機一般只配置一台磁帶機。假設我們有另外一台帶磁帶機的UNIX主機可
供利用,我們可以利用兩台磁帶機同時工作加快備份時間。
假設有ORACLE數據庫運行在主機tom上,該數據庫有四個各為2GB的數據文件:
/dev/volume1
/dev/volume2
/dev/volume3
/dev/volume4
每個數據文件備份到磁帶上需要15分鐘,如果利用tom自帶磁帶機備份需花掉1小時。
我們有jerry主機帶磁帶機,且空閒。 以下操作利用管道技術,縮短備份時間。
第一步,將jerry做成tom的信任主機,方法同上。
第二步,將備份任務分為兩組,volume1,volume2在tom上備份,volume3,volume4在
jerry上備份。
在tom上運行:
dd if=/dev/volume1 of=/dev/rmt0
dd if=/dev/volume2 of=/dev/rmt0
在jerry上運行:
rsh tom "dd if=/dev/volume3" |dd of=/dev/rmt0
rsh tom "dd if=/dev/volume4" |dd of=/dev/rmt0
通過上述辦法,可將備份時間縮短一半。如果有更多的主機加入備份工作,在充分利用
網絡帶寬的情況下,效果將更加顯著。
III. 解決磁盤空間不足,如何使應用程序產生數據,不經過中間過程,直接生成壓縮
文件。
以ORACLE數據庫邏輯備份工具exp/imp為例。
ORACLE數據庫用exp備份出來的數據,經過壓縮,如compress壓縮,可節約一半左右的磁
盤空間。但要經過中間過程,在壓縮中需要原文件大小的約一半的緩沖空間。利用管道
可以直接生成最終的壓縮文件,省略中間過程。
常規的exp命令運行如下:
exp system/manager@testdb file=expdat.dmpfull=y
運用管道,如下:
mknod exp_pipe p /* 生成命名管道 */
exp system/manager@testdb file=./exp_pipefull=y /* 將備份數據送往管道 */
compress exp_pipe > expfull.dmp.Z /* 生成壓縮備份文件*/
恢復操作也可以利用管道,跳過將文件解壓縮,生成原始文件的過程,如下:
mknod imp_pipe p /* 生成相應的命名管道 */
uncompress -c expfull.dmp.Z > imp_pipe/* 將解壓縮數據送入管道 */
imp system/manager@testdb file=./imp_pipefromuser=scott
touser=scott /* 將管道數據導入數據庫testdb