网站应如何处理数据库崩溃

Kev*_*n S 3 php database crash web

我目前在php中创建了一个具有数据库后端(可以是MySQL或SQL Server)的网站,最近我意识到如果我的数据库随时崩溃,我的网站将无法正常运行并可能引起一些麻烦.

那么,如果我的数据库(或任何关键的外部组件)出现故障,在网站上显示的内容是什么?我的特定网站在很大程度上依赖于它的数据库,没有它就几乎没用.

我被告知的一个选项是通过电子邮件发送网站管理员并显示错误500页面,该页面显示服务器出现问题,并且基本上使网站无法使用,直到问题得到解决.我还能做些什么来解决这个问题吗?有没有办法设计一个网站,以便数据库(任何关键组件)崩溃不是一个问题?

我正在寻找一般的经验法则以及人们过去如何解决这个问题的具体例子.此外,这些示例不仅仅是我的网站示例.

Pas*_*TIN 5

如果你只有一个数据库服务器,并且网站在没有数据库的情况下无法工作,那就没有魔力:你必须显示某种不错的错误页面,通知用户存在技术问题并且网站将返回不久.

一般来说 :

  • 这种问题的可能性非常低
  • 如果您的网站是正常网站,人们会偶尔接受一个问题,特别是如果您进行沟通.


如果你能负担得起(并具备设置的技术知识),你可以使用两个数据库服务器,它们之间有复制(MySQL支持这个):你使用一个主服务器和一个被认为是备份的从服务器.

然后,如果主机掉落,您的应用程序将使用从机.


当然,这将大大降低数据库相关问题的风险(同时两个服务器崩溃的可能性很小),但是你仍然会遇到所有其他组件的问题 - 比如你的网络服务器:如果你只有一,你可能想考虑使用两个,第二个作为后备.

在那之后,如果你还有钱(并且认为你的网站需要更好的正常运行时间),那么你需要考虑数据中心出现问题的情况 - 在两个不同的位置设置服务器......