菜单

昨今分化场景下 MySQL 的搬迁方案

2019年5月31日 - MySQL

不等景况下 MySQL 的迁徙方案,场景mysql迁移方案

正文内容

正文内容

壹、为啥要搬迁


MySQL 迁移是 DBA
经常爱惜中的八个做事。迁移,是把实际存在的实体挪走,保障该物体的完整性以及再而三性。

生育景况中,有以下景况供给做动员搬迁:

一句话,迁移职业是不得已而为之。实行迁移工作,目标是让事情稳固持续地运维。

一、为啥要动员搬迁


MySQL 迁移是 DBA
经常维护中的八个职业。迁移,是把实际存在的物体挪走,保险该物体的完整性以及三番五次性。

生产条件中,有以下景况需求做动员搬迁:

一句话,迁移职业是不得已而为之。推行迁移专门的学问,指标是让事情牢固持续地运营。

二、MySQL 迁移方案大概浏览


MySQL
迁移正是在承接保险职业稳固持续地运转的前提下做备份苏醒。这难题就在怎么快捷安全地进行备份复苏。

第一,备份。针对各种主节点的从节点依旧备节点,都有备份。那些备份恐怕是全备,或许是增量备份。在线备份的主意,可能采纳mysqldump(MySQL
用于转存款和储蓄数据库的实用程序。它最首要产生五个SQL脚本,个中涵盖从头重新成立数据库所必备的通令),xtrabackup(是多个对
InnoDB 做数据备份的工具,支持在线热备份,是生意备份工具 InnoDB Hotbackup
的三个很好的代替品),mydumper(是叁个对准MySQL和Drizzle的高质量八线程备份和重整旗鼓工具)等。

其次,复苏。针对小容积(10GB
以下)数据库的备份文件,大家得以一向导入。针对大体积数据库(GB 可能 TB
品级)的重作冯妇,拿到备份文件到本机以往,恢复生机不算困难。具体的余烬复起措施能够参照他事他说加以考察第1节。

2、MySQL 迁移方案大概浏览


MySQL
迁移正是在保障专业稳定持续地运营的前提下做备份恢复生机。那难点就在怎么火速安全地开始展览备份复苏。

先是,备份。针对各样主节点的从节点还是备节点,都有备份。那一个备份大概是全备,或然是增量备份。在线备份的章程,恐怕利用
mysqldump(MySQL
用于转存款和储蓄数据库的实用程序。它至关心珍视要发生二个SQL脚本,当中包含从头重新创设数据库所必不可缺的授命),xtrabackup(是2个对
InnoDB 做数据备份的工具,帮忙在线热备份,是商业贸易备份工具 InnoDB Hotbackup
的3个很好的代替品),mydumper(是三个对准MySQL和Drizzle的高质量拾2线程备份和苏醒工具)等。

帮忙,复苏。针对小容积(十GB
以下)数据库的备份文件,大家能够直接导入。针对大容积数据库(GB 或许 TB
等第)的大张旗鼓,获得备份文件到本机今后,恢复生机不算困难。具体的还原措施能够参谋第三节。

3、MySQL 迁移实战


上面试为啥要做动员搬迁,以及搬迁需求做什么,接下去是在生产条件怎么操作。不相同的利用场景,有例外的化解方案。

假诺有如下约定:

三、MySQL 迁移实战


上边试为何要做动员搬迁,以及搬迁须要做怎么样,接下去是在生产条件如何操作。区别的行使场景,有例外的缓慢解决方案。

如果有如下约定:

三.一,场景1:主1从构造迁移从库

我们从轻松的协会入手。A 项目,原来是1主壹从结构。101 是主节点,十贰是从节点。因作业要求,把 10二 从节点迁移至 十三,架构图如图 一。拾2从节点的数据体积过大,不能够选择 mysqldump
的款式备份。和研究开发沟通后,产生1致的方案。

下面是 A 项目 MySQL 架构图。

图片 1

图 壹 主壹从结构迁移从库架构图

具体做法是这么:

一、研究开发将 102 的读业务切到主库;

2、确认 十二 MySQL 状态(重要看 PROCESS
LIST),阅览机器流量,确认准确后,结束 十二 从节点的劳动;

三、十三 新建 MySQL 实例,建成今后,结束 MySQL 服务,并且将整个数据目录 mv
到其它市方做备份;

肆、将 拾2 的全部 mysql 数据目录使用 rsync 拷贝到 十叁;

伍、拷贝的还要,在 拾一 授权,使 十三 有拉取 binlog 的权限(REPLICATION
SLAVE, REPLICATION CLIENT);

陆、待拷贝达成,修改 十三 配置文件中的 server_id,注意不要和 拾2上的一律;

七、在 拾3 运营 MySQL
实例,注意安插文件中的数据文件路线以及数额目录的权位;

捌、进入 拾3 MySQL 实例,使用 SHOW SLAVE STATUS 检查从库状态,能够见见
Seconds_Behind_Master 在递减;

