MySQL master Failover
2014-03-23 00:00
148 查看
MySQL数据库高可用性架构实现方式有: 1. mysql master / master replication + VIP 通过脚本来控制master切换, 如mmm和mha。 具体内容参见: 《
使用MMM实现MySQL Replication的高可用性》
http://www.ttlsa.com/html/1208.html 和《
MMM—MySQL高可用性解决方案》
http://www.ttlsa.com/html/1404.html、《
mysql-master-ha:mysql master高可用性管理工具》
http://www.ttlsa.com/html/310.html。 结构图如下所示:
2. 共享存储
3. 块级别的复制 通常是使用分布式块设备复制
DRBD。
http://www.ttlsa.com/html/707.html
那么如果是master - slave架构时,master挂掉了,该如何切换呢?
想必大家绝大多数的数据库应用是上图所示。 那么该注意些什么呢? 以及当master挂掉了该如何切换呢? 每台slave服务器上启动--lon-bin, 但是不要启动--log-slave-updates。因为指定--log-slave-updates后,slave从master接收到的更新都将写入到自己的二进制日志文件中。如果该台slave提升为master后,其他slave将接收两次原master的二进制日志,同时更不好确定pos值。在
MySQL级联复制(A->B->C)情况下,--log-slave-updates一定要开起来,否则下游slave不会更新。 切换步骤: 1. 登录到每台slave上 STOP SLAVE IO_THREAD, SHOW PROCESSLIST 查看复制进程是否 Has read all relay log。 2. 如果上一步都ok的话,随便选一台做如下操作。如选择slave1. STOP SLAVE , RESET MASTER。 3. 登录slave2和slave3,做如下操作 STOP SLAVE and CHANGE MASTER TO MASTER_HOST='Slave1', MASTER_USER='repl', MASTER_PASSWORD='www.ttlsa.com', MASTER_PORT=3306; 不需要指定slave1 的二进制日志文件和pos值。 start slave; 转载请注明来自
运维生存时间: http://www.ttlsa.com/html/3676.html
使用MMM实现MySQL Replication的高可用性》
http://www.ttlsa.com/html/1208.html 和《
MMM—MySQL高可用性解决方案》
http://www.ttlsa.com/html/1404.html、《
mysql-master-ha:mysql master高可用性管理工具》
http://www.ttlsa.com/html/310.html。 结构图如下所示:
2. 共享存储
3. 块级别的复制 通常是使用分布式块设备复制
DRBD。
http://www.ttlsa.com/html/707.html
那么如果是master - slave架构时,master挂掉了,该如何切换呢?
想必大家绝大多数的数据库应用是上图所示。 那么该注意些什么呢? 以及当master挂掉了该如何切换呢? 每台slave服务器上启动--lon-bin, 但是不要启动--log-slave-updates。因为指定--log-slave-updates后,slave从master接收到的更新都将写入到自己的二进制日志文件中。如果该台slave提升为master后,其他slave将接收两次原master的二进制日志,同时更不好确定pos值。在
MySQL级联复制(A->B->C)情况下,--log-slave-updates一定要开起来,否则下游slave不会更新。 切换步骤: 1. 登录到每台slave上 STOP SLAVE IO_THREAD, SHOW PROCESSLIST 查看复制进程是否 Has read all relay log。 2. 如果上一步都ok的话,随便选一台做如下操作。如选择slave1. STOP SLAVE , RESET MASTER。 3. 登录slave2和slave3,做如下操作 STOP SLAVE and CHANGE MASTER TO MASTER_HOST='Slave1', MASTER_USER='repl', MASTER_PASSWORD='www.ttlsa.com', MASTER_PORT=3306; 不需要指定slave1 的二进制日志文件和pos值。 start slave; 转载请注明来自
运维生存时间: http://www.ttlsa.com/html/3676.html
相关文章推荐
- SQLServer中的分页方法(代替mysql里的limit)
- Fedora 8下用Yum安装Apache+PHP+MySQL环境
- PHP源码 之 ext/mysql扩展部分
- 在vs2008中用odbc数据源连mysql的方法
- apache+mysql+php+phpmyadmin安装的一些问题
- mysql优化Analyze Table
- Mysql中 主键、外键 的 Cascade ,NO ACTION ,Restrict ,SET NULL
- 修改MYSQL默认编码的方法
- mac下修改mysql的默认字符集为utf8
- 修改MySQL最大连接数
- mysql的半同步复制
- 【原创】MySQL 5.6 置换分区体验
- ubuntu下的nginx+php+mysql安装配置
- mysql 导出,导入数据
- mysql授权操作
- mysql存储过程详解
- 高性能Mysql
- MySQL正则表达式初步
- Mysql 事件(event)
- mysql中insert与select的嵌套使用方法