`
grzrt
  • 浏览: 188134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MYSQL5.1复制参数binlogformat(转)

 
阅读更多

http://apps.hi.baidu.com/share/detail/31674919


MySQL 5.1 中,在复制方面的改进即便引进了新的复制技巧:基于行的复制。简言之,这种新技巧即便关怀表中发生改变的登记,而非过去的照抄 binlog 形式。从 MySQL 5.1.12 开始,能够用以下三种形式来告终:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混杂形式复制(mixed-based replication, MBR)。相应地,binlog的款式也有三种:STATEMENT,ROW,MIXED。MBR 形式中,SBR 形式是默认的。

在运行时能够动态低改换binlog的款式,除非以下几种情形:

1. 存储过程可能引发器其中

2. 启用了NDB

3. 目前会话试用 RBR 形式,并且已敞开了临时表

万一binlog批准了 MIXED 形式,那么在以下几种情形下会积极将binlog的形式由 SBR 形式改成 RBR 形式。

1. 当DML语句更新一个NDB表时

2. 当函数中包括 UUID() 时

3. 2个及以上包括 AUTO_INCREMENT 字段的表被更新时

4. 行任何 INSERT DELAYED 语句时

5. 用 UDF 时

6. 视图中定然要求利用 RBR 时,例如创立视图是利用了 UUID() 函数

设定主从复制形式的措施极其容易,凡是在过去设定复制搭配的基础上,再加一个参数:

binlog_format="STATEMENT"
#binlog_format="ROW"
#binlog_format="MIXED"

当然了,也能够在运行时动态修正binlog的款式。例如

mysql> SET SESSION binlog_format = 'STATEMENT';
mysql> SET SESSION binlog_format = 'ROW';
mysql> SET SESSION binlog_format = 'MIXED';

mysql> SET GLOBAL binlog_format = 'STATEMENT';
mysql> SET GLOBAL binlog_format = 'ROW';
mysql> SET GLOBAL binlog_format = 'MIXED';

目前来比拟以下 SBR 和 RBR 2中形式各自的优缺点
SBR 的优点:

1. 历史悠久,技巧成熟

2. binlog文件较小

3. binlog中包括了所有数据库改动消息,能够据此来核实数据库的平安等情形

4. binlog能够用于实时的还原,而不但仅用于复制

5. 主从版本能够不一样,从服务器版本能够比主服务器版本高

SBR 的缺点:

1. 不是所有的UPDATE语句都能被复制,尤其是包括不确定垄断的时候。

2. 调用具有不确定因素的 UDF 时复制也可能出问题

3. 利用以下函数的语句也无法被复制:
* LOAD_FILE()
* UUID()
* USER()
* FOUND_ROWS()
* SYSDATE() (除非启用时启用了 --sysdate-is-now 选项)

4. INSERT ... SELECT 会发生比 RBR 更多的行级锁

5. 复制必需举行全表扫描(WHERE 语句中没利于用到索引)的 UPDATE 时,必需比 RBR 哀求更多的行级锁

6. 对于有 AUTO_INCREMENT 字段的 InnoDB表而言,INSERT 语句会阻塞其他 INSERT 语句

7. 对于一些混杂的语句,在从服务器上的耗资源情形会更严重,而 RBR 形式下,只会对那个发生改变的登记发生波及

8. 存储函数(不是存储过程)在被调用的同时也会厉行顺次 NOW() 函数,这个能够说是坏事也可能是好事

9. 确定了的 UDF 也必需在从服务器上厉行

10. 数据表定然几乎和主服务器坚持统一才行,否则可能会导致复制出错

11. 厉行混杂语句万一出错的话,会花费更多资源

RBR 的优点:

1. 任何情形都能够被复制,这对复制来说是最平安可靠的

2. 和其他大多数数据库系统的复制技巧一样

3. 多数情形下,从服务器上的表万一有主键的话,复制就会快了许多

4. 复制以下几种语句时的行锁更少:
* INSERT ... SELECT
* 包括 AUTO_INCREMENT 字段的 INSERT
* 未曾附带条件可能并未曾修正许多登记的 UPDATE 或 DELETE 语句

5. 厉行 INSERT,UPDATE,DELETE 语句时锁更少

6. 从服务器上批准多线程来厉行复制成为可能

RBR 的缺点:

1. binlog 大了许多

2. 混杂的回滚时 binlog 中会包括许多的数据

3. 主服务器上厉行 UPDATE 语句时,所有发生改变的登记都会写到 binlog 中,而 SBR 只会写顺次,这会导致频繁发生


binlog 的并发写问题

4. UDF 发生的大 BLOB 值会导致复制变慢

5. 无法从 binlog 中看到都复制了写什么语句

6. 当在非事务表上厉行一段堆积的SQL语句时,良好批准 SBR 形式,否则很轻率导致主从服务器的数据不统一情形发生

另外,针对系统库 mysql 里面的表发生改变时的处理法定如下:

1. 万一是批准 INSERT,UPDATE,DELETE 直接垄断表的情形,则日志款式依据 binlog_format 的设定而登记

2. 万一是批准 GRANT,REVOKE,SET PASSWORD 等管教语句来做的话,那么无论如何都批准 SBR 形式登记

注:批准 RBR 形式后,能处理许多本来揭示的主键重复问题例如Pro Publica,SunlightFoundation和维基解密,开始添补鞭策媒体滑坡留下的空白。

分享到:
评论

相关推荐

    mysql5.1中文手册.zip

    以上内容仅是MySQL 5.1中文手册的部分概览,详细内容可在提供的"www.java1234.com]mysql5.1中文手册.chm"文件中查阅,涵盖了更深入的函数使用、性能调优、复制技术等多个方面。通过学习这本手册,用户可以全面掌握...

    MySQL 5.1 版数据库

    - **主从复制**:MySQL 5.1引入了半同步复制,确保主服务器上的事务在被复制到从服务器之前已经提交,提高了数据的一致性。 - **多线程复制**:从服务器可以并行处理多个二进制日志事件,加速了复制过程。 4. **...

    mysql5.1详解简体中文版

    MySQL 5.1是MySQL数据库管理系统的一个重要版本,它在5.0的基础上进行了多项改进和增强,为开发者提供了更高效...这个“mysql5.1详解简体中文版”的教程文件,将帮助读者深入理解这些概念,提升数据库管理和开发技能。

    MySQL_5.1_zh.rar_MYSQL_MySQL_5.1_zh_mysql 中文

    3. **复制功能优化**:MySQL 5.1 提供了半同步复制,确保主库上的事务在被复制到从库之前已提交,提高了数据安全性。 4. **触发器和存储过程**:MySQL 5.1 支持创建触发器和存储过程,使得数据库可以执行更复杂的...

    Mysql 5.1 中文手册

    MySQL 5.1 中文手册是一份详尽的数据库管理系统指南,主要针对MySQL 5.1版本。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易于管理的特点,在Web开发和其他数据存储应用中占有重要...

    mysql5.1参考手册.rar

    MySQL 5.1在复制功能上也有所增强,提供了一种半同步复制模式,确保主服务器上的事务在被复制到从服务器之前已经完成,从而降低了数据丢失的风险。此外,还支持多线程复制,使得从服务器可以并行处理多个来自主...

    MYSQL5.1+简体中文参考文档

    这份“MYSQL5.1+简体中文参考文档”是开发者和数据库管理员的重要参考资料,它包含了关于 MySQL 5.1 的详细信息,包括 SQL 语法、数据库配置、管理操作以及性能调优等内容。 一、SQL 语法 MySQL 5.1 支持标准的 SQL...

    MySQL5.1 connector odbc和MySQL5.1 connector java 5.1.16 bin.jar

    该文件里含有MySQL5.1 connector.exe和MySQL5.1 connector java 5.1.16 bin.jar。其中,MySQL5.1 connector.exe是MySQL与odbc的连接工具,MySQL5.1 connector java 5.1.16 bin.jar是MySQL进行jdbc连接时所需要的jar...

    mysql5.1CHM.zip

    这篇文档将基于提供的"mysql5.1CHM.zip"压缩包,深入探讨MySQL 5.1的主要特性和开发相关的知识。 1. **SQL语言与查询优化**: MySQL 5.1支持标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE等操作。其查询优化...

    mysql5.1 source code

    此外,MySQL 5.1还加强了复制功能,支持异步、半同步和多线程从库,这对于高可用性和数据冗余至关重要。通过分析源代码,我们可以理解主从复制的工作流程,包括 binlog(二进制日志)的生成、传输以及在从服务器上的...

    mysql5.1中文教程

    在复制功能上,MySQL 5.1增加了半同步复制,确保在主服务器上的事务提交后,至少有一个从服务器接收到这些事务,提高了数据的一致性。此外,支持多线程复制,可以并发处理多个从服务器的复制请求,提高复制效率。 ...

    MySQL 5.1参考手册.zip

    4. **复制功能**:MySQL 5.1的复制功能允许数据从一个服务器(主服务器)实时复制到一个或多个其他服务器(从服务器),这对于实现数据备份、负载均衡和故障恢复非常有用。 5. **查询优化器**:MySQL 5.1的查询优化...

    Mysql5.1参考手册

    这是关于5.1版至5.1.2-alpha版MySQL数据库系统的参考手册。该手册不适用于旧版本MySQL软件,这是因为在MySQL 5.1和以前的版本存在很多功能性差异和其他差异。如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考...

    mysql5.1中文文档

    “性能调优”章节是进阶内容,讲述了如何通过优化查询、配置参数、使用分区和复制等手段来提升MySQL的性能。此外,还有关于备份和恢复策略的介绍,这对于数据安全至关重要。 “安全性”部分讲解了如何设置用户权限...

    mysql 5.1 官方中文文档

    MySQL 5.1支持主从复制,用于构建高可用和负载均衡的环境。集群功能则允许多个服务器共享同一份数据,提高系统的容错性和扩展性。 八、日志与监控 MySQL的日志系统包括错误日志、查询日志、慢查询日志等,有助于...

    MySQL 5.1参考手册.chm

    MySQL 5.1的复制功能允许数据在多个服务器之间同步,形成主从结构或主主结构,从而提高系统的稳定性和容错性。 安全性和权限管理也是手册中的重要内容。用户可以学习如何设置账户、权限和访问控制,确保数据库系统...

    mysql5.1官方中文版

    对于“可视化MySQL5.1中文版”标签,这意味着该版本提供了中文界面和文档,使得中国用户可以更方便地使用和理解MySQL的功能。可视化工具如phpMyAdmin、MySQL Workbench等可以帮助用户直观地管理数据库,创建、编辑和...

    MySQL5.1中文参考手册完全版.chm

    MySQL5.1中文参考手册完全版是一份针对MySQL 5.1版本的官方技术文档,是MySQL开发人员和管理员的重要参考资料。这份文档详尽地涵盖了MySQL数据库系统的各个方面,包括安装、配置、使用、管理和优化等核心主题。对于...

    MySQL5.1.chm.zip

    3. **复制改进**:MySQL 5.1改进了主从复制的性能和可靠性,支持半同步复制,确保数据的一致性。同时,通过binlog格式的优化,提高了日志传输效率。 4. **触发器和存储过程**:5.1版本增强了SQL层的功能,支持创建...

Global site tag (gtag.js) - Google Analytics