9、Seconds_Behind_Master 变为 0 后,表示同步到位,此时得以用
pt-table-checksum 检查 10一 和 10三的多寡一致,但比较耗费时间,而且对主节点有震慑,能够和付出一齐展开数据一致性的评释;

10、和研发调换,除了做多少1致性验证外,还索要证实账号权限,避防业务迁回后访问出错;

1一、做完上述手续,可以和研究开发协和,把 十壹 的有的读业务切到
103,观看业务情况;

12、要是事情未有毛病,注解迁移成功。

3.一,场景一:主一从构造迁移从库

我们从轻松的协会入手。A 项目,原本是一主壹从结构。十一 是主节点,10贰是从节点。因业务须要,把 拾二 从节点迁移至 拾叁,架构图如图 一。102从节点的多寡容积过大,不可能动用 mysqldump
的样式备份。和研究开发交换后,产生一致的方案。

下面是 A 项目 MySQL 架构图。

图片 2

图 一 主壹从结构迁移从库架构图

具体做法是这么:

一、研究开发将 拾二 的读业务切到主库;

二、确认 十二 MySQL 状态(重要看 PROCESS
LIST),观望机器流量,确认准确后,甘休 10二 从节点的服务;

三、103 新建 MySQL 实例,建成现在,甘休 MySQL 服务,并且将全部数据目录 mv
到另各地方做备份;

4、将 十二 的全方位 mysql 数据目录使用 rsync 拷贝到 拾三;

伍、拷贝的同不时间,在 10一 授权,使 10三 有拉取 binlog 的权能(REPLICATION
SLAVE, REPLICATION CLIENT);

6、待拷贝完结,修改 拾三 配置文件中的 server_id,注意不要和 拾2上的平等;

七、在 103 运行 MySQL
实例,注意安顿文件中的数据文件路线以及数额目录的权力;

八、进入 103 MySQL 实例,使用 SHOW SLAVE STATUS 检查从库状态,能够看看
Seconds_Behind_Master 在递减;

9、Seconds_Behind_Master 变为 0 后,表示同步完成,此时得以用
pt-table-checksum 检查 101 和 103的数额壹致,但相比较耗费时间,而且对主节点有震慑,能够和开辟一齐张开数据一致性的表明;

拾、和研究开发调换,除了做多少①致性验证外,还索要表明账号权限,避防业务迁回后访问出错;

1壹、做完上述手续,能够和研发协和,把 拾一 的一部分读业务切到
拾叁,观看业务情状;

12、假设职业并未有有失常态态,注解迁移成功。

三.二,场景二:主壹从结构迁移钦定库

笔者们驾驭一主壹从只迁移从库如何做之后,接下去看看哪些同不平日候迁移主从节点。因分化专门的学问同时做客同壹服务器,导致单个库压力过大,还不方便管理。于是,希图将主节点
拾一 和从节点 十二 同期迁移至新的机械 十三 和 10四,拾三 充当主节点,104充当从节点,架构图如图二。本次迁移只须要迁移钦赐库,这一个水库蓄水体量量不是太大,并且能够保障数据不是实时的。

下图是 B 项目 MySQL 架构图。

 图片 3

图 2 主①从结构迁移钦定库架构图

现实的做法如下:

1、十三 和 十四 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

二、10二导出多少,正确的做法是布局定时任务,在作业低峰做导出操作,此处采纳的是
mysqldump;

三、10二 采集内定库须要的账号以及权限;

四、十二 导出多少甘休,使用 rsync 传输到 十三,须要时做缩减操作;

伍、10叁 导入数据,此时数据会自动同步到 104,监察和控制服务器状态以及 MySQL
状态;

陆、十三 导入达成,拾4 同步达成,拾叁 根据 10二搜集的账号授权,完毕后,布告研究开发检查数据以及账户权限;

七、上述成功后,可研究开发合营,将 拾一 和 十贰 的事情迁移到 拾三 和
拾四,阅览业务情形;

捌、假使事情并没万分,表明迁移成功。

三.贰,场景二:主一从协会迁移钦点库

大家掌握1主一从只迁移从库如何是好之后,接下去看看怎么样同期迁移主从节点。因分歧工作同一时间做客同一服务器,导致单个库压力过大,还费劲管理。于是,筹算将主节点
10一 和从节点 102 同不常间迁移至新的机械 十三 和 十4,十三 充当主节点,10四充当从节点,架构图如图二。本次迁移只须要迁移钦定库,那个水库蓄水容量量不是太大,并且能够保证数据不是实时的。

下图是 B 项目 MySQL 架构图。

 图片 4

图 二 主壹从结构迁移钦赐库架构图

实际的做法如下:

一、10三 和 10四 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

②、十2导出多少,准确的做法是计划定期任务,在职业低峰做导出操作,此处选取的是
mysqldump;

3、10贰 搜罗钦命库须要的账号以及权限;

