虛擬主機系列 - 備份與還原作者: 鄙雕兔 日期: 2007-01-21 14:57一. 問題 : 1. Linux 主機服務到底有那些東東要備份出來, 我要如何還原 ? 2. 當我的硬體發生問題, 我要將系統升級到新的 Linux 套件的話, 我要如何處理 ? 二. 說明 : 1. 以上的兩個問題, 通常是很多系統管理員的痛, 因為系統沒事每天跑的好好的話, 其實不需要太去理它, 若再加上一些自動化的排程的話, 那很多事情都只要作確認的動作就好了, 不過天有不測風雲人有旦夕禍福, 沒有人敢保證你的硬體不會壞, 你的系統沒問題, 當這種情況發生的時候, 系統管理員就累了, 尤其是遇到系統的升級及硬體更換, 那真是一場可怕的夢魘, 這 10 多年來鄙雕兔與 Linux 朝夕相處, 升級過不知有多少系統, 也更換過數不清的硬體, 從每一次的錯誤與失敗中, 整理了以下的經驗資料, 希望有緣人看完後能夠不要再作惡夢, 且卯起來親近 Linux , 並學習它, 使用它, 那這些個整理的資料也就沒有白費囉 !! 三. 問題處理 : <1> 備份處理 : Linux 系統真是一個很方便且可愛的系統, 因為本身所有的系統都是採用檔案設備的方式存在, 所以相對來說, 只要將一些設定檔案及資料檔案備份出來後, 就可以將整個系統給還原到其它主機或者是作升級的動作, 備份的部份包含以下兩個東東 : (1) 安裝程式及套件 : 這部份不需要備份, 也不需要處理, 因為以目前套件更新的速度來說, 幾週或者幾個月前的備份套件可能已經是舊的且有問題的了, 所以這個部份請於基本系統安裝完成後直接採用 yum 或者 apt-get 的方式更新, 若有需要安裝的套件部份也是採用這種方式處理, 更新方式 : #yum 的更新指令 yum update -y #apt 的更新指令 apt-get update apt-get dist-upgrade -y (2) 系統設定及資料 : 這個部份的資料才是真正要作備份處理的東東, 主要的部份請參考以下的 baksys 腳本程式及說明 : date>>/var/backup/backup_time # 這行指令的主要功能是將開始備份的時間存放在 /var/backup/backup_time 的這個檔案中 # 先將昨天的備份資料刪除, 這部份請配何 log file rotation 的功能, 將原本 .gz 的檔案備份成 .gz.1 tar -cf /var/backup/home.tar /home tar -cf /var/backup/etc.tar /etc tar -cf /var/backup/mail.tar /var/spool/mail # 將 /home, /etc, /var/named, /var/spool/mail 的資料夾中的所有檔案資料打包成一個個 .tar的檔案 mysqldump -A -uroot -pxxxxxxxxx >/var/backup/mysql.bak # 將 MySQL 資料庫中的所有資料庫備份到 mysql.bak 檔案中, xxxx 紅字的部份請改成你主機上面 MySQL 的密碼 gzip /var/backup/home.tar # 以上的 gzip 是將備份的所有檔案都作壓縮的處理 date>>/var/backup/backup_time # 這行指令的主要功能是將備份結束的時間存放在 /var/backup/backup_time 的這個檔案中 ============================================ <2> 還原處理 : 當資料有了安全的備份之後呢, 就可以依照以下的步驟將系統還原, 或者是升級到新版的 Linux 系統上. 系統還原步驟與安裝程序 : 2. 將 /var/backup/baksys 重新執行一次 5. 進行線上更新 yum or apt-get 採用 FTP 或者是 SSH 將所有被份的資料放回新安裝的主機中 8. 到 /olddata 解開 /etc.tar.gz
mv /olddata/home.tar.gz / mv /olddata/mail.tar.gz / 重新啟動 sendmail 12. FTP Server 的還原 xxxxx 紅字部份請改成安裝時設定的 MySQL 密碼 重新啟動 mysql 四. 其它說明及注意事項 :
2. 再將資料覆製回原主機及更改設定的話, 以上面這些基本的服務來說約只要 30 分鐘就可以完成 3. 在作升級的時候, 不用區分 32 bits 或者 64 bits 版本, 檔案部份都可以通用 4. 若是主機上面還有一些其它的服務或這是設定需要備份與還原的話, 再自行加入到 baksys 檔案中 5. 目前升級遇到比較多的問題部份是 PHP 4.x 與 PHP 5.x 版的相容性問題, 這部份若是有客戶採用 PHP 4.x 的話, 那請勿採用直接升級的方式, 因為有很多目前市面上的套件, 在採用 5.x 的時候都會有程式執行上的問題, 所以建議採用平行升級的方式來解決這個問題, 也就是先安裝一台新的主機, 再將程式及資料烤貝一份過去測試, 若都 OK 後再作系統的升級 6. 套件版本的問題需要多注意, 比如以下套件 b. Bind DNS : 因為舊版的Bind DNS 沒有支援 chroot 的功能, 所以在升級時需要作相對的修改. c. Apache : 1.3.x 版的 Apache 若是要升級到 2.x 版的 httpd 時, 主機的設定部份請勿採用, 請直接將虛擬主機的設定部份加到 httpd.conf 檔尾即可 d. MySQL : 3.x 版的 MySQL 大部份都是採用 Myisam 的資料庫格式, 最好採用 mysqldump 將資料匯成文字檔案後, 再將資料倒入 4.x 或者 5.x 版的資料庫中 7. 若是要升級到新的硬體設備時, 請記得採用新版的 Linux 套件, 我們之前在過渡到 SATA 硬碟時就發生 Core3, Core4 有些主機版晶片不支援的情況, 後來全部採用 Core 6 之後問題才改善 8. 備份的處理部份, 若是要採用即時備援的磁碟陣列的話, 請參考以下鄙雕兔的文章 : Linux Software Raid 的安裝說明 : 9. 若是升級或者是還原時發生不可預測的問題, 記得到 www.google.com 找 google 大神幫幫忙吧 !! 引用通告地址: http:///linux/trackback.php?tbID=7&extra=de7ae8
|
|