Centos 6 – 备份和恢复/恢复

我正在尝试testing和loggingCentos 6的备份还原过程。这里是我所要做的,但是有一些地方我需要清晰一些。 CentOS上的备份/恢复文件在网上有点碰运气。

一般备份和恢复计划

/ proc中
/ SYS
/ tmp目录
的/ dev
/ var / lock < – 不要从还原中排除 – 请参阅答案
/ var / run < – 不要从还原中排除 – 请参阅答案
/ var / tmp中
/ etc / fstab文件
/etc/mdadm.conf
在/ etc / mtab中
在/etc/resolv.conf
在/ etc /networking
的/ etc / SYSCONFIG / *networking
在/ etc / sysconfig / kernel中
/ etc / hosts文件
在/ etc / modprobe的*
/ etc / networkmanager < – 确保IP不被恢复 – 请参阅答案
/ etc / udev以
/ LIB /模块
/启动

  • 还原完成后,重新引导并注意错误

  • 检查networkingconfiguration是否正确。 您可能需要使用system-config-network来更改您的networking设置。

  • 某些应用程序(如Apache和MySQL)在还原后可能无法正确启动。 由于/var/run被从恢复中排除,像/var/run/httpd这样的子文件夹将不存在,因此应用程序将无法正确创buildPID文件。 您需要恢复/var/run/httpd//var/run/mysqld/等文件夹,并为其授予正确的权限。 只要不排除还原中的/ var / run和/ var / lock,这不应该成为问题 – 请参阅答案。

  • 完成补救措施后,请确保应用程序正确启动。

  • 如果你正在运行一个MySQL数据库,它可能仍然可以,而不必从你可能做的任何平面文件备份中恢复它。 您可以通过运行mysqlcheck -c -u root –p******** --all-databases databases来检查数据库的状态。 如果你看到任何错误运行mysqlcheck -c -u root –p******** --all-databases --auto-repair来修复它们。 您应该始终确保您有一个适当的备份数据库,如下面的答案中所示。 我个人使用mysqldump。

  • 使用yum update修补系统到最新级别。

  • 重新启动后,确保系统清楚地彻底检查/ var / log / messages是否有任何错误,请testing系统的function以确保其正常运行。 在这种情况下,请使用system-config-network将IP地址更改为原始故障系统的IP地址。