④、十二 导出多少结束,使用 rsync 传输到 10三,必要时做缩减操作;

伍、10三 导入数据,此时数据会自动同步到 10肆,监察和控制服务器状态以及 MySQL
状态;

陆、十三 导入完成,拾肆 同步到位,十三 依据 拾2搜集的账号授权,达成后,通告研究开发检查数据以及账户权限;

柒、上述成功后,可研究开发协作,将 十壹 和 拾2 的政工迁移到 十三 和
十四,观望业务情况;

八、假使事情并没不正常,注脚迁移成功。

三.三,场景3:主一从结构双边迁移钦命库

接下去看看一主一从结构双边迁移钦命库如何是好。同样是因为作业共用,导致服务器压力大,管理混乱。于是,计划将主节点
10壹 和从节点 十2 同一时候迁移至新的机械 10三、10四、10伍、拾陆,拾三 充当 十四的主节点,拾4 充当 十三 的从节点,十5 充当 十陆 的主节点,拾陆 充当 10五的从节点,架构图如图3。此次迁移只需求迁移钦命库,这个水库蓄水体积量不是太大,并且能够保险数据不是实时的。我们得以见到,此次迁移和现象二很左近,无非做了四次迁移。

下图是 C 项目 MySQL 架构图。

图片 5

图 3 主壹从结构双边迁移钦命库架构图

现实的做法如下:

壹、103 和 10肆 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

贰、拾二 导出 10三需求的钦命库数据,精确的做法是布置定期职分,在事情低峰做导出操作,此处采取的是
mysqldump;

叁、102 收罗 十叁 须求的钦定库须求的账号以及权限;

四、十二 导出10三 须要的钦命库数据截至,使用 rsync 传输到
拾3,须求时做缩减操作;

伍、十三 导入数据,此时数据会自动同步到 104,监察和控制服务器状态以及 MySQL
状态;

六、十3 导入完毕,104 同步完毕,拾3 依照 102收罗的账号授权,完毕后,文告研究开发检查数据以及账户权限;

7、上述成功后,和研究开发合营,将 十一 和 十二 的专门的学问迁移到 十三 和
10肆,阅览业务景况;

八、十伍 和 十陆 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

9、十二 导出 十5须求的内定库数据,正确的做法是布置定时义务,在职业低峰做导出操作,此处选用的是
mysqldump;

拾、10二 收集 10伍 供给的钦赐库需求的账号以及权限;

1一、十二 导出 10伍 须求的钦定库数据结束,使用 rsync 传输到
拾5,供给时做缩减操作;

1②、105 导入数据,此时数据会自动同步到 106,监察和控制服务器状态以及 MySQL
状态;

13、拾伍 导入实现,十陆 同步到位,10伍 依据 10二收集的账号授权,实现后,公告研究开发检查数据以及账户权限;

1肆、上述成功后,和研究开发合营,将 10一 和 拾二 的事体迁移到 105 和
拾6,观望业务景况;

一五、假诺持有事情并没至极,注脚迁移成功。

叁.3,场景三:主1从协会双边迁移钦定库

接下去看看①主壹从结构双边迁移钦点库如何做。同样是因为事情共用,导致服务器压力大,管理混乱。于是,计划将主节点
拾1 和从节点 10二 同临时候迁移至新的机械 103、拾四、105、106,拾3 充当 10四的主节点,十四 充当 10三 的从节点,拾伍 充当 十陆 的主节点,拾6 充当 105的从节点,框架结构图如图叁。本次迁移只需求迁移钦赐库,那么些水库蓄水体量量不是太大,并且可以保障数据不是实时的。大家得以见到,本次迁移和气象贰很类似,无非做了一遍迁移。

下图是 C 项目 MySQL 架构图。

图片 6

图 三 主一从结构双边迁移钦定库框架结构图

切切实实的做法如下:

一、十三 和 十四 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

二、10二 导出 拾三供给的钦点库数据,正确的做法是安插定期任务,在工作低峰做导出操作,此处采用的是
mysqldump;

三、拾二 收罗 10③ 须要的钦定库需求的账号以及权限;

4、拾二 导出10三 须求的内定库数据甘休,使用 rsync 传输到
拾3,需要时做缩减操作;

5、10三 导入数据,此时数据会自动同步到 104,监控服务器状态以及 MySQL
状态;

陆、拾三 导入达成,拾四 同步到位,10三 遵照 10二收罗的账号授权,完毕后,公告研究开发检查数据以及账户权限;

七、上述成功后,和研发合作,将 101 和 拾2 的事体迁移到 十三 和
10四,阅览业务情形;

八、拾5 和 拾陆 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

玖、十2 导出 ⑩5必要的钦点库数据,准确的做法是安顿按时职责,在职业低峰做导出操作,此处选拔的是
mysqldump;

十、拾贰 搜集 拾伍 须要的内定库需求的账号以及权限;

