我们目前有一个运行在专用服务器上的应用程序,它使用了LEMP (Linux、Nginx、MariaDB、PHP)堆栈。现在,我们只在一个固定的时间间隔(每x小时一次)进行备份。我一直在研究我们应该如何进行现场备份,并好奇其他人在做什么?
目前,我们的想法是在另一个安装了mariadb的不同地理位置的服务器上,然后同步在此备份服务器上创建生产数据库的实时只读副本的数据库。对于用户上传的文件,当对生产服务器上的上载目录进行更改时,我们将设置rsync以同步到备份服务器。这听起来像个可靠的计划吗?
此外,我们的想法是,如果我们要支付额外的专用服务器,我们应该运行应用程序从两个服务器,配置DNS之间的循环。这不仅为我们提供了备份,而且在其中一台服务器出现故障时也为我们提供了容错能力。
我们是在正确的轨道上,还是错过了一些重要的因素?
发布于 2017-12-20 17:22:47
你在寻址冗余。这很好。在紧急情况下,您可能会失败到备份服务器上。这不是备份解决方案。你希望你的备份,特别是一个网络应用程序回到过去。
如果开发人员通过并运行了DROP TABLE myApp_users,该更改将传播到您的只读备份服务器,您将无法访问recover.You,需要能够返回合理的时间。
如果有人找到方法更新您的徽标或主服务器上的用户上传的文件,则更改将通过rsync传播到备份服务器。
您需要每隔一段时间转储数据库,并隔一段时间将文件复制到某个地方,并保持x倍的数据值来称其为备份。
发布于 2017-12-20 17:16:28
那个后备策略看起来不错。也许有一些方法可以改进它,但是它会改善你目前的状况。您仍然需要备份,以减少数据库损坏、攻击等。
使用基本DNS的循环知更鸟可能不是最好的主意。有些客户总是使用第一张记录,有些客户不会失败。使用一些更聪明的东西,如AWS、Route53或CloudFlare,可以进行健康检查,并切断对没有响应的服务器的通信量,这样会更好地工作。
https://serverfault.com/questions/889069
复制相似问题