mysql之复制

原理-->


在数据库层面,复制语句或者行,因为在数据库层面,故只有主服务器生成,并放到二进制日志里面,才能复制给从服务器.
mysql之复制
目的-->

数据分布,进行读写分离,通过一主多从,实现主负责写,从负责写.
 

基 本步骤(主从)-->(若主节点已经运行一段时间,则首先要保证从节点内容和主节点一致,参考mysql之备份恢复)


主服务器:
 
创建具有复制权限的用户帐号-->
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
#sync-binlog=1
#innodb-flush-logs-at-trx-commit=1
 
从服务器:
 
启用中继日志-->(可选:关闭二进制日志,注释掉bin-log)
#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
启动复制线程-->设置连接属性,并启动(show slave status;    查看从节点状态)
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;
 
半同步模式(降低同步延迟问题)-->半同步模式需要插件支持,默认插件位置在/usr/local/mysql/lib/plugin
 
主服务器 
mysql -uroot
#安装模块
mysql>install plugin rpl_semi_sync_master scname ‘semisync_master.so‘;
mysql>>set global rpl_semi_sync_master_enable=1;
#等待从节点响应,若在timeout期间没有响应,则主节点降级为异步
mysql>>set global rpl_semi_sync_master_timeout=1000;
 
从服务器
mysql>install plugin rpl_semi_sync_slave scname ‘semisync_slave.so‘
mysql>set global rpl_semi_sync_slave_enable=1;
mysql>set global rpl_semi_sync_slave_timeout=1000;
mysql>stop slave;
mysql>start slave;
 
mysql之复制查看模块:mysql>show global status like ‘%semi%‘;





mysql之复制

上一篇:mysql主从复制全面解析及应用演练


下一篇:Html5中placeholder属性