11、102 导出 十5 须求的钦赐库数据结束,使用 rsync 传输到
十伍,须要时做缩减操作;

1二、十伍 导入数据,此时数据会自动同步到 10陆,监察和控制服务器状态以及 MySQL
状态;

一叁、10伍 导入完毕,拾陆 同步到位,拾5 依照 十二收罗的账号授权,完成后,通告研发检查数据以及账户权限;

1肆、上述成功后,和研究开发同盟,将 十一 和 十2 的事务迁移到 十5 和
10陆,观望业务情状;

15、即使持有事情并没不日常,证明迁移成功。

三.肆,场景四:主1从组织总体迁移主从

接下去看看一主壹从结构完整迁移主从如何做。和情景2类似,不过这里是搬迁全部库。因
十一 主节点 IO 出现瓶颈,希图将主节点 10壹 和从节点 十二 同期迁移至新的机械
十三 和 拾四,十三 充当主节点,拾四充当从节点。迁移完毕后,以前的主节点和从节点放任,架构图如图4。此番迁移是全库迁移,体量大,并且要求保证实时。此次的迁移相比较特出,因为运用的战略是先替换新的从库,再交替新的主库。所以做法有一些复杂些。

下面是 D 项目 MySQL 架构图。

图片 7

图 四 主壹从结构总体迁移主从架构图

具体的做法是如此:

壹、研究开发将 十二 的读业务切到主库;

2、确认 拾贰 MySQL 状态(首要看 PROCESS LIST,MASTELANDSTATUS),观望机器流量,确认正确后,甘休 10二 从节点的劳动;

三、10四 新建 MySQL 实例,建成以往,甘休 MySQL 服务,并且将总体数据目录 mv
到任哪个地点方做备份,注意,此处操作的是 104,也正是今后的从库;

4、将 十2 的任何 mysql 数据目录使用 rsync 拷贝到 拾四;

伍、拷贝的还要,在 十一 授权,使 十④ 有拉取 binlog 的权柄(REPLICATION
SLAVE, REPLICATION CLIENT);

6、待拷贝完结,修改 拾四 配置文件中的 server_id,注意不要和 10二上的同等;

柒、在 10四 运维 MySQL
实例,注意布置文件中的数据文件路线以及数据目录的权杖;

八、进入 拾肆 MySQL 实例,使用 SHOW SLAVE STATUS 检查从库状态,能够见到
Seconds_Behind_Master 在递减;

9、Seconds_Behind_Master 变为 0 后,表示同步到位,此时能够用
pt-table-checksum 检查 十一 和 十4的数据1致,但正如耗费时间,而且对主节点有影响,能够和开辟一同开始展览多少1致性的认证;

拾、除了做多少一致性验证外,还须要表达账号权限,以免业务迁走后走访出错;

11、和研究开发合营,将在此之前 拾2 从节点的读业务切到 104;

1二、利用 十2 的数据,将 拾3 变为 10一 的从节点,方法同上;

1三、接下去到了重在的地点了,大家要求把 十四 产生 10三 的从库;

– 104 STOP SLAVE;

– 103 STOP SLAVE IO_THREAD;

14、业务迁移在此之前,断掉 拾三 和 拾1 的2只关系;

壹伍、做完上述手续,能够和研究开发和睦,把 十一 的读写作业切回 十二,读业务切到
拾四。必要留意的是,此时 拾一 和 10三 均能够写,须求确定保证 拾1在平昔不写入的情状下切到 103,能够使用 FLUSH TABLES WITH READ LOCK 锁住
十一,然后专业切到 十三。注意,一定要工作低峰试行,切记;

1陆、切换达成后,观望业务情形;

1柒、假设职业未有失水准,证明迁移成功。

三.四,场景4:主一从布局完整迁移主从

接下去看看一主一从结构全体迁移主从怎么做。和场景二类似,然而这里是迁移全数库。因
十1 主节点 IO 出现瓶颈,企图将主节点 10一 和从节点 十二 同期迁移至新的机器
十3 和 十四,十叁 充当主节点,十4充当从节点。迁移完成后,从前的主节点和从节点吐弃,架构图如图4。此番迁移是全库迁移,体积大,并且必要确认保障实时。此番的搬迁相比较新鲜,因为使用的国策是先替换新的从库,再交替新的主库。所以做法有一些复杂些。

下面是 D 项目 MySQL 架构图。

图片 8

图 四 主一从结构完整迁移主从框架结构图

切切实实的做法是那般:

1、研究开发将 十贰 的读业务切到主库;

2、确认 10二 MySQL 状态(首要看 PROCESS LIST,MASTEKugaSTATUS),阅览机器流量,确认无误后,停止 十二 从节点的劳务;

三、十4 新建 MySQL 实例,建成之后,结束 MySQL 服务,并且将全部数据目录 mv
到别的地点做备份,注意,此处操作的是 10四,也正是前景的从库;

