尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

DBeaver 数据迁移实战指南:7 步搞定跨数据库搬家

DBeaver 数据迁移实战指南:7 步搞定跨数据库搬家 DBeaver 数据迁移实战指南7 步搞定跨数据库搬家【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver把 MySQL 的数据搬进 PostgreSQL或者从 Oracle 倒进 SQL Server——这种跨数据库迁移的活儿手动写脚本太累买商业工具太贵。DBeaver 数据迁移功能恰好补上这个空档一个向导式的数据传输工具选个表、选个目标、点执行剩下的它自己扛。DBeaver 社区版本身就免费提供这套数据传输能力MySQL、PostgreSQL、Oracle、SQL Server、ClickHouse 这些主流引擎之间搬家都能覆盖下面按实战顺序带你走一遍。建好两头连接权限和网络先过关迁移能走多远取决于准备做得多细。连接、权限、网络三样一样都不能少。三步建好源库与目标库连接打开左侧的数据库导航器点新建连接选数据库引擎依次填主机、端口、库名和账号密码最后点测试连接看到成功提示才算数。源库、目标库各建一条缺驱动时 DBeaver 会提示下载装好再测一次。对照权限清单避免迁移中途卡壳权限不足最讨厌的地方是它往往不在开工时爆发而是在写到一半时炸出来。开工前把这张表过一遍端最低权限说明源库SELECT只读即可账号千万别给写权限目标库CREATE TABLE、INSERT若映射到已存在的表至少要有 INSERT一条测试 SQL 验网络连通性连接建好后在两个连接上分别打开SQL 编辑器各跑一条SELECT 1。两边都能秒回说明链路没问题一边卡住就先查防火墙、安全组和连接超时设置别带着病上路。打开数据传输向导入口在哪怎么配连接就绪后右键导航器里的源表在弹出菜单选数据传输向导就启动了。整个流程分几步输入对象 → 加载设置 → 表结构映射 → 列映射 → 确认执行。挑对象整表搬还是带条件搬输入对象页把要迁的表勾上可以一次多选。想让 DBeaver 只导满足条件的数据别选表而是点添加查询自己写一条 SELECT 把过滤条件带上——这是后面做增量迁移的关键动作记住它。表结构映射让 DBeaver 自动建目标表进入表结构映射页选目标库DBeaver 会根据源表自动生成目标表 DDL。目标有三种摆法新建同名表默认行为自动生成后直接复用改表名或 schema在映射行里直接编辑映射到已存在的表把目标指定成现成的表只灌数据不建表映射到已有表时右侧能预览将要执行的 DDL瞄一眼确认没坑再往下走。列映射与类型转换三个状态 一个转换器列映射界面把源列和目标列排成对照表每列的映射状态有三种existing目标已有该列、new目标将新建、skip这列不迁。用 Delete 键可以快速取消某列的迁移。类型方面MySQL 的datetime到 PostgreSQL 的timestamp这类常规转换DBeaver 内置的智能映射会自动处理不用你操心。遇到特殊需求——想把某列替换成固定常量、套个表达式、或者把空串统一改成 NULL——点该列的转换器就能单独配不需要动全局规则。全局层面还有映射规则可设新表名的大小写策略、空格替换成下划线之类在数据传输高级选项里统一配置以后每次迁移都生效。批量与错误策略决定快慢和稳狠的三个开关批量提交和 fetch size 怎么调到最快两个参数最影响速度Do Commit after row insert写入目标库多少行提交一次默认 10000。先按默认跑一遍再试 5000 和 50000哪个吞吐高用哪个Fetch size源端一次从服务器拉多少行默认也是 10000。表特别大、网络往返开销明显时往小调反而更顺别盲目拉满内存和锁范围都会跟着涨小表大表各测一轮最稳。错误容忍度忽略重复行还是逐行看错两个高频开关Ignore duplicate rows errors勾选后主键冲突的行直接跳过整活不中断增量场景强烈推荐Disable batches默认批量导入速度优先但出错只有笼统提示排障时勾上它逐行写入、每个错误都摊开给你看代价是变慢目标库支持的话开启多行 insert批量写入还能再提一截性能。全量、增量、定时三种搬法各适合什么局面全量迁移一次搬空先清场再灌数据加载设置里有个Truncate target table(s) before load开关勾选后先清空目标表再写入首次全量搬家用它最干净。它不可逆执行前 DBeaver 会弹确认框看清表名再点确定。增量迁移WHERE 条件 忽略重复行只搬变化的数据增量不需要什么玄学配置在提取端改用添加查询把条件写进 WHERE比如按更新时间只捞最近变更的行写入端勾上忽略重复行撞了主键的旧行自动跳过。两头一夹跑的就是纯增量。保存为任务让 DBeaver 替你定时搬把配好的迁移保存成任务交给 DBeaver 的任务管理器设好执行周期就行。每天凌晨自动追一次增量报表库常年保鲜人不用盯。盯进度排故障报错先看这三类迁移运行时进度窗口会持续刷已完成行数、速度和预计剩余时间。如果不想在启动时先全表 count 一遍大表这步本身就慢可以关掉Query row count before performing export代价是进度条变成不确定模式。权限不足回查建表权目标端一上来就报建表失败九成是账号没有 CREATE TABLE 权限。回去找 DBA 补权限或者把映射改成指向你有权写入的 schema。网络超时调大超时或保活大表跑到一半连接断了多半是链路中间设备把空闲连接掐了。调大连接的超时参数同时考虑源端打开新连接读取数据这类保活选项让连接别长时间挂着没动静。类型不兼容换映射或上转换器某列报类型转换错误说明源和目标那两列的类型 DBeaver 没把握。打开列映射界面看这一对列手动指定目标类型或者配个值转换器兜底再单独重跑这张表。迁移收尾三关核验清单记录数对账一行 SQL 的事源端、目标端各跑一条SELECT COUNT(*)总数必须对得上。对不上先别慌看看是不是增量条件、skip 掉的列、或者重复行被跳过造成的把差异定位到具体哪张表。内容抽检重点盯三类字段随机抽几条记录逐字段比长文本有没有截断、日期时间有没有时区偏移、高精度数字有没有丢精度。这三类是跨库迁移的重灾区过一遍就安心了大半。业务验证下游查询真跑一遍最后挑一两个下游报表或业务查询在新库上真跑一次逻辑能通这次数据库搬家才算真正落地。迁移跑顺之后想继续深挖 DBeaver 的导入导出细节可以翻 plugins/org.jkiss.dbeaver.data.transfer/ 模块里的源码CSV、JSON、SQL 脚本等各种导出格式的实现都在那。搬完第一次后面的迁移对你来说就只是换个目标库的事。【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表