RHEL6:mysql主从复制及高可用性.doc_第1页
RHEL6:mysql主从复制及高可用性.doc_第2页
RHEL6:mysql主从复制及高可用性.doc_第3页
RHEL6:mysql主从复制及高可用性.doc_第4页
RHEL6:mysql主从复制及高可用性.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、MYSQL复制概述Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。mysql支持的复制类型:1.基于语句的复制: 在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。 一旦发现没法精确复制时, 会自动选着基于行的复制。 2.基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持3.混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。复制解决的问题MySQL复制技术有以下一些特点:(1) 数据分布 (Data distribution )(2) 负载平衡(load balancing)(3) 备份(Backups) (4) 高可用性和容错行 High availability and failover 复制如何工作 整体上来说,复制有3个步骤: (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);(2) slave将master的binary log events拷贝到它的中继日志(relay log);(3) slave重做中继日志中的事件,将改变反映它自己的数据。下图描述了复制的过程:该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。下一步就是slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。复制配置:1)server1(01)和server2(02)安装好mysql并修改配置文件:yum -y install mysql-*service mysqld startchkconfig mysqld onvi /etc/f:添加如下内容:mysqldlog-bin=MySQL-bin /启用二进制日志server-id=1 /数据库ID号, 为1时表示为Master,其中master_id必须为1到231之间的一个正整数值, 每个同步服务器都必须设定一个唯一的编号,否则同步就不能正常运行了; #在server2上配置为server-id=2修改后在server1和server2主机上重启mysqld服务2)server1和server2相互设置为主从同步(双主)在Server1主机上的设置:/建立一个帐户cluster,并且允许从任何地址上来登陆,密码是cluster。在Server2主机上的设置:在server2和server1上执行相反的操作,使其互为主从,具体操作如下图所示:在Server2主机上的设置:在Server1主机上的设置:可以在f文件中添加“binlog_do_db=数据库名”配置项(可以添加多个)来指定要同步的数据库,有关f中有关其他同步的配置项请自行查看相关文档。若主MYSQL服务器已经存在,只是后期才搭建从MYSQL服务器,在置配数据同步前应先将主MYSQL服务器的要同步的数据库拷贝到从MYSQL服务器上(如先在主MYSQL上备份数据库,再用备份在从MYSQL服务器上恢复)2、MYSQL高可性群集(主/从模式)在server1和server2上安装软件包keepalived安装keepalived软件包与服务控制在编译安装Keepalived之前,必须先安装内核开发包kernel-devel以及openssl-devel、popt-devel等支持库。编译安装Keepalived使用指定的linux内核位置对keepalived进行配置,并将安装路径指定为根目录,这样就无需额外创建链接文件了,配置完成后,依次执行make、make install进行安装。使用keepalived服务执行make install操作之后,会自动生成/etc/init.d/keepalived脚本文件,但还需要手动添加为系统服务,这样就可以使用service、chkconfig工具来对keepalived服务程序进行管理了。4)修改server1/server2配置文件Server1主机上的配置文件如下图:vi /etc/keepalived/keepalived.conf:! Configuration File for keepalivedglobal_defs router_id MYSQL-HA #确保和server2相同vrrp_instance VI_1 state BACKUP 注: BACKUP将根据优先级决定主或从;MASTER指定为主;SLAVE指定为从.若一方为MASTER,另一方为SLAVE,则表示双机热备(即一主一从). interface eth0 virtual_router_id 51 #确保和server2相同,同网内不同集群此项必须不同,否则发生冲突 priority 100 #此处server2上设置为50 advert_int 1 nopreempt #不抢占,只在priority高的server1上设置,server2上此项注释掉 authentication auth_type PASS auth_pass 1111 virtual_ipaddress 00 virtual_server 00 3306 delay_loop 2 lb_algo wrr lb_kind DR persistence_timeout 60 protocol TCP real_server 01 3306 #server2上此处改为02(即server2本机ip) weight 3 notify_down /etcl/keepalived/bin/mysql.sh TCP_CHECK connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 Server1主机上有关keepalived.conf文件的具体配置如下:Server2主机的keepalived.conf参考上面的描述修改。可以使用scp命令把server1主机上配置好的keepalived.conf文件拷贝到server2主机,只要做简单修改即可,如下图所示:5)server1和server2上都添加此检测脚本,作用是当mysql停止工作时自动关闭本机的keepalived,从而实现将故障机器踢出(因每台机器上keepalived只添加了本机为realserver).当mysqld正常启动起来后,要手动启动keepalived服务。vi /etc/keepalived /mysql.sh,内容如下:注:如果mysql.sh脚本不能正常执行的话,可以编写一个检测mysqld服务的是否正在运行的脚本,如果mysqld服务停止,则在脚本中停掉keepalived服务,实现故障切换。并设置一个cron计划任务定期执行检测脚本。在企业网络内配置cacti 或nagios对mysqld服务进行监控,能在第一时间通知管理员mysqld服务出现异常。vi /etc/rc.local:modprobe ip_vs #此模块如果无法自动加载则需手动加载server1和server2启动keepalived守护进程./etc/init.d/keepalived st

温馨提示

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

评论

0/150

提交评论