4、将 102 的万事 mysql 数据目录使用 rsync 拷贝到 拾四;

5、拷贝的同一时候,在 101 授权,使 10四 有拉取 binlog 的权能(REPLICATION
SLAVE, REPLICATION CLIENT);

陆、待拷贝完毕,修改 拾四 配置文件中的 server_id,注意不要和 10二上的平等;

七、在 十肆 运营 MySQL
实例,注意安排文件中的数据文件路线以及数额目录的权力;

八、进入 拾4 MySQL 实例,使用 SHOW SLAVE STATUS 检查从库状态,能够看到
Seconds_Behind_Master 在递减;

9、Seconds_Behind_Master 变为 0 后,表示同步实现,此时可以用
pt-table-checksum 检查 十1 和 十四的数目1致,但相比较耗费时间,而且对主节点有影响,能够和花费一同展开数据1致性的认证;

十、除了做多少一致性验证外,还索要评释账号权限,防止业务迁走后走访出错;

11、和研究开发合作,将事先 十二 从节点的读业务切到 十四;

1贰、利用 拾二 的数目,将 拾3 变为 拾一 的从节点,方法同上;

13、接下去到了重大的地点了,大家须求把 104 变成 拾3 的从库;

– 104 STOP SLAVE;

– 103 STOP SLAVE IO_THREAD;

1四、业务迁移以前,断掉 十三 和 十壹 的联手关系;

一五、做完上述手续,可以和研究开发协和,把 拾一 的读写作业切回 拾贰,读业务切到
十四。要求小心的是,此时 拾一 和 拾三 均能够写,供给确认保障 10一在未有写入的情形下切到 拾3,能够应用 FLUSH TABLES WITH READ LOCK 锁住
十壹,然后工作切到 拾3。注意,一定要专门的职业低峰试行,切记;

1陆、切换完毕后,观察业务情状;

一七、假设事业并没反常,申明迁移成功。

3.5,场景5:双主结构跨机房迁移

接下去看看双主结构跨机房迁移咋做。某项目由于容灾思量,使用了跨机房,采纳了双主结构,双边均能够写。因为磁盘空间难题,要求对
A 地的机器进行替换。打算将主节点 1.拾壹 和从节点 1.十贰 同有的时候间迁移至新的机械
一.10三 和 一.拾四,壹.10三 充当主节点,一.10四 充当从节点。B 地的 2.拾壹 和
二.十二 保持不变,但搬迁实现后,一.十3 和 二.十一互为双主。框架结构图如图5。因为是双主结构,两边相同的时候写,假设要替换主节点,单方必须有节点结束服务。

下图是 E 项目 MySQL 迁移框架结构图。

图片 9

图 5 双主结构跨机房迁移架构图

切切实实的做法如下:

1、一.10三 和 1.104 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

贰、确认 一.十二 MySQL 状态(主要看 PROCESS LIST),注意阅览 MASTE大切诺基 STATUS
不再变化。观望机器流量,确认正确后,结束 1.拾2 从节点的劳务;

三、1.十3 新建 MySQL 实例,建成之后,甘休 MySQL 服务,并且将全方位数据目录
mv 到此外市方做备份;

四、将 一.拾2 的全方位 mysql 数据目录使用 rsync 拷贝到 一.10三;

5、拷贝的同有时候,在 一.101 授权,使 壹.十三 有拉取 binlog 的权力(REPLICATION
SLAVE, REPLICATION CLIENT);

陆、待拷贝完结,修改 一.拾3 配置文件中的 server_id,注意不要和 壹.10二上的同样;

7、在 一.十叁 运营 MySQL
实例,注意安顿文件中的数据文件路线以及数额目录的权限;

八、进入 1.拾三 MySQL 实例,使用 SHOW SLAVE STATUS 检查从库状态,能够见到
Seconds_Behind_Master 在递减;

9、Seconds_Behind_Master 变为 0 后,表示同步达成,此时能够用
pt-table-checksum 检查 壹.拾一 和 一.10三的数据1致,但相比耗费时间,而且对主节点有影响,能够和开拓一齐进行数量一致性的表达;

10、大家应用同样的艺术,使 1.10四 变成 1.十三 的从库;

11、和研究开发沟通,除了做多少1致性验证外,还要求申明账号权限,防止业务迁走后走访出错;

1贰、此时,大家要做的正是将 1.十三 造成 贰.十壹的从库,具体的做法得以参照他事他说加以考察场景四;

一三、须求注意的是,壹.十三 的单双号配置须要和 一.拾壹 一致;

1四、做完上述手续,能够和研究开发和睦,把 一.拾一 的读写作业切到 一.十叁,把
一.10二 的读业务切到 一.十四。观察业务情况;

壹伍、假诺职业未有失常态,注明迁移成功。

三.伍,场景5:双主结构跨机房迁移

