站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 数 据 库 > MySQL >  正文

MySQL5.1体验--MySQL复制
  2007年10月21日22:58:57  评论(0条) 字体:[ ]
相关热点:

  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的格式,除了以下几种情况:

  


      
  • 存储过程或者触发器中间


  •   
  • 启用了NDB


  •   
  • 当前会话试用 RBR 模式,并且已打开了临时表


  •   


  如果binlog采用了 MIXED 模式,那么在以下几种情况下会自动将binlog的模式由 SBR 模式改成 RBR 模式。

  


      
  • 当DML语句更新一个NDB表时


  •   
  • 当函数中包含 UUID() 时


  •   
  • 2个及以上包含 AUTO_INCREMENT 字段的表被更新时


  •   
  • 行任何 INSERT DELAYED 语句时


  •   
  • 用 UDF 时


  •   
  • 视图中必须要求使用 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 的优点:

  


      
  • 历史悠久,技术成熟


  •   
  • binlog文件较小


  •   
  • binlog中包含了所有数据库更改信息,可以据此来审核数据库的安全等情况


  •   
  • binlog可以用于实时的还原,而不仅仅用于复制


  •   
  • 主从版本可以不一样,从服务器版本可以比主服务器版本高


  •   


  SBR 的缺点:

  


      
  • 不是所有的UPDATE语句都能被复制,尤其是包含不确定操作的时候。


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


  •   
  • 使用以下函数的语句也无法被复制:

      * LOAD_FILE()

      * UUID()

      * USER()

      * FOUND_ROWS()

      * SYSDATE() (除非启动时启用了 --sysdate-is-now 选项)


  •   
  • INSERT ... SELECT 会产生比 RBR 更多的行级锁


  •   
  • 复制需要进行全表扫描(WHERE 语句中没有使用到索引)的 UPDATE 时,需要比 RBR 请求更多的行级锁


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


  •   
  • 对于一些复杂的语句,在从服务器上的耗资源情况会更严重,而 RBR 模式下,只会对那个发生变化的记录产生影响


  •   
  • 存储函数(不是存储过程)在被调用的同时也会执行一次 NOW() 函数,这个可以说是坏事也可能是好事


  •   
  • 确定了的 UDF 也需要在从服务器上执行


  •   
  • 数据表必须几乎和主服务器保持一致才行,否则可能会导致复制出错


  •   
  • 执行复杂语句如果出错的话,会消耗更多资源


  •   


  RBR 的优点:

  


      
  • 任何情况都可以被复制,这对复制来说是最安全可靠的


  •   
  • 和其他大多数数据库系统的复制技术一样


  •   
  • 多数情况下,从服务器上的表如果有主键的话,复制就会快了很多


  •   
  • 复制以下几种语句时的行锁更少:

      * INSERT ... SELECT

      * 包含 AUTO_INCREMENT 字段的 INSERT

      * 没有附带条件或者并没有修改很多记录的 UPDATE 或 DELETE 语句


  •   
  • 执行 INSERT,UPDATE,DELETE 语句时锁更少


  •   
  • 从服务器上采用多线程来执行复制成为可能


  •   


  RBR 的缺点:

  


      
  • binlog 大了很多


  •   
  • 复杂的回滚时 binlog 中会包含大量的数据


  •   
  • 主服务器上执行 UPDATE 语句时,所有发生变化的记录都会写到 binlog 中,而 SBR 只会写一次,这会导致频繁发生 binlog 的并发写问题


  •   
  • UDF 产生的大 BLOB 值会导致复制变慢


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


  •   
  • 当在非事务表上执行一段堆积的SQL语句时,最好采用 SBR 模式,否则很容易导致主从服务器的数据不一致情况发生


  •   


  另外,针对系统库 mysql 里面的表发生变化时的处理规则如下:

  


      
  • 如果是采用 INSERT,UPDATE,DELETE 直接操作表的情况,则日志格式根据 binlog_format 的设定而记录


  •   
  • 如果是采用 GRANT,REVOKE,SET PASSWORD 等管理语句来做的话,那么无论如何都采用 SBR 模式记录


  •   


  注:采用 RBR 模式后,能解决很多原先出现的主键重复问题。

责任编辑:

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱
    评论加载中…

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008