mysql读写分离
master --->slaver-->slaver2
\--->slaver(延迟复制,一般是6小时)
延迟复制可以避免灾难性操作的发生
mysql集群
mysql复制
mysql读写分离
mysql ndb cluster
mysql复制
master服务器
接受读/写请求。他的数据更新都会被从服务器所接受。打开一个线程,用于等待从服务器的链接,链接成功后,用于数据传输,传输数据就是主服务器的
二进制日志记录.
slaver服务器
仅仅读的请求。它的数据更新都是根据从主服务器上获得信息来进行更新。它会打开两个线程:SQL_THREAD,IO_THREAD.
IO_THREAD 负责连接主服务器,把相关信息DOWN回来
SQL_THREAD 执行下载回来的更新操作.
实现延迟复制:
方法:
1.使用Mysql-6.0以上的版本,自带延迟功能。
2.对旧版本打第三补丁.
3.使用第三方工具
4.完全模仿第三方工具原理,用shell脚本实现
采用第三方工具实现
perl-TermReadKey-2.30-3.el5.rf.i386.rpm
maatkit-7119-1.noarch.rpm 《----延迟复制工具
#rpm -ivh ~/mysql-shared-compat-5.5.8-1.rhel.i386.rpm
#yum localinstall perl_TermReadkey-2.30-3.el5.rf.i386.rpm maatkit-7119-1.noarch.rpm --nogpgcheck -y
调试阶段
#mk-slave-delay --defaults-file=/etc/my.cnf --user=root --password=123 --sock=/dblog/mysqld.sock --delay 5m --interval 15 localhost
也可以使用脚本来控制这些选项:
io_thread
sql_thread
mysql -uroot -p123 -e "stop slave sql_thread;"
mysql -uroot -p123 -e "start slave sql_thread;"