通常不支持多站点网络中不同站点的不同数据库版本,而且技术上很复杂。在典型的多站点网络体系结构中,所有站点共享相同的数据库和相同版本的数据库管理系统(DBMS)。这是对该主题的广泛探索,该主题解决了与多站点设置中使用不同数据库版本有关的概念,含义和替代方案。
###了解多站点网络数据库结构
多站点网络(例如WordPress多站点)使用单个数据库实例存储多个站点的数据。该数据库保留适用于整个网络的核心网络表,并使用唯一的前缀将每个站点的数据分为不同的表。网站没有自己的单独数据库;相反,他们共享相同的数据库服务器和实例,但具有与单个站点相对应的不同表或表集。
这意味着基础数据库系统(MySQL,MariaDB或其他受支持的RDBMS)版本必须在整个多站点网络中均匀,因为所有站点都连接到同一数据库实例。 DBMS版本控制所有存储数据的数据库的功能,性能和兼容性。某些站点不可能使用较新或不同的数据库版本,而其他网站则使用旧版本,如果它们驻留在同一数据库服务器上。
###技术约束
- 单个数据库实例:多站点网络使用单个数据库实例。这意味着在所有站点上只有一个数据库服务器的运行版本。
- 数据库引擎兼容性:数据库版本控制可用的引擎功能,SQL方言和性能优化。在一个模式中混合不同版本是不可行的。
- 表前缀分离:尽管每个站点的数据都由表前缀分开,但表都位于同一全局数据库中。这意味着所有表都必须与同一版本的数据库引擎兼容。
- 统一DBMS版本:整个多站点网络均依赖整个统一的DBMS版本。任何更新或降级都会同时影响所有站点。
###如果需要不同的数据库版本,会发生什么?
如果不同的站点需要不同的DBMS版本,则在没有弯曲体系结构原理的情况下,典型的多站点设置将无法实现。该要求可能来自以下要求:
- 与某些插件或需要较新或较旧数据库功能的兼容性问题。
- 性能调整或优化要求通过不同版本更好地满足。
- 数据库特定的错误或限制。
由于多站点体系结构依赖于一个数据库实例,因此为不同站点容纳不同数据库版本的唯一真实方法是将它们拆分为单独的网络或独立的独立安装,每个安装都有自己的数据库服务器实例运行所需的版本。
###每个站点不同数据库版本的替代品
####每个站点使用独立WordPress安装单独的数据库服务器
您可以独立设置不同的站点,而不是多站点,每个站点都有自己的数据库服务器,该网站为该站点运行所需的DBMS版本。这提供了充分的灵活性,但牺牲了:
- 统一管理
- 集中用户和插件控制
- 易于跨站点的备份
- 共享主题和插件
这种方法最适合当网站具有非常不同的技术和安全要求时。
####同一服务器上的多个数据库
有时,多个数据库可以驻留在具有同一版本的同一数据库服务器实例上。这不能满足每个站点不同版本的需求,而是可以在数据存储方面进行分开。
####使用多站点,但具有统一的DBMS版本
如果网站可以在单个数据库版本下运行,则多站点仍然是一个强大的选择。在网络中,站点具有单独的表,但是它们都共享相同的数据库服务器版本和核心设置。
WordPress多站点细节
WordPress多站点网络创建共享网络级别的表(例如WP_USER,WP_SITE,WP_BLOGS),然后为每个站点提供一组具有唯一站点前缀的网站特定网站表(例如,wp_2_post for site 2)。所有表都位于一个数据库中,因此单个数据库版本为整个网络提供服务。 WordPress Core,插件和主题假设一个一致的数据库环境。
###尝试使用不同版本的潜在风险
尝试或模拟同一多站点网络中网站的数据库的不同版本可能会导致:
- 数据损坏如果某些SQL查询依赖于某些版本中无法使用的功能。
- 插件不兼容或DBMS引起的故障具有不匹配。
- 备份和迁移的复杂性。
- 多站点环境的总体不稳定。
###安全和绩效注意事项
统一的数据库版本使网络范围的安全补丁和性能改进受益。尝试维护发散数据库版本将需要多个数据库服务器,从而增加复杂性和成本。
### 概括
- 多站点网络共享一个数据库和一个DBMS版本。
- 多站点内的不同站点不能使用不同的数据库版本。
- 每个站点单独的数据库版本需要具有独立数据库的单独站点或网络。
- 多站点从数据库版本均匀性中受益,以实现稳定性,安全性和管理。
- 对于不同的数据库要求,具有单独的DBMS实例的独立安装是最佳解决方案。