接下去看看双主结构跨机房迁移如何做。某项目由于容灾思考,使用了跨机房,选拔了双主结构,双边均能够写。因为磁盘空间难点,需求对
A 地的机械进行替换。筹算将主节点 一.十壹 和从节点 一.十二 同期迁移至新的机器
一.十三 和 壹.10肆,1.十三 充当主节点,壹.十四 充当从节点。B 地的 二.十一 和
二.10贰 保持不改变,但搬迁完成后,1.10三 和 二.拾一互为双主。架构图如图伍。因为是双主结构,两边同有的时候候写,借使要替换主节点,单方必须有节点甘休服务。

下图是 E 项目 MySQL 迁移架构图。

图片 10

图 伍 双主结构跨机房迁移架构图

切实的做法如下:

1、一.十叁 和 1.十肆 新建实例,搭建主从涉嫌,此时的主节点和从节点处于空载;

2、确认 1.十2 MySQL 状态(首要看 PROCESS LIST),注意观看 MASTECRUISER STATUS
不再变化。观察机器流量,确认精确后,截至 一.拾2 从节点的服务;

三、壹.十三 新建 MySQL 实例,建成之后,停止 MySQL 服务,并且将全体数据目录
mv 到其余地点做备份;

肆、将 一.拾二 的漫天 mysql 数据目录使用 rsync 拷贝到 一.拾3;

5、拷贝的还要,在 1.十一 授权,使 1.拾三 有拉取 binlog 的权位(REPLICATION
SLAVE, REPLICATION CLIENT);

六、待拷贝完毕,修改 一.拾3 配置文件中的 server_id,注意不要和 一.10二上的一样;

7、在 一.10三 运维 MySQL
实例,注意安顿文件中的数据文件路线以及数据目录的权柄;

8、进入 一.10三 MySQL 实例,使用 SHOW SLAVE STATUS 检查从库状态,能够看出
Seconds_Behind_Master 在递减;

9、Seconds_Behind_Master 变为 0 后,表示同步到位,此时得以用
pt-table-checksum 检查 一.101 和 1.十叁的数量一致,但相比耗费时间,而且对主节点有震慑,能够和支出一同举行数量1致性的求证;

十、我们选拔同样的艺术,使 壹.10四 变成 一.拾三 的从库;

1一、和研究开发调换,除了做多少一致性验证外,还要求表达账号权限,防止业务迁走后走访出错;

12、此时,我们要做的就是将 一.拾三 产生 二.十一的从库,具体的做法得以参谋场景四;

一三、需求专注的是,一.拾三 的单双号配置供给和 一.10一 1致;

14、做完上述手续,能够和研究开发和谐,把 一.拾一 的读写作业切到 一.10三,把
一.10二 的读业务切到 壹.十四。观望业务情况;

一五、假使事情并未有毛病,注脚迁移成功。

叁.陆,场景6:多实例跨机房迁移

接下去大家看看多实例跨机房迁移注明做。每台机器的实例关系,大家能够参见图陆。这次迁移的指标是为了做多少修复。在
二.1一七 上建构 7938 和 7939实例,替换在此之前数据相当的实例。因为作业的原因,有些库只在 A
地写,某个库只在 B 地写,所以存在共同过滤的意况。

下图是 F 项目 MySQL 架构图。

图片 11

图 陆 多实例跨机房迁移架构图

切切实实的做法如下:

1、壹.1一三 针对 7936 实例使用 innobackupex
做数据备份,注意必要钦定数据库,并且拉长 slave-info 参数;

二、备份完毕后,将压缩文件拷贝到 贰.1壹7;

三、2.1一7 制造数量目录以及布置文件涉及的连锁目录;

4、2.11柒 使用 innobackupex 恢复生机日志;

5、二.11柒 使用 innobackupex 拷贝数据;

陆、贰.1壹七修改配置文件,注意如下参数:replicate-ignore-db、innodb_file_per_table
= 1、read_only = 1、 server_id;

七、二.1壹柒 更换数据目录权限;

8、1.112 授权,使 2.117 有拉取 binlog 的权限(REPLICATION SLAVE,
REPLICATION CLIENT);

9、2.117 CHANGE MASTE TO 1.112,LOG FILE 和 LOG POS 参考
xtrabackup_slave_info;

10、贰.1一七 START SLAVE,查看从库状态;

1一、贰.11七 上建设构造 793玖 的法子类似,不过配置文件必要钦点replicate-wild-do-table;

1二、和支付一齐进行数量一致性的表达和验证账号权限,以免业务迁走后走访出错;

1三、做完上述手续,能够和研究开发和谐,把相应工作迁移到 二.117 的 793捌 实例和
793玖 实例。观看业务意况;

14、假使职业不荒谬,申明迁移成功。

三.陆,场景陆:多实例跨机房迁移

接下去我们看看多实例跨机房迁移注解做。每台机械的实例关系,咱们得以参照图陆。本次迁移的指标是为着做多少修复。在
二.1一七 上创造 7938 和 793九实例,替换在此之前数据10分的实例。因为业务的因由,某些库只在 A
地写,某个库只在 B 地写,所以存在共同过滤的情况。

