mysql 复制
2016-06-21 15:39
627 查看
主从可以做成 同一个共享磁盘,但是会出现共享磁盘挂掉,整个数据库就挂了
也可以做成 drbd 数据复制,自动恢复,防止脑裂
提升 slave :
1.每个可提升的 slave 必须有一个复制用户账户
2.每个可提升的 slave 运行时必须使用 log-bin 选项,即启动二进制日志
3.每个可提升的 slave 运行时必须不使用 log-slave-updates 选项
横向扩展 =》 多个 slave
其中有一个级联复制,也就是需要配置一个中级服务器(称为 relay 服务器)
如果配置一个 relay 服务器:
1.将 slave 配置成发送任何 slave 线程执行的事件,并将这些事件写入 relay 的 binlog
2.将 relay 上所有表的存储引擎都改成 BLACKHOLE 存储引擎,保留空间并提高性能
3.保证 relay 上的所有新表都使用 BLACKHOLE 引擎
首先,配置 relay 发送 slave 线程事件,向 my.cnf 中添加 log-slave-updates 选项
其次,向 my.cnf 中添加 default-storage-engine 更改默认的存储引擎
relay> show tables from windy;
relay> set SQL_LOG_BIN = 0; 关闭 binlog 日志,防止 alter table 写入日志
relay> alter table user_data engine = 'BLACKHOLE';
relay> set SQL_LOG_BIN = 1; 开启 binlog 日志
至此 relay 配置完成,通常都是 master-slave 架构,但是通过一段时间的使用 ,master 的负载增高,或者 架构需要,就得添加 relay 服务器,将 relay 服务器 连接到 master ,然后将 slave 依次切换到 relay
过滤复制事件:
master 过滤:binlog-do-db / binlog-ignore-db
slave 过滤:replicate-do-db = db / replicate-ignore-db = db / replicate-do-table = db_name.tbl_name / replicate-wild-do-table = db_pattern.tbl_pattern / replicate-ignore-table = db_name.tbl_name / replicate-wild-ignore-table = db_pattern.tbl_pattern
也可以做成 drbd 数据复制,自动恢复,防止脑裂
提升 slave :
1.每个可提升的 slave 必须有一个复制用户账户
2.每个可提升的 slave 运行时必须使用 log-bin 选项,即启动二进制日志
3.每个可提升的 slave 运行时必须不使用 log-slave-updates 选项
横向扩展 =》 多个 slave
其中有一个级联复制,也就是需要配置一个中级服务器(称为 relay 服务器)
如果配置一个 relay 服务器:
1.将 slave 配置成发送任何 slave 线程执行的事件,并将这些事件写入 relay 的 binlog
2.将 relay 上所有表的存储引擎都改成 BLACKHOLE 存储引擎,保留空间并提高性能
3.保证 relay 上的所有新表都使用 BLACKHOLE 引擎
首先,配置 relay 发送 slave 线程事件,向 my.cnf 中添加 log-slave-updates 选项
其次,向 my.cnf 中添加 default-storage-engine 更改默认的存储引擎
relay> show tables from windy;
relay> set SQL_LOG_BIN = 0; 关闭 binlog 日志,防止 alter table 写入日志
relay> alter table user_data engine = 'BLACKHOLE';
relay> set SQL_LOG_BIN = 1; 开启 binlog 日志
至此 relay 配置完成,通常都是 master-slave 架构,但是通过一段时间的使用 ,master 的负载增高,或者 架构需要,就得添加 relay 服务器,将 relay 服务器 连接到 master ,然后将 slave 依次切换到 relay
过滤复制事件:
master 过滤:binlog-do-db / binlog-ignore-db
slave 过滤:replicate-do-db = db / replicate-ignore-db = db / replicate-do-table = db_name.tbl_name / replicate-wild-do-table = db_pattern.tbl_pattern / replicate-ignore-table = db_name.tbl_name / replicate-wild-ignore-table = db_pattern.tbl_pattern
相关文章推荐
- mysql性能优化之swap占用高
- mysql 语句
- mysql binlog 数据介绍
- MySQL性能优化的最佳21条经验
- 针对mysql中分表批量添加字段
- MySQL表中的字符串替换
- mysql权限
- MySql的一些优化策略
- mysql经典查询
- mysql case when then end学习
- Mysql分页数据显示总数恒为1问题的分析与解决
- mysql连接方式
- mysql 用户管理和权限设置
- nodejs操作mysql数据库
- 连接mysql数据库提示mysqladmin flush-hosts
- MySQL create users and grant privilege
- mysql远程登录并设置密码
- Wamp与LNMP环境下的mysql进入后查看数据库时报错的不同解决方法
- 扛得住双11的Mysql---mysql优化
- MySQL的InnoDB索引原理详解