非中断业务数据库迁移一例
admin
2023-05-03 10:22:51
0

下面是某业务库的迁移过程, 从Source Master/Slave集群迁移至Target MHA集群.

非中断业务数据库迁移一例


前期准备, 配置数据从Source Master复制到Target Master, 即Target Master成为Source Master的Slave(若Target Master是新库的话, 还可添加replicate-do-db=name过滤条件).


迁移开始时, 在Source Master上执行flush no_write_to_binlog tables, 和flush tables with read lock.


在Target Master上查看延时为0时, 执行flush binary logs. 然后stop slave, 和reset slave all, 清除Source Master至Target Master的复制关系. 


再后, 依次重启各应用节点, 切换至Target Master新数据源.


最后在Source Master上unlock tables, 至此迁移结束.



该过程中的主角flush tables with read lock, 其含义为Closes all open tables and locks all tables for all databases with a global read lock, 即在MySQL数据库Server层, 获取一个全局读锁.


那么配角flush no_write_to_binlog tables, 其含义为Closes all open tables, forces all tables in use to be closed, 起到加速flush tables with read lock操作完成的作用.



在数据库管理的过程中, 经常会见到flush tables with read lock的身影.


如mysqldump备份时, 通过general log会看到如下输出.

mysqldump --login-path=mytest --default-character-set=utf8mb4 --single-transaction --routines --triggers --events --quick --force --master-data=2 --hex-blob --all-databases > full.sql


25 Query FLUSH /*!40101 LOCAL */ TABLES

25 Query FLUSH TABLES WITH READ LOCK

25 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

25 Query START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

25 Query SHOW VARIABLES LIKE 'gtid\_mode'

25 Query SELECT @@GLOBAL.GTID_EXECUTED

25 Query SHOW MASTER STATUS

25 Query UNLOCK TABLES


又如xtrabackup备份时, 也可见类似日志.

xtrabackup --defaults-file=/etc/my.cnf --user=abc --password=xyz --socket=/3306/mysql.sock --target-dir=./pxb_full --backup


34 QuerySET SESSION lock_wait_timeout=31536000

34 QueryFLUSH NO_WRITE_TO_BINLOG TABLES

34 QueryFLUSH TABLES WITH READ LOCK

34 QuerySHOW MASTER STATUS

34 QuerySHOW VARIABLES

34 QueryFLUSH NO_WRITE_TO_BINLOG ENGINE LOGS

34 QueryUNLOCK TABLES


MHA在线手动切换时, 也用到了flush tables with read lock, 详见如下输出.

masterha_master_switch --conf=/etc/masterha/app2/app2.cnf --master_state=alive --orig_master_is_new_slave

...

It is better to execute FLUSH NO_WRITE_TO_BINLOG TABLES on the master before switching. Is it ok to execute on 192.168.4.33(192.168.4.33:3307)? (YES/no): yes

Wed Feb 28 21:58:41 2018 - [info] Executing FLUSH NO_WRITE_TO_BINLOG TABLES. This may take long time..

Wed Feb 28 21:58:41 2018 - [info]  ok.

...

Wed Feb 28 21:58:43 2018 - [info] Locking all tables on the orig master to reject updates from everybody (including root):

Wed Feb 28 21:58:43 2018 - [info] Executing FLUSH TABLES WITH READ LOCK..

Wed Feb 28 21:58:43 2018 - [info]  ok.

相关内容

热门资讯

美财长贝森特专机先期抵达北京 13日下午,在特朗普抵达前,美国财长贝森特的专机先期飞抵北京,凤凰卫视记者拍摄到了专机降落前的画面。
鸿蒙版荣耀商城上架华为应用市场... PChome 5月13日消息,现荣耀商城App已正式上架华为鸿蒙应用市场,版本号26.4.0.0。 ...
员工摸鱼混日子怎么解决?推荐先... 很多企业都遇到同一个难题:员工上班消极懈怠、敷衍应付,上班时间闲散摸鱼,正事拖着不做,任务应付交差,...
专访月泉仿生胡喆祺:深耕灵巧手... 当下,人形机器人产业正迎来从技术验证向规模化落地跃迁的关键窗口期,而灵巧手作为具身智能的 “最后一厘...
腾讯控股2026财年第一财季净... IT之家 5 月 13 日消息,腾讯控股今日发布 2026 财年第一财季(2026 年 1 月 1 ...
升任华为轮值董事长,为什么是汪... 导语:鲜少出现在大众视野里的汪涛,接棒华为轮值董事长,出乎很多人意料,但这背后,既是其个人能力与长期...
加盟商参加中通快运酒局后身亡,... 5月11日,新黄河客户端以《加盟商参加中通快运酒局后身亡》为题,报道了代理加盟商纪某某在连续参加两场...
5月全球航班计划已砍掉1.3万... 作者 | 高雅2026年的夏季出行季正在中东局势的余震中拉开帷幕。对于全球旅客而言,这一季的机票订单...
凯特王妃将赴意大利,系病情缓解... 【环球网报道】据英国广播公司(BBC)、美联社等媒体报道,英国威尔士王妃凯特将于13日重返国际舞台,...
河南拟发行392.99亿元地方... 【大河财立方消息】 5月13日,河南省财政厅披露2026年河南省政府一般债券(六至七期)、专项债券(...