一、Mysql复制
mysql的复制由两个组件组成:主服务器和从服务器
mysql的复制是单向、异步的
支持链式复制
三种复制方式:
(1)基于语句的复制
将主服务器上的sql,传递到从服务器上执行。这种方式效率很高,一但没法精确复制,就会选择基于行的复制
(2)基于行的复制
把主服务器上改变的内容复制过去,而不是把sql语句在从服务器上执行。Mysql5.0才开始支持
(3)混合类型的复制
二、Mysql复制实现原理
涉及到三个线程:I/O线程(主服务器)、I/O线程(从服务器)、sql线程(从服务器)
复制过程如下:
(1)从服务器上的I/O线程连接主服务器,请求指定日志文件的位置和内容
(2)主服务器上的I/O线程收到请求之后,将日志内容和位置等信息返回给从服务器
(3)从服务器I/O线程接受到信息之后,将获取的日志依次转入中继日志文件(mysql-relay-bin),并将主服务器端的二进制日志文件名和位置记录到一个名为master-info文件中,以便在下一次读取时能迅速定位后读取增量
(4)从服务器sql线程解析中继日志文件中的内容为sql语句,放到从库中执行。
三、Mysql复制常用架构
一主一从、一主多从、主主复制、双主多从
注意:
1、同一时刻,只能有有一个主服务器进行写操作(写唯一)
2、一个主服务器可以有多个从服务器(可扩展)
3、主从服务器ID名要唯一(访问唯一)
四、主主互备架构
1、两台服务器护卫主从,同一时刻只有一个服务器可读写,另一个服务器只读
2、keepalived维持一个vip,正常情况下此vip在主服务器上,webserver 通过vip来对db1(主)进行读写,db2(从)于db1保持数据同步(类似于oracle中的dataguard),当db1出现故障无法ping通时,keepalived就会进行vip漂移到db2上(也就是主备库切换),这个切换相当迅速(几乎不会对webserver产生任何影响)
(1)修改my.cnf文件
server_id为服务器标识名,从服务器不能和主服务器相同。
log-bin为开启二进制日志功能,这里的日志格式定义为mysql-bin
relay-log为定义中继日志文件格式
replicate-wild-ignore-table为不复制哪些内容
(2)手动同步数据
上锁,防止配置过程中产生数据
flush tables with read lock
打包传输
cd /var/lib/
scp mysql.tar.gz 【从服务器IP】:/var/lib
从服务器上解压
(3)创建复制用户并授权
在db1 mysql库中创建复制用户
grant replication slave on *.* to 'repl_user'@139.199.131.193 identified by 'Cbl3S*D~p25~5R+';
查看复制状态,从中可以看到master_log_file、master_log_pos
show master status;
在db2 mysql库中将db1设为子机的主服务器
change master to \
master_host='139.199.111.35',
master_user='repl_user',
master_passwd='Cbl3S*D~p25~5R+',
master_log_file='mysql-bin.000003',
master_log_pos=749;
启动服务器复制进程
先在db2上启动从服务器
start slave
再在db1上启动主服务器
startslave
在db2 mysql库中创建复制用户
grant replication slave on *.* to 'repl_user'@[主库IP] identified by [passwd];
查看复制状态,从中可以看到master_log_file、master_log_pos
show master status;
在db1 mysql库中将db2设为子机的主服务器
change master to \
master_host=[从库IP],
master_user='repl_user',
master_passwd=[passwd],
master_log_file=[logfile_name],
master_log_pos=[logfile_num]
注意:
1、show slave status 中slave_IO_running和slave_sql_running中为yes则表明工作正常
2、不要在主库使用binlog-do-db或binlog-ignore-db选项,不要在从库使用replicate-do-db或replicate-ignore-db选项,这样可能会带来跨库更新失败
领取专属 10元无门槛券
私享最新 技术干货