我想设置一个分期服务器,为我的网站做最后的测试。暂存站点的数据库正在复制生产主数据库mysql,以便反映真实的环境。
如果部署只包含代码更改,那么很容易将其部署到暂存阶段,然后部署到生产中,如果足够稳定的话。
但是,如果部署包含数据库更改,那么如何在不影响主数据库的情况下将其部署到暂存状态,但仍然保持其与主db的实时同步?
编辑:
如果做不到的话。如何使数据写入到暂存服务器“不丢失”?如果一些用户使用beta站点,我不希望他们的数据丢失时,分期最终变得稳定。
我想知道facebook或google是如何在不丢失测试人员数据的情况下推出他们的新功能的?
发布于 2012-05-11 14:40:10
你不能这么做。
我的建议是,不要将生产复制到暂存,而是偶尔使用一个生产备份文件重新构建暂存数据库。然后您正在处理生产数据(尽管几个小时或几天前),但是您在暂存时所做的更改不会影响生产。
编辑:通过编辑,这是一个非常不同的问题。
如果您有测试版测试人员使用您的暂存服务器,并期望他们的数据进入生产,那么它不是一个暂存服务器:它是一个生产服务器。我认为这是一个基本的概念转变,这使得这个问题难以回答;我们大多数人(我认为)认为,一个分期服务器是一个蚀刻草图,可以毫不畏惧地倾倒和重建。如果您计划允许某些用户在投入生产时测试您的更改并保留他们的数据,那么您需要一个与分阶段/生产不同的框架。
EDIT2:下面是一些处理此类设置的堆栈溢出问题:
https://serverfault.com/questions/388263
复制相似问题