我们在 CentOS 5.5 上运行 Mysql。并使用数据库分片方法。由于它是一个 ERP 应用程序,每个新应用程序/公司大约有 300 个表。目前,我们的 mysql 服务器中有大约 600 个数据库。(250 GB,24 GB Ram)但服务器经常崩溃。1. mysql 和它可以可靠支持的数据库数量是否存在已知限制。我浏览了其他帖子和博客,但找不到任何关于数据库数量与 mysql 服务器崩溃/可用性的明确分析。
另一方面,我也想听听任何为像 ERP 这样复杂的应用程序做过数据库管理的人的建议。2. 这是一个可靠的模型吗?你会如何改变它以使其更可靠?
答案1
首先,我不确定您所说的“经常”是什么意思。但我认为数据库服务器不应该崩溃。您真的应该尝试找出这个问题的根源。是整个服务器崩溃还是只有 MySQL 进程崩溃?崩溃日志?MyISAM 还是 Innodb?
当然,有多种方式会导致 MySQL 失败。最明显、最有可能遇到的就是将 MySQL 配置为使用超过可用内存(它将耗尽内存并随机崩溃)。
但要回答你的问题:
存在一些已知的限制,其中大部分来自操作系统。请记住,每个数据库都存储在单独的文件中,这可能会导致您耗尽文件句柄等资源。根据您的配置,600 个数据库可能会开始突破这些限制,这可能会导致负载下令人讨厌的崩溃。
我不会说大多数 ERP 安装非常复杂,也不会说您处理的数据量非常大。我的主要建议是确保您的硬件/软件安装可靠。除非您遇到严重的负载问题,否则分片/主从和类似设置可能会降低设置的可靠性,因为会增加复杂性。