Solaris系统多用户模式下系统备份和多分区写入磁带
前言:因为是生产系统不能中断,而ufsdump需在单用户模式运行,所以想用fssnap来在线做备份。因为要备份两个server共四个分区,又想节约磁带,所以想将多个分区备份到一个磁带上。
目的:在多用户模式不中断系统应用的条件下备份APP、Oracle系统分区,并将APP、Oracle两个系统备份写入一个磁带。
系统环境:
APP server,Oracle server均为SUN V480服务器,系统Solaris 8,磁带机装在APP server上
APP server:主机名为mdc-cq-sun1 Oracle server:主机名为mdc-cq-sun2
要备份的分区:
root@mdc-cq-sun1 # df -k
Filesystem kbytes used avail capacity Mounted
/dev/dsk/c1t0d0s0 21688297 2716432 18754983 13% /
/dev/dsk/c1t0d0s7 40430179 9397578 30628300 24% /export/home
root@mdc-cq-sun2 #df -kFilesystem kbytes used avail capacity Mounted
/dev/dsk/c1t0d0s0 21688297 1921721 19549694 9% /
/dev/dsk/c1t0d0s7 40430179 4171755 35854123 11% /export/home
fssnap命令介绍:快照是solaris一种在线备份的方法,可对挂载的或者多用户模式的文件系统进行备份
fssnap用命令来创建,查询,或者删除一个UFS文件系统的临时快照,命令格式:
/usr/sbin/fssnap -F FSType -V -o special_option mount-point | special
fssnap命令的部分常用选项:
-d 删除和文件系统相关的快照,如果在建立快照的时候带有-o选项,那么删除快照的时候连同备份文件一起删除,否则就只有手动删除
-F 展示被使用的文件系统类型
-i 展示FSType快照的状态
-V 显示完整的命令行但是不执行命令
-o 允许使用特殊选项,比如说备份文件的路径和大小
fssnap命令创建了快照文件和两个只读的虚拟设备,一个是块虚拟设备,/dev/fssnap/0,可以作为只读的文件系统被挂载,一个是原始虚拟设备,/dev/rfssnap/0
当快照首次被创建的时候,文件系统会出现暂时锁定的情况,用户在对文件系统进行写操作的时候可能会注视到一个短暂的停顿,停顿的时间随文件系统的大小而增加.当用户对文件系统进行读操作的时候却不会发生这样的现象。创建快照不会对系统造成明显的影响。
操作步骤:
要使用fssnap先要执行 /etc/init.d/xntpd stop,否则会出错。
1、用fssnap为要备份的分区做快照
先做APP server上/分区的快照,快照文件存放在/data/backup/目录下,名字为root.snap
root@mdc-cq-sun1 #fssnap -F ufs -o bs=/data/backup/root.snap / /dev/fssnap/0(执行这个命令后,它将创建一个用于快照的虚拟设备文件/dev/fssnap/0)
再做/export/home分区的快照,快照文件存放在/data/backup/目录下,名字为export.snap
root@mdc-cq-sun1 #fssnap -F ufs -o bs=/data/backup/export.snap /export/home
/dev/fssnap/1(执行这个命令后,它将创建一个用于快照的虚拟设备文件/dev/fssnap/1)
查询文件系统快照的相关信息
root@mdc-cq-sun1 #fssnap -i
0 /
1 /export/home
查询某个快照的具体信息
root@mdc-cq-sun1 #fssnap -i /
Snapshot number : 0
Block Device : /dev/fssnap/0
Raw Device : /dev/rfssnap/0
Mount point : /
Device state : idle
Backing store path : /data/backup/root.snap
Backing store size : 58016 KB
Maximum backing store size : Unlimited
Snapshot create time : Thu Oct 20 14:57:21 2005
Copy-on-write granularity : 32 KB
使用快照:
root@mdc-cq-sun1 #mount /dev/fssnap/0 /mnt
当系统需要恢复某些文件时可以挂载快照,挂载后的快照分区为只读。
对Oracle server 的/和/export/home分区进行同样的快照操作完成后再执行 /etc/init.d/xntpd start
2、用ufsdump将两个系统多个快照分区备份到一盘磁带
先为APP server做备份
root@mdc-cq-sun1 #ufsdump 0ucf /dev/rmt/0bn /dev/rfssnap/0;
root@mdc-cq-sun1 #ufsdump 0ucf /dev/rmt/0bn /dev/rfssnap/1;
再为Oracle server做备份
Oracle server要使用APP server上的磁带机需将两个server设为信任关系分别在两个系统/下建立.rhosts文件,写入内容 + +
注:做完备份后需删除或注释.rhosts,否则可能导致系统不安全
root@mdc-cq-sun1 #ufsdump 0ucf mdc-cq-sun1:/dev/rmt/0bn /dev/rfssnap/0;
root@mdc-cq-sun1 #ufsdump 0ucf mdc-cq-sun1:/dev/rmt/0bn /dev/rfssnap/1;
注:
(1) 一定要用/dev/rmt/0bn,使用非回绕模式,做完一个分区备份后磁带不回绕;
(2)每执行完一个分区ufsdump,不要对磁带做任何动作,否则可能使磁带定位不正确;
(3)全部备份完成后,使用mt -f /dev/rmt/0 rewind回绕磁带;
(4)须记住每一个文件系统备份的顺序,以上备份顺序为:
磁带位置0 对应mdc-cq-sun1:/dev/rfssnap/0
磁带位置1 对应mdc-cq-sun1:/dev/rfssnap/1
磁带位置2 对应mdc-cq-sun2:/dev/rfssnap/0
磁带位置3 对应mdc-cq-sun2:/dev/rfssnap/1
YtJLinux联盟
3、磁带基本操作和如何恢复系统文件
mt 磁带机操作命令常用参数:
mt -f /dev/rmt/0 status 报告设备状态
mt -f /dev/rmt/0 rew 回绕倒带
mt -f /dev/rmt/0n fsf 1 前进一段
mt -f /dev/rmt/0n bsf 3 后退两段
需要恢复某个分区时需先确定该分区在磁带上的位置
比如,恢复分区 mdc-cq-sun2:/dev/rfssnap/0
先确定该分区在磁带上位置为:2
再将磁带回绕到开始位置: mt -f /dev/rmt/0 rew
然后将磁带前进到该分区位置2 : mt -f /dev/rmt/0n fsf 2
最后再恢复: ufsrestore ivf /dev/rmt/0n