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

至此,系统恢复完成。