摘要: 出处:黑洞中的奇点 的博客 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. import c++ project to eclipse cdt with exiting makefile

    Step 2: You are now ready to build your project. To build your project, select Project > Build Pr ...

  2. 数据挖掘潜规则zz

    声明:本文指的是做数据挖掘这行,不是数据仓库 我干这行有几年了,见了很多人,干了很多公司,爆一爆这个行业的状况吧……让后来人有所了解,也让猎头挖人挖的有点方向,起码和candidates聊天的时候不至 ...

  3. [GO]redis的连接

    package main import ( "github.com/garyburd/redigo/redis" "fmt" ) var pool *redis ...

  4. IntelliJ IDEA包名在一行

    1.导入项目必须正确 选择左上角File--->NEw---->Module from Existing Sources 2.根据路径找到项目,如果是maven项目需要找到其pom.xml ...

  5. CMake使用技巧集

    1.注意CMake不允许出现相同的目标名称,即使是不同的目录下的CMakeLists.txt 2.将头文件搜索路径插入到其它的前面: include_directories(BEFORE /tmp) ...

  6. 一个GIS系统需具备的功能

    数据的存储(数据结构) 图形显示 功能:拓扑分析 开源的GIS系统:QGIS,SharpMap 各个功能组件

  7. python int函数转换浮点型字符串的坑???

    python中的int函数可以将数字或字符串转换为整型数字类型,具体功能就不提了 最近发现一个问题,对于字符串'1.1'之类的,int转换的时候会报异常,这是为什么,个人感觉直接转换成1不就行了,干嘛 ...

  8. svn cleanup失败解决方法

    一般网上给出的解决方法是使用sqlite清空.svn\wc.db的工作队列表(work_queue) 后来发现都打不开wc.db 百度一下: 保留当前目录源码,删除 .svn(隐藏)文件夹,重新che ...

  9. EBS SOA 修改Web Service参数

    l 需求描述 当把PL/SQL声明Load到ISG,生成WSDL并部署完毕后,需要修改PL/SQL的包头声明部分.例如修改某个过程的参数类型,再重新Load,重新生成WSDL,重新部署.我们会发现PL ...

  10. java分页实例Demo

    前两天测试过的一个分页的demo,在网上看到的,挺好的,就写了下来. 分页也是web里面必须的,有使用的价值. demo文件打包上传了,链接:http://pan.baidu.com/s/1o6sME ...