mysql之主从复制
2014-02-03 17:39
537 查看
原理-->
在数据库层面,复制语句或者行,因为在数据库层面,故只有主服务器生成,并放到二进制日志里面,才能复制给从服务器.原理-->mysql的主从复制基于异步,主要有三个进程执行,分别是主mysql上mysqldump进程,从mysqli/o进程和sql进程。执行过程:主mysql上mysqldump进程接收到从mysql的I/O进程发出的请求后,读取本地binlog,并将数据通过3006端口发送给从mysql,从mysql的I/O进程将数据存放到中继日志中,同时在master-info存入所获取的binlog日志的文件名和位置,便于下次告知主mysql我上次从哪个地方复制的,之后从mysql的sql进程检测到中继日志有内容加入后,在从mysql本地执行新加的语句,并将执行的语句的结果,存入数据库。目的-->数据分布,进行读写分离,通过一主多从,实现主负责写,从负责读.
基 本步骤(主从)-->(若主节点已经运行一段时间,则首先要保证从节点内容和主节点一致,参考mysql之备份恢复)
主服务器:[/b]创建具有复制权限的用户帐号-->mysql>grant replication slave,replication client on *.* to repluser@'172.16.%.%' identified by '123456'; mysql>flush privileges;设置server-id-->防止循环复制
#vim /etc/my.cnf server-id=100启用二进制日志-->修改日志为绝对路径,以及日志格式
vim /etc/my.cnf log-bin=/mydata/data/mysql-bin binlog_format=mixed全局锁表,防止数据库发生改变
mysql>FLUSH TABLES WITH READ LOCK;查看主服务器锁表后此时的二进制名和日志位置,假设获取的内容是
mysql>show master status; MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107;复制所有的数据库数据到从服务器上(保留权限),二进制日志文件可不复制.解锁
mysql>unlock tables;
从服务器:启用中继日志-->(可选:关闭二进制日志)
vim /etc/my.cnf #relay log relay-log=/mydata/data/relay-bin #Read only read-only=1#禁止从服务器自动启动skip-slave-start=1设置server-id-->
#vim /etc/my.cnf server-id=200修改数据库权限为mysql.mysql
#chown -R mysql.mysql data_dir启动复制线程-->设置连接属性,并启动(show slave status\G 查看从节点状态)
mysql>change master to MASTER_HOST='192.168.1.1',MASTER_USER='repluser',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107; mysql>start slave;
主数据库如果重启,则从数据库需要重新定义新的链接属性.
从服务器I/O线程始终是链接状态,而不是YES,最后超时
连接属性设置错误.半同步模式(降低同步延迟问题)-->半同步模式需要插件支持,默认插件位置在/usr/local/mysql/lib/plugin 主服务器
mysql -uroot #安装模块 mysql>install plugin rpl_semi_sync_master soname 'semisync_master.so'; mysql>set global rpl_semi_sync_master_enabled=1; #等待从节点响应,若在timeout期间没有响应,则主节点降级为异步 mysql>set global rpl_semi_sync_master_timeout=1000;同时也可以在配置文件中永久启用:#vim /etc/my.cnf
rpl_semi_sync_master_enabled=1 rpl_semi_sync_master_timeout=1000从服务器
mysql>install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; mysql>set global rpl_semi_sync_slave_enabled=1; mysql>stop slave; mysql>start slave;
从服务器半同步模式始终是off
从服务器的半同步模式,只有在salve start状态下,才会启用.同时也可以在配置文件中永久启用:#vim /etc/my.cnf
rpl_semi_sync_slave_enabled=1
查看模块:mysql>show global status like '%semi%';
来自为知笔记(Wiz)
相关文章推荐
- mysql主从复制
- mysql5.5主从同步复制配置
- MySQL主从服务器链式复制配置(ubuntu)
- MySQL主从复制与主主复制
- mysql主从复制中的半同步复制
- MySQL之——主从复制的一些参数配置
- Ubuntu下编译安装Mysql双实例并配置主从复制
- 【mysql】主从复制
- Linux下搭建MySQL的主从复制(一)
- MySQL主从复制
- MysqL主从复制_模式之GTID复制
- MySql 主从复制
- mysql 主从复制(转)
- mysql中主从复制延迟问题
- Mysql 主从复制
- Centos6.5 mysql 5.7 主从复制 转自其他博主(http://www.linuxidc.com/Linux/2016-11/136899.htm)
- Mysql实现主从复制
- MySQL主从复制的维护脚本
- mysql主从复制安装配置
- 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)