快速进行在线备份和恢复的方法

运维 系统运维
作为系统管理员,快照是进行在线备份的出色方式,并且如果出现了错误,还能恢复内容。本文我们重点介绍外部快照和备份快照,希望能给大家带来帮助。

  为何使用 Snapshot

  为何使用 snapshot 而不是 tar 或 copy 实用工具?使用 snapshot 时,文件系统被冻结,确保您能获得完整的副本,并且可避免“打开文件”、“正在运行进程”或“文件未找到”等问题。另外,通常无需关闭应用程序,尽管我通常在制作快照前会让应用程序进入静态状态;之后再取消静态状态。

  您最多可拥有 JFS2 文件系统的 15 个连续外部快照。在测试环境中升级应用程序时,常见的做法是每次更新文件系统中包含的环境后,都制作一个快照。

  进行 JFS2 在线备份是一件非常好的事情,但还需要能够在出现错误时恢复内容。使用 rollback 实用工具,通过指定快照所驻留的设备,可将外部快照回滚到制作快照时的那个点。没有什么比这个功能更好了。要回滚备份快照,可使用 restore 命令。

  个人***项

  使用哪种方法来创建快照取决于您最喜欢哪种方法。所以让我们介绍一下各种快照类型:

  外部快照

  • 在现有的 JFS2 文件系统上创建
  • 其存储空间位于不同的逻辑卷上
  • 可作为单独的文件系统来挂载
  • 有一个只读的数据区域

  备份快照

  • 主要是 snapshot 命令的一个接口
  • 执行所有快照工作
  • 在存档文件或磁带上保存最终得到的文件系统备份

  如果某个快照遇到空间不足问题,该文件系统的所有快照都将变为无效的 — 换言之,都不可用。在我自己的工作中,我更喜欢外部快照,主要是因为可以根据需要挂载它们,以便更好地查看。

  外部快照

  在本演示中,文件系统名为 /opt/portal。其大小是 512M,数据文件 281M 多。

  1. # lsfs |grep -w portal 
  2. /dev/fslv02  --   /opt/portal   jfs2 1048576 rw   yes no 
  3. # df -m |grep portal 
  4. /dev/fslv02  512.00 231.60 55%  7  1% /opt/portal 
  5. # pwd 
  6. /opt/portal 
  7. # ls 
  8. app_be  app_fr  app_nl  lost+found 

  要创建外部快照,作为一条规则,我用约原始文件系统大小的一半来创建该快照。IBM 文档建议的快照大小是源文件系统的 10 % 到 15 %。但是,我喜欢为快照提供充足的空间,并且从安全性方面来看也是有好处的。在本例中,50 % 的空间相当于 250M。创建快照的常见格式为:

 snapshot -o snapfrom= -o size=

  现在创建外部快照:

  1. # snapshot -o snapfrom=/opt/portal -o size=250M 
  2. Snapshot for file system /opt/portal created on /dev/fslv04 

  自动创建一个逻辑卷来保存快照。为了确认已创建了快照,使用 snapshot 命令查询相关文件系统的快照,如:

  1. # snapshot -q /opt/portal 
  2. Snapshots for /opt/portal 
  3. Current Location   512-blocks  Free Time 
  4. *  /dev/fslv04   524288  523520 Sun Nov 4 10:57:46 GMT 2012 

  现在,我可以挂载快照,查看已复制的数据,但首先需要创建挂载快照所需的目录:

  1. # mkdir /snap_portal 
  2. # mount -v jfs2 -o snapshot /dev/fslv04 /snap_portal 
  3. # df -m |grep portal 
  4. /dev/fslv02  512.00 231.60 55%  7  1% /opt/portal 
  5. /dev/fslv04  256.00 255.62 1%  -  - /snap_portal 

  现在,我可用 cd 命令进入该快照 (/snap_portal) 文件夹并查看已复制的文件;注意,文件系统是只读的,不允许写入数据:

 

  1. # cd /snap_portal 
  2. # ls 
  3. app_be  app_fr  app_nl  lost+found 
  4. # ls >file1 

  file1:The file system has read permission only.

 

  现在,我可以进一步将快照文件系统备份到磁带或 SAN。假设我已对 /opt/portal 执行了某些数据维护操作并且误删除了一个文件,那么只需从已挂载的快照中将被删除的文件复制到 /opt/portal 中。但是,现在我们来创建 /opt/portal 的另一个快照:

  1. # snapshot -o snapfrom=/opt/portal -o size=250M 
  2. Snapshot for file system /opt/portal created on /dev/fslv05 

  和前面类似,查询 /opt/portal 的快照:

  1. # snapshot -q /opt/portal 
  2. Snapshots for /opt/portal 
  3. Current Location   512-blocks  Free Time 
  4. /dev/fslv04   524288  523520 Sun Nov 4 10:57:46 GMT 2012 
  5. *  /dev/fslv05   524288  523520 Sun Nov 4 11:00:53 GMT 2012 

  在上面的输出中,* 代表***的快照。如果以后不再需要使用某个快照,可使用 snapshot 命令删除该快照。删除快照的通用格式为:

  1. snapshot -d 

  例如,要删除 fslv04,我可使用以下命令:

  1. # snapshot -d /dev/fslv04 

  假设由于某些更新导致 /opt/portal 上出现错误,因此需要恢复整个文件系统。我可以选择要回滚哪个快照。对我而言,这是快照的主要卖点之一。如果已经制作了多个快照,那么就有多个恢复点。在我们的演示中,我将回滚在 10:57 制作的快照,即 /dev/fslv04。首先我要卸载所有快照(如果已挂载的话),然后卸载 /opt/portal,之后执行 rollback 命令。在这个例子中,时间点是 Sunday, Nov. 4 的 10:57。rollback 命令的常见格式为:

  1. rollback -v 

  进行回滚时,会删除该文件系统的所有快照。要回滚并恢复到原始文件系统 /opt/portal,我可使用:

  1. # umount /opt/portal 
  2. # rollback -v /opt/portal /dev/fslv04 
  3. Restoring block 1 
  4. Restoring block 1000 
  5. Restoring block 2000 
  6. ... 
  7. Restoring block 12000 
  8. Total blocks restored = 12809 
  9. rmlv:Logical volume fslv04 is removed. 
  10. rmlv:Logical volume fslv05 is removed. 
  11. Rollback complete 

  要确认没有留下任何快照,可列出快照:

  1. # snapshot -q /opt/portal 
  2. /opt/portal has no snapshots. 

  现在,我可以重新挂载 /opt/portal,并且已恢复了文件系统的原始内容!

  1. # mount /opt/portal 

