欢迎来到天天文库
浏览记录
ID:38289990
大小:60.50 KB
页数:7页
时间:2019-06-07
《MySQL主从服务器配置》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MySQL主从服务器配置一、同步原理说明Mysql的Replication是一个异步的复制过程,从一个Mysqlinstace(我们称之为Master)复制到另一个Mysqlinstance(我们称之Slave)。在Master与Slave之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在Slave端,另外一个线程(IO线程)在Master端。 要实现MySQL的Replication,首先必须打开Master端的BinaryLog(mysql-bin.xxxxxx)功能,否则无法实现
2、。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。打开MySQL的BinaryLog可以通过在启动MySQLServer的过程中使用“—log-bin”参数选项,或者在my.cnf配置文件中的mysqld参数组([mysqld]标识后的参数部分)增加“log-bin”参数项。 MySQL复制的基本过程如下: 1.Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2.Master接收
3、到来自Slave的IO线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave端的IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在Master端的BinaryLog文件的名称以及在BinaryLog中的位置; 3.Slave的IO线程接收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog文件(mysql-relay-bin.xxxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中
4、,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我” 4.Slave的SQL线程检测到RelayLog中新增加了内容后,会马上解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的Query语句,并在自身执行这些Query。这样,实际上就是在Master端和Slave端执行了同样的Query,所以两端的数据是完全一样的。二、设置mysql主从配置的优点:1.解决web应用系统,数据库出现的性能瓶颈,采用数据库集群的方式来实现查询负载;一
5、个系统中数据库的查询操作比更新操作要多得多,通过多台查询服务器将数据库的查询分担到不同的查询服务器上从而提高查询效率。2. Mysql数据库支持数据库的主从复制功能,使用主数据库进行数据的插入、删除与更新操作,而从数据库则专门用来进行数据查询操作,这样可以将更新操作和查询操作分担到不同的数据库上,从而提高了查询效率。三、同步设置基本步骤(以下设置均涉及my.cnf文件的修改)3.1设置主服务器:启用bin-log日志、同步帐号server-id=n#设置IDlog-bin#启用bin-log记录,如需要指定binlog
6、文件名,可使用如下语法#log-bin=binlog#binlog文件名为binlog.0,binlog.1……set-variable=binlog-ignore-db=mysql#不记录数据库mysql的更新日志binlog-do-db=#记录指定的数据库的更新日志,还可以单独处理只更新表内容此外,需要注意两个环境变量:innodb_flush_log_at_trx_commit=1#Default:1。在使用了事务的数据库中,强烈建议该值显式的设置为1,以确保在每个事务提交时,日志缓冲被写到日志文件,并将该写操作
7、同步到磁盘上sync_binlog=1#在每进行1次binlog写操作后就将该操作同步到硬盘上。设为更高的值可以有效降低io并获得更好的性能,但会增加bilog丢失的风险为从服务器上的同步帐号授权:mysql>GRANTREPLICATIONSLAVEON*.*TO同步帐号的用户名@从服务器ip地址IDENTIFIEDBY'同步帐号的密码';如果想要从服务器上有权限执行”LOADTABLEFROMMASTER”和”LOADDATAFROMMASTER”还需要增加”FILE”和”SELECT”权限;3.2设置从服务器:设
8、置需要同步的内容server-id=n#设置IDmaster-host=#设置主服务器的ipmaster-user=#设置同步帐户的用户名master-password=#设置同步帐户的密码master-port=#设置TCP/IP端口,默认为3306set-variable=replicate-ignore-db=mysql#设
此文档下载收益归作者所有