3.3.1 Validations
摘要: 出处:黑洞中的奇点 的博客 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的更多相关文章
- JSF教程(9)——生命周期之Process Validations Phase
在这个过程其中JSF的实现者使用processValidators方法处理全部在tree中的组件中注冊的验证器.验证的过程就是通过每一个组件已有的规则对其已经保存的值进行校验,同一时候也对输入的值进行 ...
- sencha touch Model validations 自定义验证 二选一输入验证、重复验证、时间验证、比较验证、条件验证(2015-1-14)
项目初始化时执行以下代码 //重写模型,方便进行自定义验证 Ext.define("Ext.zh.data.Model", { override: "Ext.data.M ...
- sencha touch Model validations(模型验证,自定义验证)
model Ext.define('app.model.Register', { extend: 'Ext.data.Model', requires: ['Ext.data.JsonP'], con ...
- 微软企业库验证 Validations
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- Yii2系列教程七:Behaviors And Validations
这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations. Behavior 首先我们来说说Behavior,在Yii2中Behavi ...
- [Vue] Props Validations
Components can specify requirements for its props, such as the types you’ve already seen. If a requi ...
- 菜鸟学Struts2——零配置(Convention )
又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...
- Web测试介绍2一 安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...
- Oracle导出excel
oracle导出excel(非csv)的方法有两种,1.使用sqlplus spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...
随机推荐
- OGNL特殊符号的使用
---------------------siwuxie095 # 的使用 1.使用 # 获取 context 中的数据 「值栈分为 root 和 context 两部分」 2.如:向 Request ...
- 分布式理论系列(一)从 ACID 到 CAP 到 BASE
分布式理论系列(一)从 ACID 到 CAP 到 BASE 一.ACID 1.1 事务的四个特征: (1) Atomic(原子性) 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程 ...
- Java Thread系列(五)synchronized
Java Thread系列(五)synchronized synchronized锁重入 关键字 synchronized 拥有锁重入的功能,也就是在使用 synchronized 时,当线程等到一个 ...
- IP转换成域名
DNS就是域名解析系统,它可以将IP转换成域名,也可以将域名转换成IP 1. 安装DNS服务 开始—〉设置—〉控制面板—〉添加/删除程序—〉添加/删除Windows组件—〉“网络服务”—〉选择“域名服 ...
- 基于etcd插件的CoreDNS动态域名添加
前提条件:已经有一个可用的etcd环境. 一.CoreDNS简介 CoreDNS是一个DNS服务器,和Caddy Server具有相同的模型:它链接插件.CoreDNS是云本土计算基金会启动阶段项目. ...
- OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口
OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口 创建一个NURBS对象: GLUnurbs* gluNewNurbsRenderer (void); //创建一个NURBS对象 ...
- Oracle EBS 初始化用户密码
---修改密码,并且将限制用户下次登录的时候(第一次登录),强制要换一个新的口令: ---此过程可以完全模拟我们在标准用户的Form里面初始化用户的密码的动作! ---最后要说明的是,这个处理过程 ...
- JavaScript中的垃圾回收和内存泄漏
摘要: JS内存管理. 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 程序的运行需要内存.只要程序提出要求,操作系统或者运行时就必须供给内存.所谓的内存泄漏简单来说是不再用到的 ...
- Linq使用中的ToList注意事项
在使用Linq时,如果查询逻辑太复杂,可以拆分为多个Linq查询,下一个Linq在上一个Linq查询的结果上继续操作,这样逻辑清晰,又不会出错.但在使用ToList的时候需要注意,最常见碰到的错误是: ...
- spark on yarn模式下配置spark-sql访问hive元数据
spark on yarn模式下配置spark-sql访问hive元数据 目的:在spark on yarn模式下,执行spark-sql访问hive的元数据.并对比一下spark-sql 和hive ...