Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1213150
  • 博文数量: 212
  • 博客积分: 10450
  • 博客等级: 上将
  • 技术积分: 1957
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-23 09:00
文章分类

全部博文(212)

文章存档

2012年(1)

2011年(16)

2010年(11)

2009年(9)

2008年(22)

2007年(36)

2006年(117)

分类:

2006-05-30 09:38:40

虽然硬盘故障不经常发生,但每次出现都是致命的,此时如何将影响降至最小,并尽快恢复系统运行就是系统维护人员最急于解决的问题。不久前笔者遭遇了一次硬盘故障,最终顺利地解决了这次危机,在此把恢复过程介绍给读者。

本文涉及的系统共有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系统的备份工作。

转自:

阅读(1589) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~