下图是 F 项目 MySQL 架构图。

图片 12

图 陆 多实例跨机房迁移架构图

切切实实的做法如下:

一、壹.1一3 针对 7936 实例使用 innobackupex
做数据备份,注意需求内定数据库,并且增加 slave-info 参数;

2、备份完毕后,将压缩文件拷贝到 二.1一柒;

三、2.1壹柒 成立数量目录以及陈设文件涉及的相关目录;

④、贰.1一7 使用 innobackupex 苏醒日志;

5、二.1一7 使用 innobackupex 拷贝数据;

陆、二.1①七修改配置文件,注意如下参数:replicate-ignore-db、innodb_file_per_table
= 1、read_only = 1、 server_id;

7、②.1一7 退换数据目录权限;

8、1.112 授权,使 2.117 有拉取 binlog 的权限(REPLICATION SLAVE,
REPLICATION CLIENT);

9、2.117 CHANGE MASTE TO 1.112,LOG FILE 和 LOG POS 参考
xtrabackup_slave_info;

拾、二.1一7 START SLAVE,查看从库状态;

11、贰.117 上创设 793玖 的章程类似,不过配置文件必要钦点replicate-wild-do-table;

12、和支付一齐实行数量一致性的证实和验证账号权限,防止业务迁走后走访出错;

13、做完上述手续,能够和研究开发和煦,把相应事业迁移到 2.1壹7 的 7938 实例和
793玖 实例。观望业务情形;

1肆、假设专门的学问未有失常态,表明迁移成功。

四、注意事项


介绍完差异景色的动员搬迁方案,需求专注如下几点:

一、数据库迁移,借使涉嫌事件,记住主节点展开 event_scheduler 参数;

2、不管什么样景况下的搬迁,都要随时关切服务器状态,比方磁盘空间,网络抖动;别的,对职业的频频监察和控制也是供给的;

3、CHANGE MASTELAND TO 的 LOG FILE 和 LOG POS
切记不要找错,要是钦定错了,带来的结局正是数据不一样等;

4、推行脚本不要在 $HOME 目录,记住在数额目录;

伍、迁移职业得以运用脚本做到自动化,但不用弄巧成拙,任何脚本都要经过测试;

六、每实行一条命令都要三思和后行,各类命令的参数含义都要搞精通;

七、多实例境况下,关闭 MySQL 采纳 mysqladmin
的样式,不要把正在使用的实例关闭了;

捌、从库记得把 read_only = 一 增加,那会制止过多主题素材;

玖、每台机械的 server_id 必须确定保障不均等,不然会出现1块卓殊的情况;

十、正确配置 replicate-ignore-db 和 replicate-wild-do-table;

1一、新建的实例记得把 innodb_file_per_table 设置为
1,上述中的部分场景,因为以前的实例此参数为 0,导致 ibdata1过大,备份和传导都消耗了广大时刻;

1二、使用 gzip 压缩数量时,注意压缩完毕后,gzip 会把源文件删除。

一三、所有的操作务必在从节点仍然备节点操作,要是在主节点操作,主节点很恐怕会宕机;

1四、xtrabackup 备份不会锁定 InnoDB 表,但会锁定 MyISAM
表。所以,操作在此以前记得检查下当前数据库的表是或不是有应用 MyISAM
存款和储蓄引擎的,假设有,要么单独管理,要么改动表的 Engine;

肆、注意事项


介绍完分歧景色的动迁方案,须求注意如下几点:

一、数据库迁移,假使提到事件,记住主节点伸开 event_scheduler 参数;

二、不管什么样景况下的动员搬迁,都要每30日关注服务器状态,例如磁盘空间,互连网抖动;此外,对职业的接踵而来监察和控制也是必需的;

三、CHANGE MASTE奇骏 TO 的 LOG FILE 和 LOG POS
切记不要找错,要是钦点错了,带来的结果正是数额不平等;

四、试行脚本不要在 $HOME 目录,记住在数码目录;

5、迁移专业得以行使脚本做到自动化,但并非弄巧成拙,任何脚本都要透过测试;

陆、每实施一条命令都要三思和后行,各个命令的参数含义都要搞精晓;

7、多实例情状下,关闭 MySQL 选取 mysqladmin
的款式,不要把正在选用的实例关闭了;

捌、从库记得把 read_only = 壹 抬高,那会防止过多标题;

九、每台机器的 server_id 必须保险不雷同,不然会并发壹道格外的情事;

十、准确配置 replicate-ignore-db 和 replicate-wild-do-table;

1一、新建的实例记得把 innodb_file_per_table 设置为
一,上述中的部分场景,因为事先的实例此参数为 0,导致 ibdata1过大,备份和传导都消耗了过多时日;

1二、使用 gzip 压缩数量时,注意压缩完结后,gzip 会把源文件删除。

