PXC严格模式¶
PXC严格模式旨在避免使用Percona XtraDB集群中的技术预览功能和不支持的功能。雷竞技下载官网它在启动时和运行时执行许多验证。
根据您选择的实际模式,在遇到验证失败时,服务器将抛出一个错误(停止启动或拒绝操作),或者记录一个警告并继续正常运行。有以下几种模式:
禁用:不执行严格模式验证,正常运行。宽容的:如果验证失败,记录警告并继续正常运行。执行:如果在启动过程中验证失败,则停止服务器并抛出错误。如果验证在运行时失败,则拒绝该操作并抛出错误。主:同执行除了的验证显式表锁定未执行。此模式可用于写操作被隔离到单个节点的集群。
缺省情况下,PXC Strict Mode为执行,除非节点作为独立服务器或节点正在引导,否则PXC严格模式默认为禁用.
建议将“PXC Strict Mode”设置为执行因为在这种情况下,当Percona XtraDB集群遇到技术预览雷竞技下载官网功能或不支持的操作时,服务器将拒绝它。这将迫使您重新评估Percona XtraDB集群配置,而不会影响数据的一致性。雷竞技下载官网
如果你计划将PXC严格模式设置为任何其他执行,您应该了解这可能对数据完整性产生的限制和影响。有关更多信息,请参见验证.
要设置模式,请使用pxc_strict_mode变量——pxc-strict-mode选择在mysqld启动。
请注意
最好使用必要的模式(默认模式)启动服务器执行强烈推荐)。但是,您可以在运行时动态更改它。例如,将PXC严格模式设置为宽容的,执行以下命令:
mysql >集全球pxc_strict_mode=宽容的;
请注意
为了进一步确保数据一致性,重要的是让集群中的所有节点运行相同的配置,包括的值pxc_strict_mode变量。
验证¶
PXC严格模式验证旨在确保常见集群设置的最佳操作,不需要技术预览功能,也不依赖于Percona XtraDB集群不支持的操作。雷竞技下载官网
警告
节点执行不支持的操作pxc_strict_mode设置为禁用或宽容的,它将不会在复制到的节点上验证,即使目标节点已经验证了pxc_strict_mode设置为执行.
本节描述每个验证的目的和结果。
组复制¶
组复制MySQL的一个特点是什么提供分布式状态机复制和服务器之间的强协调.它被实现为一个插件,如果激活,可能会与PXC冲突。无法激活组复制以与PXC一起运行。但是,您可以从使用组复制的环境迁移到PXC。
为了使严格模式正常工作,请确保组复制插件为不活跃的.事实上,如果pxc_strict_mode设置为强制或MASTER,服务器将停止并报错:
错误消息pxc_strict_mode设置为执行或主
错误消息
组复制不能在严格模式下与PXC一起使用。
如果pxc_strict_mode设置为禁用您可以自行承担使用组复制的风险。设置pxc_strict_mode来宽容的将导致警告。
警告讯息pxc_strict_mode设置为宽容的
警告消息
对PXC使用组复制只支持用于迁移。请确保在所有数据迁移到PXC后关闭组复制。
存储引擎¶
雷竞技下载官网Percona XtraDB Cluster目前只支持对使用事务性存储引擎(XtraDB或InnoDB)的表进行复制。为了确保数据一致性,对于使用非事务性存储引擎(MyISAM、MEMORY、CSV等)的表,不应该允许使用以下语句:
执行写入表的数据操作语句(例如,
插入,更新,删除等)。下列行政声明:
检查,优化,修复,分析截断表而且ALTER TABLE
根据所选择的模式,会发生以下情况:
禁用
在启动时,不执行任何验证。
在运行时,允许所有操作。
宽容的
在启动时,不执行任何验证。
在运行时,允许所有操作,但是当在不受支持的表上执行不希望的操作时,将记录警告。
执行或主
在启动时,不执行任何验证。
在运行时,在不受支持的表上执行的任何不希望的操作都将被拒绝,并记录一个错误。
请注意
不受支持的表可以转换为使用受支持的存储引擎。
MyISAM复制¶
雷竞技下载官网Percona XtraDB Cluster支持复制使用MyISAM存储引擎的表。不建议在集群中使用MyISAM存储引擎,如果使用该存储引擎,风险由您自己承担。由于MyISAM的非事务性质,Percona XtraDB集群不完全支持存储引擎。雷竞技下载官网
MyISAM复制使用wsrep_replicate_myisam变量,设置为从默认情况下。由于MyISAM复制的不可靠性,如果希望确保数据的一致性,则不应启用MyISAM复制。
根据所选择的模式,会发生以下情况:
禁用
在启动时,不执行任何验证。
在运行时,您可以设置wsrep_replicate_myisam到任何值。
宽容的
在启动时,如果wsrep_replicate_myisam设置为在,将记录警告并继续启动。
在运行时,允许更改它wsrep_replicate_myisam到任何值,但如果你将它设置为在时,将记录警告信息。
执行或主
在启动时,如果wsrep_replicate_myisam设置为在时,将记录一个错误并中止启动。
在运行时,任何更改的尝试wsrep_replicate_myisam来在失败并记录一个错误。
请注意
的wsrep_replicate_myisam变量控制复制对于MyISAM表,这个验证只检查它是否被允许。使用存储引擎验证限制对MyISAM表的不希望的操作。
二进制日志格式¶
雷竞技下载官网Percona XtraDB Cluster只支持默认的基于行的二进制日志格式。在8.0中,设置binlog_format变量,但不是任何东西行的值是不允许的pxc_strict_mode变量。
没有主键的表¶
雷竞技下载官网Percona XtraDB集群无法正确地将某些写操作传播到没有定义主键的表。不期望的操作包括执行写入表的数据操作语句(特别是删除)。
根据所选择的模式,会发生以下情况:
禁用
在启动时,不执行任何验证。
在运行时,允许所有操作。
宽容的
在启动时,不执行任何验证。
在运行时,允许所有操作,但是当在没有定义显式主键的表上执行不希望的操作时,将记录警告。
执行或主
在启动时,不执行任何验证。
在运行时,在没有显式主键的表上执行的任何不希望的操作都将被拒绝,并记录一个错误。
日志输出¶
雷竞技下载官网Percona XtraDB Cluster不支持将MySQL数据库中的表作为日志输出的目标。默认情况下,日志条目被写入文件。的值进行验证log_output变量。
根据所选择的模式,会发生以下情况:
禁用
在启动时,不执行任何验证。
在运行时,您可以设置log_output到任何值。
宽容的
在启动时,如果log_output仅设置为表格,将记录警告并继续启动。
在运行时,允许更改它log_output为任何值,但如果只将其设置为表格时,将记录警告信息。
执行或主
在启动时,如果log_output仅设置为表格时,将记录一个错误并中止启动。
在运行时,任何更改的尝试log_output仅仅是为了表格失败并记录一个错误。
显式表锁定¶
雷竞技下载官网Percona XtraDB Cluster只提供了对显式表锁定操作的技术预览级别的支持,以下不受欢迎的操作将导致显式表锁定,并由此验证覆盖:
锁表GET_LOCK ()而且RELEASE_LOCK ()带读锁刷新表<表>设置
可序列化的事务级别
根据所选择的模式,会发生以下情况:
禁用或主
在启动时,不执行任何验证。
在运行时,允许所有操作。
宽容的
在启动时,不执行任何验证。
在运行时,允许所有操作,但当执行了不希望的操作时,将记录警告。
执行
在启动时,不执行任何验证。
在运行时,任何不希望的操作都将被拒绝,并记录一个错误。
自动增量锁定模式¶
生成自动递增值的锁定模式必须为交叉确保每个节点生成一个唯一的(但非顺序的)标识符。
的值进行验证innodb_autoinc_lock_mode变量。默认情况下,该变量设置为1(连续锁定模式),但它应该设置为2(交叉锁模式)。
根据所选择的严格模式,会发生以下情况:
禁用
在启动时,不执行任何验证。
宽容的
在启动时,如果innodb_autoinc_lock_mode未设置为2,将记录警告并继续启动。
执行或主
在启动时,如果innodb_autoinc_lock_mode未设置为2时,将记录一个错误并中止启动。
请注意
此验证不在运行时期间执行,因为innodb_autoinc_lock_mode变量不能动态设置。
将模式和数据更改组合在一条语句中¶
将严格模式设置为执行例如雷竞技下载官网,Percona XtraDB Cluster不支持语句,因为它们结合了模式和数据更改。注意,SELECT子句中的表应该出现在所有复制节点上。
将严格模式设置为宽容的或禁用, CREATE TABLE…AS SELECT (CTAS)语句使用该方法进行复制,以确保一致性。在Pe雷竞技下载官网rcona XtraDB Cluster 5.7中,当严格模式设置为时,CREATE TABLE…AS SELECT (CTAS)语句使用DML写集复制宽容的或禁用.
重要的
MyISAM表创建和加载即使wsrep_replicate_myisam等于1。雷竞技下载官网Percona XtraDB Cluster不建议使用MyISAM存储引擎。对MyISAM的支持可能会在未来的版本中删除。
另请参阅
MySQL错误系统:XID不一致的主从与CTAS https://bugs.mysql.com/bug.php?id=93948
根据所选择的严格模式,会发生以下情况:
| 模式 | 行为 |
|---|---|
| 禁用 | 在启动时,不执行任何验证。在运行时,允许所有操作。 |
| 宽容的 | 在启动时,不执行任何验证。在运行时,允许所有操作,但在执行CREATE TABLE…AS SELECT (CTAS)操作时记录警告。 |
| 执行 | 在启动时,不执行任何验证。在运行时,任何CTAS操作都将被拒绝,并记录一个错误。 |
重要的
尽管CREATE TABLE…AS SELECT (CTAS)操作对于临时表是允许的严格的模式下,临时表不应作为源在CREATE TABLE…AS SELECT (CTAS)操作中的表,因为并非所有节点上都存在临时表。
如果节点1有一个临时表和一个同名的非临时表,CREATE table节点1是否使用临时表和创建表…AS SELECT (CTAS)节点2将使用非临时表,导致数据级别不一致。
丢弃并导入表空间¶
丢弃表空间而且导入表空间不使用《印度时报》复制。如果只在一个节点上执行,则可能导致数据不一致。
根据所选择的严格模式,会发生以下情况:
禁用
在启动时,不执行任何验证。
在运行时,允许所有操作。
宽容的
在启动时,不执行任何验证。
在运行时,允许所有操作,但在丢弃或导入表空间时将记录警告。
执行
在启动时,不执行任何验证。
在运行时,拒绝丢弃或导入表空间,并记录错误。
主要版本检查¶
此验证检查协议版本是否与服务器主版本相同。这种验证可以防止集群对已经升级的节点进行写操作。
预期的输出
错误1105(HY000):雷竞技下载官网-XtraDB-集群禁止使用的多个主要版本而接受写工作负载与pxc_strict_mode=执行或主