mysql 复制 延迟_Mysql延时复制

一、概念

延时复制:在设定的时间(默认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;"

转:http://www.yaukb.com/index.php/2011/12/mysql-delay/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值