mysql AB复制延迟配置工具

来源:互联网 发布:视频配音软件下载 编辑:程序博客网 时间:2024/05/16 15:40
一、概念

延时复制:在设定的时间(默认3600s)内发生故障,可以进行恢复;先下载下来,然后等3600s后再执行。

架构:参照"Mysql一主多从部署"
master–>slave1–>slave2
\–>slave3(延迟复制,一般是3600s)


二、延时复制


通过延时复制可以达到容错的机制;

mysql>show master status; –查看master当前的POS值

slave3也可以放到slave2处,但延时会大点,最好放在master处,如再增加一台slave,放在slave2处比较合适。

把slave3变成master的从服务器,通过第三方软件实现延迟复制:

1.将master第一次作的备份同步到slave3,以此作为slave3同步master的起点
[root@master ~]# scp /tmp/all.sql slave3:/tmp --在master上操作

2.在slave3上的操作
# vim /etc/my.cnf
[client]
socket = /dblog/mysqld.sock 
port = 3306

[mysqld]
socket = /dblog/mysqld.sock
port = 3306
pid-file = /dblog/mysqld.pid
datadir = /data
default-storage-engine=innodb
innodb_data_home_dir = /data
innodb_data_file_path =ibdata1:50M:autoextend
server-id = 4
#log-bin = /dblog/mysqld-bin
#max-binlog-size = 10M
#log-slave-updates
#logs
slow_query_log = /dblog/slow.log
long_query_time = 1
log-error = /dblog/mysqld.err

# mkdir /data
# mkdir /dblog
# chmod 700 /data/ /dblog
# chown mysql.mysql /data /dblog/ -R
# mysql_install_db –datadir=/data –user=mysql
# service mysql start
# chkconfig mysql on

# mysql < /tmp/all.sql –导入数据
# mysql
mysql> flush privileges;
mysql> change master to
-> MASTER_HOST='192.168.1.10', 
-> MASTER_USER='slave',
-> MASTER_PASSWORD='123',
-> MASTER_LOG_FILE='mysqld-bin.000005', 
-> MASTER_LOG_POS= 1366,
-> MASTER_CONNECT_RETRY=10;
Query OK, 0 rows affected (0.02 sec)

3.实现延迟复制:
方法:
1、使用mysql高版本,自带延迟功能。
2、对旧版本打第三补丁
3、使用第三方工具 :maatkit
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.rhel5.i386.rpm –安装库文件
# yum localinstall perl-TermReadKey-2.30-3.el5.rf.i386.rpm maatkit-7119-1.noarch.rpm –nogpgcheck -y –使用yum解决依赖关系,nogpgcheck,因maatkit这个工具没有验证

# mk-slave-delay –help –查看帮助

调试阶段
# mk-slave-delay –defaults-file=/etc/my.cnf –user=root –password=123 –socket=/dblog/mysqld.sock –delay 5m –interval 15 localhost

后台进程运行模式
# mk-slave-delay –defaults-file=/etc/my.cnf –user=root –password=123 –socket=/dblog/mysqld.sock –delay 5m –interval 15 localhost –quiet &

–interval 15 –每15秒打印一个提示信息
–delay 5m –延时5分钟
–socket –也可以使用-P指定端口
–quiet –不输出提示信息

也可以使用脚本来控制这些选项:
io_thread:从master处读取更新
sql_thread:执行更新

使用以下两条命令不能很好的控制:
mysql -uroot -p123 -e "stop slave sql_thread;"
mysql -uroot -p123 -e "start slave sql_thread;"

0 0
原创粉丝点击