您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > MySQL5.6replicate容灾方案
MySQL5.6replicate容灾方案MySQL5.6replicate容灾方案1目录1文档介绍------------------------------------------------------------------------------------------------------21.1文档目的---------------------------------------------------------------------------------------------------21.2文档范围---------------------------------------------------------------------------------------------------21.3读者对象---------------------------------------------------------------------------------------------------21.4作业内容和范围------------------------------------------------------------------------------------------21.5术语与缩写解释------------------------------------------------------------------------------------------22MYSQLREPLICATE概述------------------------------------------------------------------------------------32.1MYSQLREPLICATE原理-------------------------------------------------------------------------------------32.2MYSQLREPLICATE架构-------------------------------------------------------------------------------------43MYSQLREPLICATE安装配置------------------------------------------------------------------------------53.1安装MYSQL-------------------------------------------------------------------------------------------------53.2配置MYSQLREPLICATE------------------------------------------------------------------------------------53.3优化MYSQLREPLICATE------------------------------------------------------------------------------------64MYSQLREPLICATE测试------------------------------------------------------------------------------------74.1测试主备数据一致性------------------------------------------------------------------------------------74.2测试主备数据延迟---------------------------------------------------------------------------------------75常见问题处理-----------------------------------------------------------------------------------------------95.1MYSQLREPLICATE数据同步问题------------------------------------------------------------------------95.2MYSQL权限问题-------------------------------------------------------------------------------------------95.3REDO日志问题---------------------------------------------------------------------------------------------95.4SOCK位置问题--------------------------------------------------------------------------------------------10MySQL5.6replicate容灾方案21文档介绍1.1文档目的1.2文档范围1.3读者对象1.4作业内容和范围1.5术语与缩写解释MySQL5.6replicate容灾方案32MySQLreplicate概述2.1MySQLreplicate原理说明:MySQL作为常用生产数据库中的一种,容灾及高可用方面设计是必须考虑的。而MySQLreplicate是容灾、负载均衡、读写分离、高可用性等技术的基础,不仅使用广泛且易于扩展,是一项成熟的技术。成功的商业案例如:replicate+MHA;replicate+corbar;replicate+MMM等。本章节主要介绍MySQLreplicate原理及架构为安装配置replicate做技术储备。1、MySQLreplicate复制常见用途:1)数据容灾:复制是备份的扩展方案,但不能直接取代备份;2)负载均衡:通过复制可以将读操作分布到多个服务器上;3)高可用性:能避免单点故障,一个包含复制的良好设计系统能够显著缩短宕机时间;4)MySQL升级:复制也是作为常用升级测试的解决方案。2、MySQLreplicate复制原理:复制原理图1)在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志中。MySQL会按事务提交的顺序而非每条语句执行的顺序来记录二进制日志。在记录二进制日志后,主库会告诉存储引擎可以提交事务了。2)备库将主库的二进制日志复制到本地中继日志中。备库会启动一个IO线程,IO线程跟主库建立一个普通的客户端连接,然后再主库上启动一个特殊的二进制(binlogdump)线程,这个二进制转储线程会读取主库上二进制日志中的事件。它不会对事件进行轮询。如果该线程追赶上了主库,它将进入睡眠状态,知道主库发送信号通知其有新的事件产生时才MySQL5.6replicate容灾方案4会被唤醒,备库IO线程会将接受到的事件记录到中继日志中。3)备库启动SQL线程从中继日志中读取事件并在备库执行,从而实现备库数据的更新。当SQL线程追赶上IO线程时,中继日志通常已经在系统缓存中,所以中继日志开销很低。SQL线程执行的事件也可以通过配置选项来决定是否写入其自己的二进制日志中。2.2MySQLreplicate架构1、一主多备在有少量写和大量读时,这种配置非常有用。可以把读分摊到多个备库上,直到备库给主库造成了太大的负担,或者主备之间的带宽成为瓶颈为止。尽管这是非常简单的拓扑结构,但它非常灵活,能满足多种需求。它的用途:1)为不同的角色使用不同的备库(例如添加不同的索引或使用不同的存储引擎)2)把一台备库当作待用的主库,除了复制没有其他数据传输。3)将一台备库放到远程数据中心,用作灾难恢复4)延迟一个或多个备库,以备灾难恢复5)使用其中一个备库,作为备份、培训、开发或者测试使用服务器。2、主动-主动模式下主-主复制主-主复制也叫双向复制包含两台服务器,每一个都配置成对方的主库和备库。一个可能的应用场景是两个处于不同地理位置的办公室,并且都需要一份可写的数据拷贝。这种配置最大的问题是如何解决冲突,两个可写的互主服务器导致的问题非常多。通常发生在两台服务器同时修改一行记录,或同时在两台服务器上向一个包含auto_increment列的表里插入数据。总体来说,允许向两个服务器上写入所带来的麻烦远远大于其带来的好处。3、主动-被动模式下主-主复制这种的主要区别在于其中一台服务器是只读的被动服务器。这种方式使得反复切换主动和被动服务器非常方便,因为服务器的配置是对称的。这使得故障转移和故障恢复很容易。它也可以让你在不关闭服务器的情况下执行维护、优化表、升级操作系统或其他任务。设置主动-被动的主-主拓扑结构在某种意义上类似于创建一个热备份,但是可以使用这个“备份”来提高性能,例如,用它来执行读操作、备份、“离线”维护以及升级等。真正的热备份做不了这些事情。然后,不会得到比单台服务器更好的写性能。4、主库、分发主库以及备库当备库足够多时,会对主库造成很大负载。每个备库会再主库上创建一个线程,并执行binlogdump命令。该命令会读取二进制日志文件中的数据并将其发送到备库。每个备库都会重复这样的工作,它们不会共享binlogdump的资源。因此,如果需要多个备库,一个好办法是从主库移出负载并使用分发主库。分发主库事实上也是一个备库,它的唯一目的就是提前和提供主库的二进制日志。多个备库连接到分发主库,这使原来的主库拜托了负担。为了避免在分发主库上做实际的查询,可以将它的表修改为blackhole存储引擎。MySQL5.6replicate容灾方案53MySQLreplicate安装配置3.1安装MySQL省略3.2配置MySQLreplicate说明:配置复制的基本步骤总共三步:1、在每台服务器上创建复制账号;2、配置主库和备库;3、通知备库连接到主库并从主库复制数据。1、创建复制账号(主备库都创建):mysqlgrantreplicationslave,replicationclienton*.*to'repl'@'192.168.0.%'identifiedby'password';2、配置主库和备库主库配置参数:log_bin=/var/lib/mysql/mysql-binserver_id=10binlog_format=ROW备库配置参数:lob_bin=mysql-binserver_id=20relay_log=/var/lib/mysql/mysql-relay-binlog_slave_updates=1read_only=13、启动复制—备库执行mysqlchangemastertomaster_host='server1',master_user='repl',master_password='11',master_log_file='mysql-bin.000001',master_log_pos=0;4、主备库查看复制状态:主库状态检查:mysqlshowmasterstatus;备库状态检查:mysqlshowslavestatus\G;MySQL5.6replicate容灾方案63.3优化MySQLreplicate说明:有许多参数来控制复制,其中一些会对数据安全和性能产生影响。为降低问题发生概率,下面配置参数建议设置。1、主库优化参数设置:sync_binlog=1innodb_flush_log_at_trx_commit=1expire_logs_days=8参数详解:sync_binlog:开启此选项MySQL每次在提交事务前会将二进制日志同步到磁盘上,保证不丢失事件;innodb_fl
本文标题:MySQL5.6replicate容灾方案
链接地址:https://www.777doc.com/doc-2883607 .html