为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL树形复制—BLACKHOLE存储引擎的使用

标签:
MySQL

 MySQL树形复制—BLACKHOLE存储引擎的使用

2011年3月

修订记录

版本

修订内容

修订人

审核人

修改日期

V0.1

创建

谭志军

目录

1 序言  2

1.1 背景  2

1.2 特性  2

2 MySQL同步复制拓扑图  2

3 BlackHole配置 2

4 上线部署  3

4.1 环境  3

4.2 部署步骤  3

5 紧急故障处理  3

5.1 BlackHole机器不可用  3

1 序言

1.1 背景

随着公司发展,网站流量越来越大,数据库机器也越来越多。机器的增长基本在从库上;就主站而言,当前有18台从库,每台从库都会在主库上创建一个同步线程。随着机器的增多,同步給主库带来的压力也越大。避免給单台主库造成的压力过大,在现有的主从库之间添加多台代理服务器,应用BLACKHOLE引擎数据不写磁盘的特性,分担主库的同步。

1.2 特性

BLACKHOLE存储引擎是MySQL数据库特有的存储引擎,就像“黑洞”一样,它接收数据但不存储数据。取回总是返回空集。当创建一个BLACKHOLE表的时候,服务器在数据库目录创建一个表定义文件。文件用表的名字开头,并且有一个.frm扩展名。没有其它文件关联到这个表。

2 MySQL同步复制拓扑图

  

     

  

3 BlackHole配置

1. 编译:需带上 --without-plugin-blackhole 选项来支持BLKCKHOLE引擎。

2. BLACKHOLE机器特殊配置参数:

设置BLACKHOLE为默认存储引擎:

default_table_type = BLACKHOLE 

开启中间层从库写binlog,及本地binlog

log-slave-update    = 1

log-bin               = ms-mysql-bin

跳过innodb支持,当建表语句带有engine=innodb时,在中间层自动使用默认引擎BLACKHOLE

skip-innodb

4 上线部署

4.1 环境

Master à Slave1

Master à BlackHole à Slave1

4.2 部署步骤

1. Slave1停止与Master的同步,记下同步点。

2. Dump表结构导入Blackhole,并在Blackhole上将表引擎全更改为BLACKHOLE。

3. BLackHole执行 change master 成为Master的从库节点,master_log_file 和master_log_pos 取Slave1停止同步时的值。

4. Slave1 执行change master 成为BlackHole的从库节点。

5. 启动BlackHole及Slave1的同步。 

注:步骤不可变更。

5 紧急故障处理

5.1 BlackHole机器不可用

1. 确认BlackHole下层Slave复制停止在同一个同步点;若有同步点不一致的机器暂时剔除,需从同层Slave重导数据[这种情况出现的几率很小]。

2. 读取BlackHole data目录下 master.info 文件,在新的BlackHole实例上执行change master成为Master从库节点,同步信息取master.info 值。

3. 下层Slave上change master 成为新BlackHole实例的从库节点。

4. 启动BlackHole 及下层Slave的同步。

 

©著作权归作者所有:来自51CTO博客作者frostmounre的原创作品,如需转载,请注明出处,否则将追究法律责任

mysql数据库休闲MySQL


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消