#p#

  备份快照

  backsnap 在后台为您完成大部分的工作。它创建逻辑卷来保存快照,然后将内容复制到一个存档文件中或磁带设备上。然后可使用 restore 命令来恢复已备份的文件。使用 /opt/portal 文件系统创建备份快照,让我们看看它是如何工作的。backsnap 命令的常见格式为:

  1. backsnap -m  -s size -f 

  在这个例子中,我将使用以下值:/backsnap_portal 是临时挂载点;250M 是大小;/opt/dump/backup_portal 是存档文档;/opt/portal 是源文件系统。

  1. # backsnap -m /backsnap_portal -s size=250M -f /opt/dump/backup_portal /opt/portal 
  2. Snapshot for file system /opt/portal created on /dev/fslv05 
  3. backup:Backing up /dev/rfslv05 to /opt/dump/backup_portal. 
  4. backup:There are an estimated 286768 1k blocks. 
  5. backup:There are 287321 1k blocks on 1 volumes. 
  6. backup:The backup is complete. 

  现在我们有了一个存档文件 backup_portal,它位于目录 /opt/dump 中。看看存档的大小,是 280M:

  1. # du -ms /opt/dump/backup_portal 
  2. 280.56 backup_portal 

  要确认文件已位于存档中,我可使用 restore 命令列出各个文件:

  1. # restore -tvf /opt/dump/backup_portal 

  要从存档文件中将文件 app_be 恢复到 /opt/portal,我可使用:

  1. # cd /opt/portal 
  2. # restore -xvf /opt/dump/backup_portal app_be. 
  3. Extracting directories from media. 
  4. Initializing the symbol table. 
  5. Extracting requested files.. 
  6. Specify the next volume number:1 
  7. Extracting file ./app_be. 

  要制作一个快照并将文件置于磁带 rmt0,同时使用以前的备份快照的属性,我可使用:

  1. # backsnap -m /backsnap_portal -s size=250M -f /dev/rmt0 /opt/portal 

  如果您已制作了快照并且已将内容发送到磁带,可使用 restore 命令列出磁带,如:

  1. # restore -tvf /dev/rmt0 

  也可使用以下命令列出已制作的快照:

  1. # snapshot -q /opt/portal 
  2. Snapshots for /opt/portal 
  3. Current Location   512-blocks  Free Time 
  4. *    /dev/fslv08   524288  522496 Sun Nov 4 11:30:25 GMT 2012 

  如果决定要删除快照,已发送到磁带的已存档文件不会发生任何变化,这与删除外部快照不同。也就是,除非您以前将该快照的其他备份发送到某些介质上。

  注意空间

  作为系统管理员,我相信快照是进行在线备份的出色方式,并且如果出现了错误,还能恢复内容。但是要记住,一定要注意文件系统中已用的空间;您可不想因为空间不足导致最终得到无效的快照吧。

责任编辑:黄丹 来源: developerWorks
相关推荐

2020-07-23 19:42:12

MySQL备份恢复数据库

2011-02-24 11:32:44

虚拟机备份

2024-05-23 13:49:00

Kuberneteetcd集群

2023-10-10 07:33:30

Kubernetes容器

2011-08-15 09:19:22

2015-10-21 14:07:17

Oracle备份Oracle恢复

2021-09-13 10:27:34

云备份云恢复云计算

2010-11-03 14:10:23

DB2在线备份

2010-09-06 16:02:00

DB2

2011-07-22 15:20:37

Active Dire备份

2011-07-22 15:19:29

Active Dire恢复

2023-09-21 09:31:24

MySQL数据库

2011-07-22 15:23:55

Active Dire备份

2011-10-13 15:20:32

恶意网站诈骗

2018-05-28 08:21:56

2013-11-08 09:31:21

数据备份企业安全

2010-05-26 13:50:15

MySQL备份

2017-01-06 08:24:23

备份恢复大数据

2010-11-10 13:22:41

SQL Server备

2022-08-09 11:25:52

数据备份服务器虚拟化磁盘
点赞
收藏

51CTO技术栈公众号