存档

文章标签 ‘复制’

MySQL复制注意事项 复制生产实践:Mysql复制

2013年1月26日 3,966 views 没有评论

MySQL复制注意事项

上一次博客还是9月份, 近半年工作实在太忙, 学习计划也大半停滞, 博客也没有更新了. 计划年前补上每个月的一篇 .

基本原理:
在主库的二进制日志里记录对数据库的变更,然后在从库重放这部分日志(异步).
1. 一般用来扩展读,但对于扩展写没什么用.扩展写的办法只能是sharding(partitioning) 数据.
2. 由于目前5.1,5.5的复制是单线程的,所以很可能复制成为瓶颈. 网上有说淘宝DBA在5.1上实现了多线程复制. 但是现在ssd盘并不贵,我的建议是使用ssd来突破瓶颈,一般情况下使用ssd突破了,就不太会出现滞后了.

3. 不要使用复制的许多高级特性,,可以看看mysql的bug列表,往往都是些高级特性,非核心特性导致的,而且Mysql的复制的限制和坑比较多,一定要保持自己的简单架构, 使用普通的主-从就足够了,没有必要使用特殊的链式复制,环形复制, Blackhole引擎.  如果是主从,就全部复制,主从数据所有配置,数据,硬件都一样, 不要使用什么花哨的手法,比如主库指定复制某个些库,从库忽略某个库,这些手法往[……]

Read more

分类: 数据库 标签: , ,

配置MySQL日志服务器

2013年1月22日 3,568 views 没有评论

配置MySQL日志服务器

关于log server的配置.参考 http://mysqlsandbox.net

使用log server 利用复制来进行时间点恢复而不是用mysqlbinlog来进行,更加可靠,稳健. 如下是搭建的简单步骤:
配置步骤如下:
1. 部署安装
下载mysql二进制官方安装包 wget mysql-5.1.58-linux-x86_64-glibc23.tar.gz
下载sandbox
wget https://launchpad.net/mysql-sandbox/mysql-sandbox-3/mysql-sandbox-3/+download/MySQL-Sandbox-3.0.28.tar.gz
useradd sandbox
usermod -G mysql sandbox
解压到目录 /home/sandbox/pkgs/MySQL-Sandbox-3.0.28/
安装参考
# as normal user
export PATH=$HOME/usr/local/mysql/bin:$PATH
##export[……]

Read more

MySQL半同步导致幻读

2012年9月9日 1,659 views 没有评论

 MySQL半同步导致幻读

MySQL的半同步是个很好的特性,不过我并没有在生产环境中启用过,担心的主要是网络的延迟影响了事务吞吐。

如果我们启用半同步,肯定是有相当重要的数据,但不容忽视的情况是,半同步会导致幻读。

出现幻读的场景是:Innodb提交了事务,此时从库还没有接受二进制日志, 但另一个新的线程仍然可以读取到提交后的数据。 如果此时宕机了。那么虽然我们曾经读取到了数据,但这个数据在从库机器上并不存在。

所以,我们读取到了新的数据,但在崩溃后,这份数据就不存在了,我们管这个叫“幻读”

这种情况,由于效率和安全不可兼得, 在许多数据库产品都存在,但既然启用了半同步,肯定是希望能更稳健些。

enhanced-semi-sync-replication  这个方案就是一个更稳健的方案。

转两张图,对比下原来半同步的改进。

原来的半同步机制

1a

 

改进后的

2

 

 

 

分类: 数据库 标签: , , ,

MySQL延迟复制工具pt-slave-delay

2012年5月10日 4,557 views 没有评论
MySQL延迟复制工具pt-slave-delay
pt-slave-delay介绍
mysql同步在快速的网络中是毫秒级的,如果有误操作,从库也很快变更了,对于一些频繁进行,不是经过严格测试的升级,可能带来风险.
可考虑配置一个延迟复制的副本,以改善故障情况下的可恢复性.
mysql 5.6版本已经支持延迟复制,如果5.1版本,可以用percona工具出品的一个工具pt-slave-delay
pt-slave-delay – Make a MySQL slave server lag behind its master.
下载:  wget percona.com/get/pt-slave-delay
安装: 略
语法: pt-slave-delay [OPTION…] SLAVE-HOST [MASTER-HOST]
选项值一般可以用默认的. 默认是延迟1小时.
如: pt-slave-delay –delay 1m –interval 15s –run-time 10m slavehost
运行这个工具10分钟(默认是永久运行的) . 从库保[……]

Read more

分类: 数据库 标签: ,

MySQL在线做从库

2010年3月9日 2,613 views 没有评论

MySQL在线做从库

有时我们需要对线上的运行中的主库做从库。方法有二,

1. 对于有MyISAM引擎的库(不包括系统库),没有什么好办法,你需要锁表,命令如下

mysqldump –flush-logs –master-data=2 –hex-blob -R -f –all-databases            #会自动启用–lock-all-tables锁表

2. 对于InnoDB引擎的库,(确保实例里都是InnoDB的表),可以不锁表在线做从库,命令如下,

mysqldump –flush-logs –master-data=2 –single-transaction  –hex-blob -R -f –all-databases

 

以上命令生成的的转储dump文件里,用more file 命令查看,你会看到  “CHANGE MASTER”字样,记录下来。

然后

1. 创建空的实例;

2. 导入dump文件到空的实例

3. 主库上配置复制用户,允许从库过来取日志

GRANT[……]

Read more

分类: 数据库 标签: ,

Advanced MySQL Replication Techniques(3)

2009年5月28日 3,064 views 没有评论

Advanced MySQL Replication Techniques(3)[……]

Read more

分类: 数据库 标签: ,

Advanced MySQL Replication Techniques(2)

2009年5月27日 1,733 views 没有评论

Advanced MySQL Replication Techniques(2)[……]

Read more

分类: 数据库 标签: ,

Advanced MySQL Replication Techniques(1)

2009年5月26日 2,538 views 没有评论

Advanced MySQL Replication Techniques[……]

Read more

分类: 数据库 标签: ,