mysql主从复制原理与实现_第1页
mysql主从复制原理与实现_第2页
mysql主从复制原理与实现_第3页
mysql主从复制原理与实现_第4页
mysql主从复制原理与实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2016-04-14weixin: dragonflyyi 为何要做MySQL 主从复制? MySQL主从复制的原理是什么? MySQL二进制日志的形式有哪些? MySQL主从复制有哪些形态? MySQL主从复制如何来实现? 如何验证主从数据的质量? 遇到的相关问题与解决方案? 相关参考资料主要议题 备份数据(Data Backup) 负载均衡(Load Balance) 数据分发 (Data Distribution) 高可用和数据容错(High Availability and Failover)只是简单的对数据进行备份,降低数据丢失的风险,有事也用于报表等对数据时效性要求相对较低的场合。

2、主要用于MySQL 集群,解决单点故障或者故障切换;降低单台服务的负载, 使得访问均衡或者读写分离.主要用于多数据中心的,数据分发与同步为什么要做MySQL主从复制MySQL 自带的健康监控和检测,(根据配置的时间间隔)可以检测主库是否正常工作,一旦发现主库宕机或者无法工作,就会选择到最好的一个备库上. 主要基于MySQL 二进制 日志 主要包括三个进程(2个I/O进程,1个SQL进程)1. Master 将数据变化记录到二进制日志中2. Slave将Master的二进制日志,拷贝到 Slave 的中继日志中3. Slave将中继日志中的事件再做一次, 将数据变化,反应到自身(Slave)数据

3、库MySQL 的日志分类为:二进制日志、中继日志、错误日志、查询日志、慢查询日志、事务日志MySQL主从复制的原理 基于行的复制(Row-Based Replication)在主服务器上执行的SQL语句,(将语句写入二进制日志),在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。 把改变的内容(数据本身)复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。MySQL 二进制日志的复制类型 基于语句的复制(Statement-Based Replication) 混合型的

4、复制(Mix-Based Replication) 主从类型(Master-Slave) 主主类型(Master-Master) 级联类型(Master-Slave-Slave)MySQL复制的常用拓扑结构 安装MySQL服务器分别安装两台MySQL 服务器:(MySQL 版本最好一致)192.168.0.1 (Master)192.168.0.2 (Slave) 创建备份账户并授权(在Master上) grant replication slave on *.* to copyer% identified by 12345;/* 用户名: copyer; 密码:12345 */MySQL主从

5、复制的步骤 修改主从的配置修改Master的配置信息mysqld#设置服务器IDserver-id=1#设置需要写日志的数据库binlog-do-db=test#设置不需要写日志的数据库binlog-ignore-db=mysql#日志基于行模式binlog_format=row#二进制日志文件存放位置log-bin=d:/log/mysql/mysql_log_bind:/log/mysql/mysql_log_bin.000001d:/log/mysql/mysql_log_bin.000002d:/log/mysql/mysql_log_bin.000003d:/log/mysql/my

6、sql_log_bin.000004d:/log/mysql/mysql_log_bin.000005d:/log/mysql/mysql_log_bin.000006d:/log/mysql/mysql_log_bin.000007d:/log/mysql/mysql_log_bin.index修改Slave的配置信息mysqld#设置服务器IDserver-id=2#设置需要写日志的数据库replicate-do-db=test#设置不需要写日志的数据库replicate-ignore-db=mysql#开启slave 的二进制日志log_slave_updates = 1#日志基于行模式

7、binlog_format=row#二进制日志文件存放位置log-bin=d:/log/mysql/mysql_log_bin MySQL主从复制的步骤MySQL主从复制的步骤 启动Master并查看状况 关联Slave(在Slave操作) 启动主从复制(在Slave操作)在启动复制前后,可以执行show slave 命令查询相关参数Slave_IO_Running=YesSlave_SQL_Running=Yes参数非常多,具体的可以参考MySQL官方文档A. 事务的语句先缓存到事务缓存,直到提交指令,才写入binlogB. 事务是串行写入binlog,依赖于事务发生的次序MySQL事务与b

8、inlog日志的关系MySQL主从复制的状况监测 主从状况监测主要参数Slave_IO_Running IO线程是否打开:YES/NO/NULLSlave_SQL_Running SQL线程是否运行:YES/NO/NULLSeconds_Behind_Master落后主库的时间(秒) 可能导致主从延时的因素主从时钟是否一致网络通信是否存在延时是否和日志类型,数据过大有关从库性能,有没有开启binlog从库查询是否优化(解决慢查询)MySQL主从数据一致性检测 pt-table-checksum工具检测检测数据的散列值是否一致对表数据进行分块检测(以避免导致从库的延时)必须是居于语句的日志模式才能检测(计算散列的函数需要在从库上重做)检测要求表、表结构相同(否则检测行为将终止)安全选项:check-replication-filters 是否检查复制过滤规则 check-slave-tables 检查是否所有从库都有被检查的表和列chunk-size-limit 每个chunk最大不能超过这个大小,超过就忽略它限速选项:check-interval

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论