DBeaver 数据迁移怎么做:3步完成跨数据库同步
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
做换库的人都有过这种经历:MySQL 里一堆表要整体搬去 PostgreSQL,手工导脚本再导入,光是核对表名和字段类型就能耗掉一上午。DBeaver 数据迁移功能把这件事压缩成了向导式操作:它是一款免费、开源的通用数据库管理工具和 SQL 客户端内置的跨数据库同步能力,覆盖 50 多种数据库,源端和目标端可以来自完全不同的产品。
📦 能力速览:这个功能到底能做什么
| 能力 | 说明 |
|---|---|
| 多源多目标 | 同一个工作区挂多个连接,源端和目标端可以分别指定不同的库 |
| 映射配置 | 支持表名、字段名的映射规则,目标表结构不存在时可自动生成,映射结果可先预览 |
| 批量迁移 | 勾选多张表或整个 schema 一次性迁移,不用逐表操作 |
| 任务保存 | 迁移方案可保存为任务,之后在任务视图中重复执行,便于周期性同步 |
| 导入/导出双模式 | 向导同时注册为导出和导入向导,既能库到库,也能结果集到文件 |
| 加载策略可调 | 批量插入大小、主键冲突处理、是否清空目标表、是否禁用外键校验均可配置 |
核心流程:连好两个库之后做什么
整条主线只有五步,按顺序走即可:
- 建好两条连接并测通分别创建源库和目标库连接,建议先在目标库上手动建一个空表,确认写入权限没问题。
- 打开数据传输向导在数据库导航树中右键源表节点,或在结果集视图右键,选择导出数据,向导随之打开。
- 选定对象与目标在向导中勾选要迁移的表和查询,为目标端选择连接及落库的表;没有目标表时可让工具生成建表结构。
- 调整关键设置设置批量插入行数、遇到重复主键时的处理方式(替换、忽略或报错),必要时勾选清空目标表。
- 在确认页执行最后一页会逐条列出"源容器 → 源对象 → 目标容器 → 目标对象"的对应关系,核对无误后开始传输。
🛠 进阶用法:遇到什么问题,就怎么做
同一份迁移要反复跑→ 把方案保存成任务。向导支持将迁移配置保存为任务,之后打开任务视图直接重跑,适合每日例行同步;配置文件由DataTransferTaskConfigurator负责维护,团队成员之间也可以共享这套配置。
大表迁移慢、中途超时→ 组合使用三项设置:调大批量插入行数、勾选批量加载(Bulk Load)、迁移前清空目标表并暂时禁用外键校验。大文本和日期时间字段建议先单独小批量验证,再全量执行,避免一次性占满内存。
两边表结构对不上→ 不要直接硬迁。先打开映射和结构配置对话框(ConfigureMetadataStructureDialog所在模块),逐列确认类型转换,用映射预览功能过一遍结果,有差异的列单独调整。
🩺 排错小抄
| 现象 | 原因 | 处理 |
|---|---|---|
| 传输中途连接断开 | 网络抖动或连接超时设置过短 | 在连接属性中调大超时时间,把迁移拆成小批次 |
| 目标表中文变乱码 | 源库和目标库字符集不一致 | 两边统一为 UTF-8,并在连接配置中核对编码参数 |
| 报主键/唯一键冲突 | 目标表已存在同键数据 | 在加载设置里改为替换或忽略重复行,或迁移前清空目标表 |
更多说明见 docs/ 目录,数据迁移模块的完整源码位于 plugins/org.jkiss.dbeaver.data.transfer.ui/。换库、备份和多库汇总这三个场景,照着上面的流程走一遍就能落地。
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考