master配置
1.接入mysql并创建主从复制的用户
create user m2ssync identified by ‘Qq123!@#’;
2.给新建的用户赋权
GRANT REPLICATION SLAVE ON . TO
‘m2ssync’@’%’ IDENTIFIED BY ‘Qq123!@#’;
3.指定服务ID, 开启binlog日志记录, 在my.cnf
中加入
server-id=137
log-bin=dbstore_binlog
binlog-do-db=db_store / /这个是针对某个库做主从复制
4.通过SHOW MASTER STATUS;查看Master db状
态.
slave配置
1.指定服务器ID, 指定同步的binlog存储位置, 在
my.cnf中加入
server-id=101
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
read_only=1
replicate_do_db=db_store
2.接入slave的mysql服务, 并配置change master to
master_host=‘192.168.8.137’,
master_port=3306,
master_user=‘m2ssync’,
master_password=‘Qq123!@#’,
master_log_file=‘db_stoere_binlog’, // 这个要跟master status 的 file名字一致
master_log_pos=0; //这个要跟master status 的 position 一致
3.start slave;
4. show slave status\G ;查看slave服务器状态
当看到
SLAVE_IO_RUNNING=YES
SLAVE_SQL_RUNNING=YES
就OK了
Issues
一、主从复制的延迟是怎么产生的?
1.当master tps 高于slave的sql线程所能承受的范围
2.网络原因
3.磁盘读写耗时
二、如何判断延迟?
1.show slave status \G;seconds_behind_master 0
2.mk-heartbeat
三、我们怎么解决延迟问题?
1.配置更高的硬件资源
2.把IOthread 改变成多线程的方式
mysql5.6 多线程方式
3.GTID进行多线程的方式