摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。

3.3.1 Validations

PXC严格模式验证旨在确保不需要的常见群集设置的最佳操作实验功能,不依赖Percona XtraDB Cluster不支持的操作。

警告:如果对 pxc_strict_mode 设置为DISABLED的节点执行不受支持的操作或 PERMISSIVE,
它将不会在复制到的节点上进行验证,即使目标节点具有 pxc_strict_mode 设置为ENFORCING。

本节介绍每个验证的目的和后果。

Storage engine
Percona XtraDB Cluster目前仅支持对使用事务存储引擎(XtraDB)的表进行复制或InnoDB)。
为了确保数据一致性,不应允许对使用非事务性存储引擎的表使用以下语句(MyISAM,MEMORY,CSV等):
• 执行写入表的数据操作语句(例如,INSERT,UPDATE,DELETE等)
• 以下管理语句:CHECK,OPTIMIZE,REPAIR和ANALYZE
• TRUNCATE TABLE and ALTER TABLE

根据所选模式,会发生以下情况:

DISABLED
在启动时,不执行验证。
在运行时,允许所有操作。

PERMISSIVE
在启动时,不会验证。
在运行时,允许所有操作,但在执行不良操作时会记录警告
在不受支持的表上。

ENFORCING or MASTER
在启动时,不执行验证。
在运行时,拒绝对不支持的表执行的任何不希望的操作,并记录错误。

不支持的表可以转换为使用支持的存储引擎。

MyISAM replication
Percona XtraDB Cluster为使用MyISAM存储引擎的表的复制提供实验性支持。
由于MyISAM的非事务性质,它不太可能在Percona XtraDB群集中得到完全支持。
MyISAM复制使用wsrep_replicate_myisam变量控制,该变量在默认情况下设置为OFF。
如果要确保数据一致性,则不应启用MyISAM复制。

根据所选模式,会发生以下情况:

DISABLED
在启动时,不执行验证。
在运行时,可以将 wsrep_replicate_myisam 设置为任何值。

PERMISSIVE
在启动时,如果wsrep_replicate_myisam设置为ON,则将记录警告并继续启动。
在运行时,允许将wsrep_replicate_myisam更改为任何值,但是如果将其设置为ON,
将记录警告。

ENFORCING or MASTER
在启动时,如果wsrep_replicate_myisam设置为ON,则会记录错误,并中止启动。
在运行时,任何尝试将wsrep_replicate_myisam更改为ON的尝试将失败,并记录错误。

注意:wsrep_replicate_myisam变量控制MyISAM表的复制以及此验证只检查是否允许。
MyISAM表的不需要的操作使用存储引擎进行限制验证。

注意: Percona XtraDB Cluster仅支持基于行的二进制日志格式。

Binary log format
Percona XtraDB Cluster仅支持基于行的二进制日志格式。不允许在启动时将binlog_format任何变量除了ROW,因为这会改变全局范围,必须设置为ROW,验证仅在运行时和会话范围内执行。

根据所选模式,会发生以下情况:
DISABLED
在运行时,可以将binlog_format设置为任何值。

PERMISSIVE
在运行时,允许将binlog_format更改为任何值,但如果将其设置为任何其他值比ROW,会记录一个警告。

ENFORCING or MASTER
在运行时,任何尝试将binlog_format更改为除ROW之外的任何尝试都失败,并且错误是记录。

Tables without primary keys
Percona XtraDB群集无法正确地将某些写入操作传播到未定义主键的表。
不需要的操作包括执行写入表(特别是DELETE)的数据操作语句。

根据所选模式会发生以下情况:
DISABLED
在启动时,不执行验证。
在运行时,允许所有操作。

PERMISSIVE
在启动时,不会验证。
在运行时,允许所有操作,但在执行不良操作时会记录警告在没有定义显式主键的表上。

ENFORCING or MASTER
在启动时,不执行验证。
在运行时,对没有显式主键的表执行的任何不希望的操作被拒绝和将记录错误。

Log output
Percona XtraDB群集不支持MySQL数据库中的表作为日志输出的目标。
默认日志条目写入文件。此验证将检查log_output 变量的值。

根据所选模式,会发生以下情况:

DISABLED
在启动时,不执行验证。
在运行时,可以将log_output设置为任何值。

PERMISSIVE
在启动时,如果log_output仅设置为TABLE,则将记录警告并继续启动。
在运行时,允许将log_output更改为任何值,但如果将它仅设置为TABLE,一个警告。

ENFORCING 或 MASTER
在启动时,如果log_output仅设置为TABLE,则会记录错误并中止启动。
在运行时,将log_output更改为TABLE的任何尝试都将失败,并记录错误。

Explicit table locking
Percona XtraDB Cluster只有对显式表锁定操作的实验性支持,以下不可取操作导致显式表锁定,并由此验证覆盖:
• LOCK TABLES
• GET_LOCK() and RELEASE_LOCK()
• FLUSH TABLES <tables> WITH READ LOCK
• Setting the SERIALIZABLE transaction level

