Mysql Replication (一)
时间:2010-08-28 来源:徐郞顾
MYsql Replication
根据官方文档
5.1.5 之前只支持 statement 模式.
测试运用的版本是 5.1.49 log,Os: RedHat 5 _64
Mysql 的Replication 是一个异步的复制过程,从一个Mysql instace(我们称之为
Master)复制到另一个Mysql instance(我们称之Slave)。在Master 与Slave 之间的
实现整个复制过程主要由三个线程来完成,其中两个线程(Sql 线程和IO 线程)在Slave 端,
另外一个线程(IO 线程)在Master 端。
要实现MySQL 的Replication ,首先开启Master 端的Binary Log,否则无法实现。
因为整个复制过程实际上就是Slave 从Master 端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作.
binlog 文件由 binlog index 和 binlog 组成. binlog 是单独的日志文件,binlog index是 binlog 的索引文件.
默认情况下我们可以在安装mysql的根目录下data目录中找到这些文件
当binlog发生新增和删除操作时候(比如 reset maste flush log 之类) 相对应的 mysql-bin.index 也会发生改变.
binlog statement 模式下只记录使记录和结构发生改变的query 及执行语句时候的上下文的信息。
可以用 show binlog events in ‘mysql-bin.xxxxxx' 来查看 binlog 信息.
或者 你也可以通过mysqlbinlog 工具查看
一般网站做mysql replication 主要用来作用一定的数据保护和负载均衡。但这边暂时只把日志系统库准备迁移到mysql+redhat,主要还是未来省钱.(日志系统每天增量数据在500w左右 大量的插入 原先是 window cluster+mssql cluster )
而mysql 提供的备份都对插入有着一定影响 在slave 备份可以解决这一问题.只需要备份前 slave stop 备份后再开启 slave。 同时master 库控制好日志的删除就能实现。
现在困惑的是怎么能实现slave 同步的监控,和master 库 binlog 定合适的时间清理问题。
google slave 同步监控的插件 还在摸索中。
http://code.google.com/p/google-mysql-tools/wiki/OnlineDataDrift