我有一个开发中的webapp。我需要计划如果主机出现故障该怎么办。
我将失去一些最近的会话状态(我可以忍受),其他所有内容都应永久存储在数据库中。
如果我在中断后再次启动,我是否可以期望一个好的主机将数据库重建到我要备份的位置的几分钟或几秒钟之内,还是应该建立一个后台进程来连续镜像其他地方的数据库?
什么是正常/明智的?
显然,好的主机将具有RAID和其他冗余,因此总丢失的可能性应该很小,并且如果它们具有定期备份,那么我应该只丢失最近的东西,但这大概是在设计时考虑了几乎静态的Web内容。 ,并且我的网站具有交易性,并且不断提交新数据(客户期望我不会丢失它)。
有什么建议/建议吗?
是否有现成的框架可以做到这一点? (我主要在使用Java。)
我应该只是打算保存数据,还是应该准备好启动另一种可用的主机实现,以防主机没有在合适的时间内恢复正常?
最佳答案
您需要一个复制策略,该策略当然取决于您的数据库引擎。
通常是通过配置完成的。
http://en.wikipedia.org/wiki/Replication_%28computer_science%29
我在Informix上有经验,您可以设置数据复制以使备用系统可用或对数据进行完全备份,并重放逻辑日志(基本上包含所有SQL语句),这些逻辑日志需要更多时间从崩溃中恢复。
对于磁盘崩溃的情况,拥有冗余存储也是一个好主意。可以在serverfault.com上更好地讨论此主题
关于java - 我是否应该将Webapp的数据连续备份到另一台主机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2437758/