数据迁移:如何保证在不停机的情况下平滑的迁移数据

1. 引言

数据迁移是一个常见的需求,比如以下的场景,我们都需要进行数据迁移。

  1. 大表修改表结构
  2. 单表拆分进行分库分表、扩容
  3. 系统重构,使用新的表结构来存储数据

2. 迁移准备

2.1 备份工具

2.1.1 mysqldump

mysqldump 是 MySQL 自带的用于备份和恢复的命令行工具。它允许用户导出 MySQL 数据库的结构、数据以及表之间的关系,以便在数据库发生问题时进行恢复。它是一个逻辑备份工具,导出的内容是一条条 SQL。

mysqldump 使用介绍

2.1.2 XtraBackup

它使用了 InnoDB 存储引擎的数据备份技术,支持增量备份和恢复,并且支持多主机备份和恢复。它是一个物理备份工具,相当于直接复制 InnoDB 的底层存储文件。

2.2 innodb_autoinc_lock_mode

innodb_autoinc_lock_mode 是 InnoDB 引擎里面控制自增主键生成策略的参数,它有三个取值。

  • 0:使用表自增锁,在 INSERT 语句结束之后才会释放锁;
  • 1:使用表自增锁,如果是普通的 INSERT INTO VALUE 或者 INSERT INTO VALUES 语句,申请了主键就释放锁,而不是整个 INSERT 语句执行完毕才释放。如果是 INSERT SELECT 等语句,因为无法确定究竟要插入多少行,所以都是整个 INSERT 语句执行完毕才释放。
  • 2:使用表自增锁,所有的语句都是申请了主键就立刻释放。

在执行 INSERT INTO VALUES 的时候,不管插入多少行,都只申请一次主键,一次申请够,这些主键必然是连续的,我们可以从第一个 ID 推测出全部 ID。

CREATE TABLE `kkk` (
  `
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值