根据所选模式,会发生以下情况:
DISABLED or MASTER
在启动时,不执行验证。
在运行时,允许所有操作。

PERMISSIVE
在启动时,不执行验证。
在运行时,允许所有操作,但在执行不良操作时会记录警告。

ENFORCING
在启动时,不执行验证。
在运行时,拒绝任何不需要的操作,并记录错误。

Auto-increment lock mode
用于生成auto-increment值的锁定模式必须交错,以确保每个节点生成唯一的(但非顺序)标识符。

此验证将检查innodb_autoinc_lock_mode变量的值。
默认情况下,设置变量到1(连续锁定模式),但应该设置为2(交错锁定模式)。

根据所选的严格模式,会发生以下情况:

DISABLED
在启动时,不执行验证。

PERMISSIVE
在启动时,如果innodb_autoinc_lock_mode未设置为2,则将记录警告并继续启动。

ENFORCING or MASTER
在启动时,如果innodb_autoinc_lock_mode未设置为2,则会记录错误并中止启动。

注意:此验证不在运行时执行,因为innodb_autoinc_lock_mode变量不能动态设置。

Combining schema and data changes in a single statement
Percona XtraDB群集不支持CREATE TABLE ... AS SELECT(CTAS)语句,因为它们结合模式和数据更改。
根据所选模式,会发生以下情况:

DISABLED
在启动时,不执行验证。
在运行时,允许所有操作。

PERMISSIVE
在启动时,不会验证。
在运行时,允许所有操作,但在执行CTAS操作时将记录警告。

ENFORCING
在启动时,不执行验证。
在运行时,拒绝任何CTAS操作,并记录错误。

3.3.1 Validations的更多相关文章

  1. JSF教程(9)——生命周期之Process Validations Phase

    在这个过程其中JSF的实现者使用processValidators方法处理全部在tree中的组件中注冊的验证器.验证的过程就是通过每一个组件已有的规则对其已经保存的值进行校验,同一时候也对输入的值进行 ...

  2. sencha touch Model validations 自定义验证 二选一输入验证、重复验证、时间验证、比较验证、条件验证(2015-1-14)

    项目初始化时执行以下代码 //重写模型,方便进行自定义验证 Ext.define("Ext.zh.data.Model", { override: "Ext.data.M ...

  3. sencha touch Model validations(模型验证,自定义验证)

    model Ext.define('app.model.Register', { extend: 'Ext.data.Model', requires: ['Ext.data.JsonP'], con ...

  4. 微软企业库验证 Validations

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

  5. Yii2系列教程七:Behaviors And Validations

    这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations. Behavior 首先我们来说说Behavior,在Yii2中Behavi ...

  6. [Vue] Props Validations

    Components can specify requirements for its props, such as the types you’ve already seen. If a requi ...

  7. 菜鸟学Struts2——零配置(Convention )

    又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...

  8. Web测试介绍2一 安全测试

            安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...

  9. Oracle导出excel

    oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...

随机推荐

  1. iOS对HTTPS证书链的验证原理

    今天看到所在的某个开发群问https原理,之前做HTTPS ,下面简单说下原理.希望能帮助你理解. HTTPS从最终的数据解析的角度,与HTTP相同.HTTPS将HTTP协议数据包放到SSL/TSL层 ...

  2. wcf将一个服务同时绑定到http和tcp的写法

    服务器端:<?xml version="1.0" encoding="utf-8" ?><configuration>  <con ...

  3. python参数Sample Code

    import time import datetime import getopt import sys try: opts, args = getopt.getopt(sys.argv[1:], & ...

  4. struts2 action result type类型

    struts2 action result type类型 1.chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息. com.opensymphony. ...

  5. [operator]ubuntu + sublime + anaconda 自动补全、指定python版本

    ubuntu .sublime.anaconda都安装好之后,首先要解决的就是自动补全问题 Perference---->Browes Packages --->新建一个Python的文件 ...

  6. kubernetes多节点的pod挂载同一个cephfs目录

    一.安装cephfs 方法一: 直接进入deploy目录,执行: ceph-deploy --overwrite-conf mds create ceph01:mds-daemon- 上面的ceph0 ...

  7. m2e 插件

    官网 http://www.eclipse.org/m2e/ 在线安装地址 http://download.eclipse.org/technology/m2e/releases 插件简介 Launc ...

  8. Spring配置bean的方法(工厂方法和Factorybean)

    通过工厂方法配置bean 通过调用静态工厂方法创建bean 通过静态工厂方法创建bean是将对象创建的过程封装到静态方法中.当客户端需要对象时,只需要简单地调用静态方法,而不关心创建对象的细节. 要声 ...

  9. .NET基础 (16)事件

    事件1 请解释事件的基本使用方法2 事件和委托有何联系3 如何设计一个带有很多事件的类型4 用代码表示如下情景:猫叫.老鼠逃跑.主人惊醒 事件1 请解释事件的基本使用方法 事件时一种使对象或类能够提供 ...

  10. in操作符

    // Arrays,数组:下标 in array,length也可以 var trees = new Array("redwood", "bay", " ...