solaris 备份恢复解决方案—利用fssnap快照及ufsdump
现状如下:
solaris 8+oracle db server,硬盘开始出现hard err,尚无可更换硬盘,生产环境,远程操作,不便进入单用户模式下备份,所以选择fssnap+ufsdump方式进行备份,等待新硬盘方可更换。
1. 挂载nfs 或使用磁带机,本人选择挂载网络nfs,命令如下:
#mount -F nfs 172.16.x.x:/home/nfs/ /bak
2. fssnap 快照,参考以下脚本:
/etc/init.d/xntpd stop
fssnap -F ufs -o bs=/bak/snap/root.snap /
fssnap -F ufs -o bs=/bak/snap/usr.snap /usr
fssnap -F ufs -o bs=/bak/snap/var.snap /var
fssnap -F ufs -o bs=/bak/snap/opt.snap /opt
fssnap -F ufs -o bs=/bak/snap/u01.snap /u01
fssnap -F ufs -o bs=/bak/snap/home.snap /export/home
/etc/init.d/xntpd start
(注:先停止/etc/init.d/xntpd,否则会出现错误:snapshot error: File system could not be write locked)
3. ufsdump 备份虚拟设备
通过 fssnap –i 命令查看对应快照的虚拟设备,对快照进行备份参考以下脚本:
ufsdump 0uf /bak/dump/root.dmp /dev/rfssnap/5
ufsdump 0uf /bak/dump/usr.dmp /dev/rfssnap/4
ufsdump 0uf /bak/dump/var.dmp /dev/rfssnap/3
ufsdump 0uf /bak/dump/opt.dmp /dev/rfssnap/2
ufsdump 0uf /bak/dump/u01.dmp /dev/rfssnap/1
ufsdump 0uf /bak/dump/home.dmp /dev/rfssnap/0
4. ufsrestore 恢复
更换新硬盘,从本地CD 或从网络进行引导,并挂载nfs在/a下:
#mount -F nfs 172.16.x.x:/home/nfs/ /a
#cd /a
#mkdir mnt
通过format交互命令,调整分片大小,newfs创建文件系统:
#newfs /dev/rdsk/c0t0d0s0
# mount /dev/dsk/c0t0d0s0 /a/mnt
# cd /a/mnt
ufsrestore 恢复文件:
# ufsrestore rvf /a/dump/root.dmp
# ls
# rm restoresymtable
# cd /
# umount /a/mnt
# fsck /dev/rdsk/c0t0d0s0
重复以上过程对其他分片进行恢复,根分区需执行以下命令创建引导块:
# installboot /usr/platform/’uname –m’/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0 (sparc)
# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t3d0s0 (x86)
系统将执行转储级别0 备份。由于ufsrestore 命令将重定位文件并更改inode 分配,因
此应始终立即执行新创建文件系统的完整备份:
# ufsdump 0uf /a/dump/newroot.dmp /dev/rdsk/c0t0d0s0
重新启动:
# init 6
至此,系统恢复完成。