继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

largeQ
关注TA
已关注
手记 824
粉丝 92
获赞 585

 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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP