目录
一、前言
二、数据迁移场景
2.1 整库迁移
2.2 表数据迁移
2.3 mysql版本变更
2.4 mysql数据迁移至其他存储介质
2.5 自建数据到上云环境
2.6 mysql数据到其他国产数据库
三、数据库物理迁移实施方案
3.1 数据库物理迁移概述
3.1.1 物理迁移适用场景
3.1.2 物理迁优缺点
3.2 物理迁移之复制数据文件
3.2.1 数据文件复制概述
3.2.2 在第一个机器创建数据库
3.2.3 将第一个机器上的文件复制进行复制
3.3 物理迁移之工具迁移
3.3.1 删除IP2上的数据库
3.3.2 将IP1上面的数据库导出
3.3.3 将sql文件导入到IP2中
四、数据库逻辑迁移实施方案
4.1 物理迁移的缺点
4.2 逻辑迁移特点
4.2.1 逻辑迁移优缺点
4.2.2 逻辑迁移需要注意的问题
4.3 数据库逻辑备份与恢复
4.3.1 执行数据库备份命令
4.3.2 拷贝sql文件
4.3.3 恢复备份数据
五、使用程序迁移实施方案
5.1 业务案例需求与实现1
5.1.1 使用canal完成数据迁移
5.1.2 canal实现示例代码
5.2 业务案例需求与实现2
5.2.1 flink-cdc实现原理与思路
5.2.2 flink-cdc实现关键代码
六、中间件实现离线数据迁移
6.1 canal实现数据迁移或同步
6.1.1 使用canal实现数据迁移或同步
6.2 datax实现数据迁移
6.2.1 datax简介
6.2.2 datax特点
6.2.3 适用场景
6.2.4 datax实现数据迁移流程
6.2.5 datax数据迁移的模拟配置
七、客户端工具离线数据迁移
7.1 navicat
7.2 navicat迁移mysql数据到postgresql
7.2.2 迁移配置
7.2.3 选择迁移的表
7.2.4 勾上遇到错误时继续
7.3 kettle
7.3.1 kettle概述
7.3.2 kettle数据迁移使用流程
八、写在文末
一、前言
在生产实践中,因为某些原因,不少同学通过mysqldump命令对mysql数据库或数据表进行过备份、数据同步或数据迁移操作,事实上,涉及到数据库的迁移,同步场景还有很多,比如下面这些场景:
- 不可抗力的因素,数据库所在服务器被回收,或者服务器磁盘损坏,数据库必须得迁移?
- 单点数据库读写压力越来越大,需要扩展一个或多个节点分摊读写压力?
- 单表数据量太大了,需要进行水平或垂直拆分怎么搞?
- 数据库需要从mysql迁移到其他数据库,比如PG,OB...
以上的这些场景,对于不少同学来讲,或多或少的在所处的业务中可能会涉及到,没有碰到还好,一旦发生了这样的问题,该如何处理呢?本篇将用一定的篇幅结合生产实践经验来详细探讨下。