一三、全体的操作务必在从节点依然备节点操作,假设在主节点操作,主节点非常大概会宕机;

14、xtrabackup 备份不会锁定 InnoDB 表,但会锁定 MyISAM
表。所以,操作以前记得检查下当前数据库的表是或不是有利用 MyISAM
存款和储蓄引擎的,假使有,要么单独管理,要么更换表的 Engine;

五、技巧


在 MySQL 迁移实战中,有如下技能能够采用:

一、任何迁移 LOG FILE 以 relay_master_log_file(正在同步 master 上的
binlog 日志名)为准,LOG POS 以 exec_master_log_pos(正在同步当前
binlog 日志的 POS 点)为准;

二、使用 rsync 拷贝数据,能够组合 expect、nohup 使用,绝对是卓越组合;

三、在动用 innobackupex 备份数据的还要能够选拔 gzip 进行削减;

四、在利用 innobackupex 备份数据,能够加上 –slave-info
参数,方便做从库;

五、在动用 innobackupex 备份数据,能够增进 –throttle 参数,限制
IO,收缩对工作的熏陶。仍是能够加上 –parallel=n
参数,加快备份,但要求留意的是,使用 tar 流压缩,–parallel 参数无效。

陆、做多少的备份与还原,能够把待办事项列个清单,画个流程,然后把需求奉行的通令提前计划好;

七、本地火速拷贝文件夹,有个不利的艺术,使用 rsync,加上如下参数:-avhW
–no-compress –progress;

捌、 区别分区之间急忙拷贝数据,能够应用
dd。可能用二个更可信赖的点子,备份到硬盘,然后放到服务器上。异地还会有更绝的,直接快递硬盘。

五、技巧


在 MySQL 迁移实战中,有如下技能能够选取:

一、任何迁移 LOG FILE 以 relay_master_log_file(正在联合 master 上的
binlog 日志名)为准,LOG POS 以 exec_master_log_pos(正在同步当前
binlog 日志的 POS 点)为准;

二、使用 rsync 拷贝数据,能够整合 expect、nohup 使用,相对是上佳组合;

3、在动用 innobackupex 备份数据的同不经常间能够接纳 gzip 进行削减;

肆、在利用 innobackupex 备份数据,能够加上 –slave-info
参数,方便做从库;

伍、在动用 innobackupex 备份数据,能够增进 –throttle 参数,限制
IO,减弱对职业的熏陶。还能加上 –parallel=n
参数,加速备份,但须要留意的是,使用 tar 流压缩,–parallel 参数无效。

陆、做多少的备份与还原,能够把待办事项列个清单,画个流程,然后把要求实行的指令提前筹划好;

七、本地快速拷贝文件夹,有个正确的法子,使用 rsync,加上如下参数:-avhW
–no-compress –progress;

八、 差别分区之间非常的慢拷贝数据,能够应用
dd。大概用1个更可靠的措施,备份到硬盘,然后嵌入服务器上。异地还恐怕有更绝的,直接特快专递硬盘。

六、总结


正文从为何要搬迁讲起,接下去讲了迁移方案,然后解说了区别场景下的迁徙实战,最终交给了注意事项以及实战本领。归咎起来,也就以下几点:

率先、迁移的目的是让工作牢固持续地运营;

其次、迁移的主导是怎么一而再主从同步,大家供给在区别服务器和见仁见智专门的学问之间找到方案;

其三、业务切换须求思量区别 MySQL
服务器之间的权柄难题;需求牵挂不一样机器读写分离的次第以及主从关系;需求思考跨机房调用对业务的熏陶。

读者在实践迁移的经过中,能够参考此文提供的笔触。但怎么样保障各样操作不易精确地运维,还索要不假思考。

说句题外话,「证明自身有力量最珍视的少数就是让一切都在本人的掌控之中。

六、总结


本文从为何要迁移讲起,接下去讲了搬迁方案,然后疏解了分裂场景下的搬迁实战,最后交给了注意事项以及实战本领。归结起来,也就以下几点:

第一、迁移的目标是让工作稳固持续地运转;

其次、迁移的着力是怎么三番五次主从同步,大家须要在不一样服务器和见仁见智专业之间找到方案;

其三、业务切换须要思量分裂 MySQL
服务器之间的权限难题;供给思虑分歧机器读写分离的次第以及主从关系;要求思量跨机房调用对业务的影响。

读者在施行迁移的过程中,可以参照此文提供的笔触。但怎么保险每一个操作不易精确地运转,还供给深思熟虑。

说句题外话,「证明自身有本事最器重的少数正是让1切都在自个儿的掌握控制之中。

http://www.bkjia.com/Mysql/1059271.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/1059271.htmlTechArticle不同场景下 MySQL 的迁移方案,场景mysql迁移方案
本文内容 为何要迁移 MySQL 迁移方案大概浏览 MySQL 迁移实战 注意事项 技能计算 一、为什么…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图