MySQL主从架构及基于SSL实现数据复制
MySQL主从架构及基于SSL实现数据复制
一:Mysql主从架构拓扑图:
二: MySQL主从架构相关知识点
在MySQL的主从架构中,有关键的三个线程:
dump thread :当主服务器上的有使数据库发生改变的操作的语句时(基于语句,基于行的,混合三种语句)
会先将改操作语句记录到二进制log中,该线程通知从服务器有数据库操作语句发生,让从服务器的I/O thread 复制
I/O thread:监控主服器的二进制log ,及传输数据库操作语句,将这些语句记录到中继日志(relay log)中
SQL thread:执行从服务器中的中继日志语句,到数据库存储中。
在MySQL 5.5版本中的主从架构中的主服务器中为了处理高并发业务时可能是多线程写入,
而在从服务器的SQL thread是单线程写入数据库存储中的,这可能会造成从数据库滞后的问题
三:MySQL的主从架构的过程
主服务器配置
1:打开二进制日志
2:修改server-id 为1
3:创建具有复制权限的用户mysql及为其提供RedHat的密码
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO mysql@'172.16.10.5' IDENTIFIED BY 'redhat' REQUIRE SSL;
从服务器配置
打开中继日志
修改server-id为15
主从服务器基于ssl复制的功能配置:
Master和Slave都打开have_ssl。
都在在配置文件中打开 have-openssl选项,并添加证书,密码相关信息
主服务器配置:
注:重启MySQL服务查看开启状态
从服务器的配置建议使用CHANGE MASTER TO 命令
- CHANGE MASTER TO
- ->MASTER_HOST='172.16.10.4',
- ->MASTER_USER='mysql',
- ->MASTER_PASSWORD='redhat',
- ->MASTER_LOG_FILE='msql-bin.000001',
- ->MASTER_LOG_POS=107
- CHANGE MASTER TO
- -> MASTER_SSL=1
- ->MASTER_SSL_CA="/etc/pki/CA/cacert.pem",
- ->MASTER_SSL_CERT="/usr/local/mysql/ssh/Slave.crt",
- ->MASTER_SSL_KEY="/usr/local/mysql/ssh/Slave.key";
- START SLAVE;
- SHOW SLAVE STATUS;
详见官方文档:http://dev.mysql.com/doc/refman/5.1/en/replication-solutions-ssl.html