|
雖然硬盤故障不經常發生,但每次出現都是致命的,此時如何將影響降至最小,並盡快恢復系統運行就是系統維護人員最急解決的問題。不久前筆者遭遇了一次硬盤故障,最終順利地解決了這次危機,在此把恢復過程介紹給讀者。
本文涉及的系統共有3台Compag Alpha 4000小型機,運行OSF 4.0E和Trucluster 1.5, 其中兩台運行Oracle 7.3.4.5.0 OPS, 另一台運行Oracle 7.3.4.5.0 Standby數據庫,發生故障的主機為一台。
故障表現
發生故障的小型機表現為自動重啟,查看/var/adm/messages發現本地盤有大量的I/O錯誤。經診斷確認是本地盤硬件錯誤,需更換新的硬盤。
如果採用重新安裝OSF 4.0E、Trucluster 1.5、Oracle 7.3.4.5.0以及對應的補丁,再配置主機、網絡、Trucluster等,順利的話,至少需要2天的時間。考慮到Unix系統最近一次磁帶備份,操作系統並未做配置上的改變,是決定用備份磁帶以爭取在最短的時間內恢復、減少業務影響, 下面是恢復步驟。
備份現有系統
該機文件系統是advfs(如果是ufs,則要用dump備份),備份系統按如下方式操作:
1. 以超級用戶身份登錄系統:
root_domain#root /
usr_domain#usr /usr
oracle_domain#oracle_fset /usr1
2. 切換系統進入單用戶模式:
# shutdown now
3. “mount”所有盤:
# mount -a
4. 放進空磁帶:
# vdump -0vf /dev/nrmt0h /
# vdump -0vf /dev/nrmt0h /usr
# vdump -0vf /dev/nrmt0h /usr1
5. 取出磁帶,做好標記,重新啟動系統:
# shutdown -r now
檢查當前環境、備份license
license很關鍵,需要小心備份:
1.備份/var/adm/lmf/ldb文件;
2.查看現有文件系統:
#df -k
3. 查看filedomain:
# showfdmn root_domain
# showfdmn oracle_domain
# showfdmn usr_domain
4. 查看disklabel:
#disklabel -r rz8
插上新盤、進行分區
假設新盤為rz12,寫入標簽和引導標志:
#disklabel -rw -t advfs rz12 18g_disk
進行分區,要保証和原有系統分區一樣,或者採用更大的分區:
#diskconfig
用備份磁帶恢復
拔掉壞的硬盤,把新盤插在原來故障盤的位置。用Unix的操作系統光盤啟動系統,進入命令模式:
#cd /dev
#./MAKEDEV rz8
# /sbin/mkfdmn /dev/rz8a root_domain
# /sbin/mkfset root_domain root
# /sbin/mkfdmn /dev/rz8d usr_domain
# /sbin/mkfset usr_domain usr
# /sbin/mkfdmn /dev/rz8e oracle_domain
# /sbin/mkfset oracle_domain oracle_fset
# cd /dev
假設tz6為磁帶的Unix設備名,生成磁帶設備名:
# ./MAKEDEV tz6
# cd /
放進備份磁帶:
# mount -t advfs root_domain#root /mnt
# cd /mnt
# /sbin/vrestore -xvf /dev/nrmt0h
# cd /
# umount /mnt
# mount -t advfs usr_domain#usr /mnt
# cd /mnt
# /sbin/vrestore -xvf /dev/nrmt0h
# cd /
# umount /mnt
# mount -t advfs oracle_domain#oracle_fset /mnt
# cd /mnt
# /sbin/vrestore -xvf /dev/nrmt0h
# cd /
# umount /mnt
完成上述工作,重啟系統,然用備份的“ldb”文件恢復license。至此,硬盤恢復最終完成。
結束語
要想讓系統具有更高的可用性,需要在現有財力和可用性要求之間選擇一個平衡點,對本文的情況,如果讀者業務系統本地盤有RAID控制器的話,建議做成RAID 1鏡像本地盤,另外,除了制定完備的數據庫備份策略外,還應定期做好Unix系統的備份工作。
|