最近,我有一个客户,Life360,想从Percona Server 5.5至5.6 Perc雷竞技下载官网ona服务器升级,并实现GTID高事务环境。他们co-masters和多个读奴隶。
协调器为我们做这个工作容易得多。我的同事,Tibi,少数最近发布了关于协调器在这里和在这里。
丹尼尔从Life360看见协调器,对此很感兴趣。这是他如何设置协调器用他自己的话说:
我做了一些与流浪的盒子提供的初始测试协调器回购,看看如何配置代理并得到协调器服务器来做我们想做的事。
然后我搬到安装协调器服务器,RDS协调器的后端,客户端部署在亚马逊的奴隶和主人VPC MySQL实例。
一旦服务器设置完成,客户通过CNAME自动发现的主人,代理和服务器(花了一段时间,因为CNAME没有按预期工作,但这是固定在新的服务器版本)。
我们很惊讶的动作你可以通过协调器本身,如:移动奴隶通过拖拽到另一个主人,在一个节点上启用GTID按的按钮,设置GTID故障转移为基础,使用协调器将LVM快照代理等。
我们继续和测试主拖拽改变,一些成功的尝试之后,我们甚至把它回到最初的地方。这些测试后,我们非常有信心,我们可以利用协调器作为我们的一个主要工具来帮助在未来的升级。
这是一个初始设置的截图:

Manjot:一旦丹尼尔协调器设置,他想利用它帮助MySQL升级。我们开始创建一个计划,在他的约束和仍然保持最佳实践。
首先,我们在专用的备份安装Percona雷竞技下载官网 Server 5.6新鲜奴隶。第一个5.6创建奴隶MyDumper实现向前兼容性和没有任何遗留表空间。因为MyDumper已经安装,Life360 Percona备份服务,这是相当容易完成。雷竞技下载官网
MyDumper奴隶重建工作在以下方式:
采取mydumper备份:
- 去你想要备份目录
- 安装mydumper (sudo apt-get安装mydumper)
- mydumper - t 8 - l mydumper。对数压缩
恢复:
- 确保安装MyDumper: sudo apt-get MyDumper安装
- 复制MyDumper备份到备份dir
- 导出BACKUP_DIR env var
- 这与MyLoader中恢复(从运行https://gist.github.com/Dnile/4658b338d4a101cbe2eeb5080ebddf8e):
123456789# !/usr/本/env shcd BACKUP_DIR美元出口 DESTHOST = 127.0.0.1出口 BACKUP_DIR = / vol_mysql / 备份mysqld - - - 跳过 - - - - - - 格兰特 - - - - - - 表 &为 我 在 ” ls - - - - - - 1 * - - - - - - 模式 .dump . gz | 减少 - - - - - - d “- - -” - - - - - - f1 ” ; 做 mysql - - - - - - h DESTHOST美元 - - - - - - e “创建数据库,如果不存在美元我” ; zcat 我美元 - - - - - - 模式 .dump . gz | mysql - - - - - - h DESTHOST美元 我美元 ; zcat 我美元 - - - - - - 模式 - - - - - - 帖子 .dump . gz | mysql - - - - - - h DESTHOST美元 我美元 ; 完成/ usr / 本 / myloader中 - - - 主机 = DESTHOST美元 - - - 目录 = BACKUP_DIR美元 - - - 启用 - - - - - - binlog - - - 线程 = 10 - - - 查询 - - - - - - 每 - - - - - - 事务 = 20. - - - - - - v 3乔恩 - - - - - - R mysql : mysql / var / 自由 / mysql /
一旦第一个5.6奴隶被提到,我们使用Xtrabackup 5.6备份,然后恢复到每一个奴隶,骑车出去读的奴隶池一次。
一旦所有的奴隶都升级,我们创建了一个新的5.6大师,它复制了我们的首要5.5的主人。
然后我们搬所有的奴隶复制新的5.6大师。
Life360早就cron作业,跑在第二个5.5的主人。我们把cron 5.5应用程序编写的主要的主人,和所有表锁定。然后我们停止复制第二co。丹尼尔停止MySQL和退役。
然后我们搬到所有应用程序写入到新的5.6的主人。虽然协调器可以使用外部脚本移动ip,在这里我们使用手动过程改变应用程序dsn和HAProxy配置。
5.5主依然,我们使用协调器设置为只读。

丹尼尔说,这没做很多摆脱仍开放在这个服务器的连接。
在新主人,我们使用了停止奴隶和奴隶重置按钮在协调器面板将不再奴隶从旧的主人。
一旦一些成千上万的连接已经搬到新的主人,我们停止MySQL 5.5主人,照顾和应用程序其余部分的“优雅”连接到新的5.6的主人。
有一些写停机时间,因为一些连接才下降他们被迫因为php-fpm拒绝放手。也总是在这种环境下大量的交易。
在这一点上我们的拓扑是这样的(忽略现在的地球图标):

但一如既往丹尼尔希望MOAR。是时候GTID。虽然我们可以做这个升级期间,Life360想管理风险,而不是让太多的生产变化一次。
我们跟着Percona指雷竞技下载官网南,在线GTID部署协调器来调整使用,但新老主人和切换read_only。这使得我们的工作更容易和更快,并保存我们从任何停机时间。
金球奖拓扑中截图显示,奴隶现在使用GTID复制。
协调器进行升级和变化比以前容易得多,用谨慎和理解它是什么做的背景。







协调器的说明,谢谢。