2012-03-12 71 views
1

我应该需要停止ApacheMySQL备份之前的服务器?还是我可以在他们工作的时候做?MySQL,PHP,Apache应用程序备份

在一台电脑的虚拟主机下,有数个正在运行的网站。我在寻求一般的备份要求和最好的办法。如果需要离线或不离线。

+0

什么样的备份,文件备份?您只需复制并粘贴到所需的位置 – 2012-03-12 08:55:49

+0

即可。有备份和备份。准系统备份或带有差异的实时备份。此外,每个软件包都有自己的提示和技巧。分开处理它们。 – 2012-03-12 09:00:23

回答

0

你可以在运行时做到这一点。

+0

我在备份时遇到了问题,我们的服务器无法处理,它会导致我们的网站停机。 – Filype 2012-03-12 08:58:17

+0

由于您正在复制某些文件,因此没有理由将您的网站关闭。它一定是别的东西。 – 2012-03-12 09:15:28

2

您可以设置一个MySQL replication并备份从站上的内容,这样您就不会占用生产数据库。

+0

复制不是备份。如果有人能够访问你的脚本并将你的数据库转储到主服务器上呢?你会复制转储:) – 2012-03-12 08:57:55

+0

好吧,我有兴趣听到做备份的最佳方式。 – Filype 2012-03-12 08:59:44

+0

您可以在主服务器上执行mysqldump,而无需执行复制或停止服务器。你可以使用mysql复制,在slave上激活binlog并在那里备份。 – 2012-03-12 09:01:41

1

正常情况下,当您需要备份时,您必须停止MySQL或在您的MySQL表上发出读锁以获得正确和安全的备份;否则,您可能会得到不一致的备份数据。然而,This tutorial解释了如何在不中断数据库的情况下恢复MySql数据库。

核心思想:停止从服务器,然后进行服务器备份。一旦完成备份,我们将再次启动从服务器,它将赶上mysql主服务器,并且不会丢失任何数据。

其次,在备份过程中,您不需要停止应用程序服务器(Apache)。

1

对于PHP您不需要备份的文件。使用Subversion,CVS,GIT或任何版本控制系统来保存文件的副本。将SVN保留在生产服务器之外。

对于Apache,如果您对其进行了大量修改,则需要一次备份配置文件。否则,这不是你每天备份的东西。如果您指的是Apaches处理的文件(例如用户上传的图片和内容),请执行复制sh脚本,将其附加到cron并按您的喜好随时运行。你不必为此停止服务器。

现在MYSQL。这是最棘手的,因为它取决于你的表如何存储。 InnoDB一起存储在一个大文件中,除非指定了一些指令。 MyIsam表格只是可以直接复制的常规文件。如果您拥有事务和外键而不是使备份更复杂一些,因为您希望保持数据库的完整性。在这种情况下,您可以停止服务器,执行备份并重新启动,或者像其他人所说的那样设置复制并在从属设备上执行备份,您可以在不中断活动的情况下停止备份。我在不停止服务器的情况下备份现在4GB的数据库的夜间备份。