专用 LEMP 堆栈服务器的备份策略

专用 LEMP 堆栈服务器的备份策略

我们目前有一个应用程序运行在专用服务器上,该服务器使用 LEMP(Linux、Nginx、MariaDB、PHP)堆栈。目前我们只按设定的时间间隔(每 x 小时)进行备份。我一直在研究如何进行实时备份,并且很好奇其他人在做什么?

目前我们的想法是在另一个地理位置安装另一台安装了 mariadb 的服务器,然后同步数据库,在此备份服务器上创建生产数据库的实时只读副本。对于用户上传的文件,我们将设置 rsync,以便在生产服务器上的上传目录发生更改时同步到备份服务器。这听起来像是一个可靠的计划吗?

此外,我们还想到,如果我们要购买额外的专用服务器,我们应该在两台服务器上运行应用程序,并将 DNS 配置为在两台服务器上循环。这不仅可以为我们提供备份,还可以在一台服务器发生故障时为我们提供容错能力。

我们是否走在正确的轨道上或者我们是否错过了一些重要因素?

答案1

您正在解决冗余问题。这很好。紧急情况下,您可以故障转移到备份服务器。这是不是备份解决方案。您希望您的备份(尤其是 Web 应用程序的备份)能够回到过去。

如果开发人员通过并运行DROP TABLE myApp_users,则该更改将传播到您的只读备份服务器,并且您将无法恢复。您需要能够回溯到合理的时间。

如果有人找到在主服务器上更新您的徽标或用户上传的文件的方法,则该更改将通过 rsync 传播到备份服务器。

您需要定期转储数据库,并定期将文件复制到某处,并保留 x 时间量的数据,以将其称为备份

答案2

该备份策略似乎不错。可能还有改进的方法,但它会改善您当前的情况。您仍然需要备份,以减轻数据库损坏、攻击等。

使用基本 DNS 进行轮询可能不是最好的主意。有些客户端将始终使用第一个记录,有些则不会进行故障转移。使用更智能的 AWS 等路线 53或者云Flare可以进行健康检查并切断无响应服务器的流量,这样效果会更好。

相关内容