问题/疑问

  • 从还原中排除/var/run/*会导致用于包含某些应用程序的PID的子文件夹在还原时不会被创build。 从恢复中排除/var/run/*真的有必要吗? 是一个更好的方法来简单地不恢复PID文件?

  • 系统恢复后,“故障系统”的IP地址也恢复了。 我不想要这个。 我一定错过了“从恢复列表中排除”文件。 任何想法在哪里?

  • 在更新的时候,我得到很多消息,如/sbin/ldconfig: /usr/lib64/libblah.so is not a symbolic link 。 更新某些服务后,如果我重新启动系统,请勿正确启动。 我不知道这是否与备份系统恢复符号链接指向的文件而不是符号链接本身有关。 如果我运行ldconfig并查看其抱怨的共享对象之一,则共享对象是实际的文件而不是符号链接。 其他人看到这个?

1.排除/var/run

正如你已经注意到的那样,在CentOS 6系统完全恢复期间排除/var/run会引起问题,因为它也不包括已安装软件包创build的目录。 排除/var/lock也会导致类似的问题,因为有些软件包也会在那里创build子目录。

(在使用systemd最新Linux发行systemd可能没有这样的问题 – 在这样的发行systemd上,可能会在tmpfs上放置/var/lock/var/run (really /run ),并且每次启动时都会创build所需的子目录; ,CentOS 6比较旧,不支持在/var/lock/var/run自动创build子目录。)

但是,实际上不包括/var/run/var/lock ,因为CentOS 6上的/etc/rc.d/rc.sysinit脚本包含以下命令:

 find /var/lock /var/run ! -type d -exec rm -f {} \; 

该命令将在系统引导期间删除所有过时的锁或pid文件(或任何其他非目录文件,例如套接字和符号链接)。 因此,您应该从还原排除列表中删除/var/lock/var/run

2.networkingconfiguration文件的位置

恢复备份时已经排除了/etc/sysconfig/network* 这应该匹配/etc/sysconfig/network文件(全局networkingconfiguration)和/etc/sysconfig/network-scripts目录(每个接口configuration文件ifcfg-* )。 但是,这些文件只能由initscripts包中的旧式networkingconfiguration脚本使用 ,而CentOS 6有另一个networkingconfiguration系统 – NetworkManager ,其configuration存储在/etc/NetworkManager 。 还原备份时,请尝试排除该目录。

3.符号链接的问题被文件replace

如果在还原后看到符号链接已被replace为纯文件,则意味着您的备份/还原程序configuration不正确,或者(如果没有用于保存和还原实际符号链接的选项),则使用的程序不适用用于Linux系统的备份/恢复。 只有在程序用于备份和恢复一些绝对不会包含符号链接的特定数据的情况下,您才可以使用不支持符号链接的程序。 请注意,您可能会在不期望它们的地方find符号链接 – 例如,在某些情况下,可能会在MySQL数据库目录中使用符号链接(将某些部分数据存储在不同的设备上),因此依赖于“无符号链接”假设可能是危险的。

4. MySQL备份

如果您的备份程序只是从正在运行的服务器复制文件,则备份并不是真正的“崩溃一致性”,因为不同的文件(甚至同一文件的不同块)在不同的时间被复制,因此实际上不会获得一致的快照数据库的备份。 (这适用于任何types的数据库,不仅仅是MySQL。)

有几种方法可以仅使用文件级备份来备份MySQL数据库:

  1. 在启动文件级备份之前使用mysqldump创build一个SQL转储; 备份转储文件而不是数据库目录。 这是最便携的备份格式,但是倾销和恢复可能会很慢。

  2. 在开始备份之前停止MySQL服务器,进行文件级备份,然后再次启动MySQL服务器。 要恢复,只需恢复新服务器上的所有文件,然后正常启动服务器。 这种备份速度很快,但在备份过程中需要大量的停机时间。

  3. 为了减less上述方法所需的MySQL服务器停机时间,可以在停止服务器之后创build文件系统快照,然后再次启动MySQL服务器,然后挂载快照,执行文件级备份并删除快照。 您需要将LVM卷上的文件系统与卷组中的某些可用空间用于快照。

  4. 为了进一步减less停机时间,您可以在拍摄快照之前使用FLUSH TABLES WITH READ LOCK而不是停止服务器,如此处所述; 在这种情况下,快照将包含处于一致状态的MyISAM表,并且InnoDB表处于崩溃一致状态(在文件级恢复之后将需要恢复InnoDB)。

阅读本文档以获取有关MySQL备份的更多信息。

结合这个Question线程中的排除列表和一个Rackspace教程,我能够使下面的configuration工作可靠地复制/复制整个已安装的CentOS服务器。

我的设置是CentOS 6.7 + Virtualmin。 但是这可能与CentOS 6.X没有任何控制面板。

我创build的过程如下:

  • 将Centos 6.X最小安装到目标服务器
  • 从install.sh安装Virtualmin
  • 从目标服务器注销,但保留它
  • 使用备份服务器的rsync还原服务器备份
  • 重新启动目标服务器
  • login到Virtualmin
  • 用Virtualmin工具校正IP(它会问)
  • 正确的主机名
  • 从备份服务器还原虚拟服务器(站点)备份(如果您正在使用虚拟服务器并在那里有任何帐户)
  • 如果virtualmin添加它们,从httpd.conf中删除php_value,php_admin_value
  • 从Virtualmin工具进行Virtualminconfiguration检查

如果您不使用Virtualmin,则可能需要将Virtualmin项目省略。

下面是要复制到远程服务器的排除文件列表:

 /boot /proc /sys /tmp /dev /var/tmp /etc/fstab /etc/mdadm.conf /etc/mtab /etc/resolv.conf /etc/networks /etc/sysconfig/network* /etc/sysconfig/kernel /etc/hosts /etc/modprobe* /etc/networkmanager /etc/udev /lib/modules /var/lock /etc/conf.d/net /etc/network/interfaces /etc/sysconfig/hwconf /etc/sysconfig/ip6tables-config /etc/hostname /etc/HOSTNAME /etc/modules /net /etc/rc.conf /usr/share/nova-agent* /usr/sbin/nova-agent* /etc/init.d/nova-agent* 

积分:

https://support.rackspace.com/how-to/migrating-a-linux-server-from-the-command-line-2/

有一个优秀的开源项目ReaR(放松和恢复),在创buildLinux的映像风格备份(包括CentOS和Red Hat)方面做了惊人的事情。 特别值得注意的是,它们捕获文件系统布局的酷炫方式,并将其并入恢复磁盘,使恢复文件系统布局工作得相当好。 最棒的是,它是用bash编写的(而且写得很好,可以启动!)。

除了我们写了一个快速教程http://carroll.net/blog/red-hat-bare-metal-backup之外,我们与这个项目没有任何关系&#x3002;