Unix/Linux 系统自动化管理: 数据备份与同步篇

来源:developerWorks 中国 作者:程 燕
  
本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化备份与同步系统数据。

前言

数据是 Unix/Linux 系统中最重要的组成部分 , 但是数据的备份与同步却是最容易被忽略的任务。通过定期的数据备份与同步,可以在磁盘出现故障时,最大程度的降低数据损失。当用户误操作导致数据损坏或者丢失时,可以快速恢复。

数据的备份不同于整个系统备份,将不同数据按照优先级分类,根据用户需求,备份重要文件。

从而使数据独立于操作系统,降低备份成本与时间。

不同的操作系统可能使用不同的数据备份方式,本文介绍了通用的 Unix/Linux 实用程序(tar 和 cpio),标准的 AIX 实用程序 (mksysb 和 backup),以及远程备份工具 rsync。





确定备份策略

在商业环境中,必须首先确定需要备份哪些文件以及备份所消耗的时间。如果备份过多的文件,会导致备份系统的成本过于庞大,从而带来不必要的开支。如果没有备份足够的数据,那么可能导致重要数据的丢失,反而带来更大的损失。

当然,备份整个系统是简单易行的,但是通常这样的备份是浪费的且缺乏意义的。从减少备份系统的成本出发,只有当某些数据足够重要,需要共享,才具有备份的必要。

基本数据一般分为以下几类:

  • 用户数据:所有的用户数据以及用户目录,及私人文件等。
  • 系统信息:系统用户,组,密码,主机列表等。
  • 应用程序:系统上启动的服务,比如 web 应用程序,apache 等。
  • 应用程序的配置文件与数据:针对不同的应用程序,不同的配置参数和重要数据文件。
  • 数据库:事实上数据库可以单独提供针对数据库所有数据的备份与同步功能。

简单的数据备份是指一次性备份所有数据,然后再备份上次备份之后所做的修改。第一次备份是指“完全备份”,后一次备份是“增量备份”。通常适用于个人或者小型网站。对于机构或者大型网站来说,需要采用“多级备份”。将完全备份设定为 0 级,增量备份的级别分别是 1,2,3 等。在每个增量备份级别上,可备份同级或上一级的上次备份以来的变动。

比如,如果我们有 1 0 盘磁带,如果使用简单备份进行日备份,则可恢复两周内的数据。

如果使用多级备份,例如:

磁带 1-2, 月备份,每月第一个星期五

磁带 3-6, 周备份,每周星期五(排除第一周)

磁带 7-10,日备份,每周星期一到四,则可以将备份历史扩展到两个月。





实用程序和命令

tar 命令

tar 命令是通用性较强的 Unix/Linux 归档命令。tar 将一个或多个文件和目录打包为单个文件,并保持原始文件的大小、拥有者、权限、文件类型及其在文件系统层次结构中的位置。tar 是磁带存档程序 (tape archive) 的首字母缩写,是最易用的数据备份实用程序。

表 1. tar 命令的常用参数:

参数 含义
-c 该参数会创建一个新的存档
-v 该参数会列出每个处理的文件名称
-f 该参数会指定存档或设备名称
-z 该参数将用 gzip 对存档进行压缩或解压
-x 该参数将从存档文件中提取一个或多个文件

要创建 /CriticalData 的存档文件,使用:

 # tar -czvf backup.tar.gz /CriticalData/ 

要恢复该目录,使用:

 # tar -xzvf backup.tar.gz /CriticalData/ 

tar 在提取文件和较小的目录方面表现不错,如果要恢复文件系统和卷组,我们更倾向于选用 cpio, 或是使用专用性更强的 Linux/Unix 数据备份实用程序。

cpio 命令

cpio 与 tar 类似,是通用性较强的 Unix/Linux 归档命令。一般被用来备份和恢复文件及目录结构。

表 2. cpio 命令的常用参数:

参数 含义
-o 该参数会将数据拷贝到文件或设备中
-i 该参数会将数据从文件或设备中还原到系统中
-v 该参数会列出每个处理的文件名称
-z 该参数会按需要建立目录
-x 该参数会从标准输入读取文件路径名称,然后将这些文件复制到指定的目录
-d 该参数会按需要建立目录
-p 该参数会从标准输入读取文件路径名称,然后将这些文件复制到指定的目录
-B 该参数会将 I/O block 增加到 5120bytes,默认是 512bytes。加快数据备份速度
-m 该参数会保留时间属性
-u 该参数自动将较新的文件替换到较旧的文件

将 /CriticalDate 目录和它的所有文件和子目录建立存档,使用:

 # find /CriticalData/ -depth | cpio -ov > backup.cpio 

要恢复该目录,使用:

 # cpio -ivdum <backup.cpio 

cpio 建立起来的归档文件包括文件头和文件数据两部分。文件头包含了对应文件的信息。如文件的 UID,GID,连接数以及文件大小等。其好处是可以保留硬连接,在恢复时默认情况下保留时间戳,无文件名称长度的限制。

mksysb 介绍

IBM AIX 与其它的 Unix 系统相比 , 有两个重要的特性: LVM (logical volume manager) 和 ODM (object database manager)。一般而言 , 用 cpio 或 tar 的指令亦可以备份 volume groups ,

但并不能完全正确的备份完整的系统。利用 mksysb 来备份时,可制作一个可开机的磁带 , 并且可以正常的还原系统的 LVM 和 ODM。

mksysb 备份一般用来在文件中或可启动磁带上创建 rootvg 的可安装镜像。如果需要对用户卷组进行备份的话,可使用 savevg。

mksysb 的格式包括:

  • 基本操作系统启动镜像
  • 基本操作系统安装镜像
  • 虚拟目录 (TOC)
  • rootvg 上的实际数据

图 1. mksysb 的格式

mkinsttape 镜像包括以下重要文件:

  • Tapeblksz 该文件包含运行 mksysb 前设置的磁带驱动器的块大小。

  • 时间:2009-08-20 16:46 来源:developerWorks 中国 作者:程 燕 原文链接

好文,顶一下
(1)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量