1

我有一个正在开发的 webapp。我需要计划如果主机出现故障会发生什么。我将丢失一些最近的会话状态(我可以忍受),其他所有内容都应该永久存储在数据库中。

如果我在中断后再次启动,我是否可以期望一个好的主机在几分钟或几秒钟内重建数据库,或者我应该在后台进程中构建以在其他地方持续镜像数据库?

什么是正常/明智的?

显然,一个好的主机会有 RAID 和其他冗余,所以完全丢失的可能性应该很低,如果他们有定期备份,我应该只丢失最近的东西,但这大概是在设计时考虑到几乎静态的 web 内容,并且我的网站是事务性的,新数据不断提交(客户期望我永远不会丢失它)。

有什么建议/建议吗?

是否有现成的框架可以做到这一点?(我主要在 Java 中工作。)我应该只是计划保存数据,还是应该计划准备启动一个替代的可用主机实现,以防主机没有在合适的时间范围内恢复?

4

1 回答 1

1

您需要一个复制策略,这当然取决于您的数据库引擎。它通常通过配置来完成。 http://en.wikipedia.org/wiki/Replication_%28computer_science%29

我有使用 Informix 的经验,您可以设置数据复制以使备用系统可用或完全备份数据,并重播逻辑日志(基本上包含所有 SQL 语句),这需要更多时间从崩溃中恢复。

在磁盘崩溃的情况下,拥有冗余存储也是一个好主意。这个话题可能在 serverfault.com 上讨论得更好

于 2010-03-13T09:00:01.580 回答