在 Ubuntu + Oracle 环境下迁移数据,常见有几种方式,取决于你要迁移的是整库、用户、还是部分表。下面按最常用场景给你总结。
expdp system/password \
schemas=YOUR_SCHEMA \
directory=DATA_PUMP_DIR \
dumpfile=schema.dmp \
logfile=exp.log
查看目录:
SELECT * FROM dba_directories;
scp schema.dmp oracle@目标机:/u01/app/oracle/dpdump/
impdp system/password \
schemas=YOUR_SCHEMA \
directory=DATA_PUMP_DIR \
dumpfile=schema.dmp \
logfile=imp.log
✅ 优点:稳定、支持大库
❌ 缺点:需要 Oracle 用户权限
适合 DBA 级迁移,不太适合应用层人员。
exp user/pass file=data.dmp tables=table1,table2
imp user/pass file=data.dmp
sqlldr user/pass control=test.ctl
如果是 Oracle in Docker:
docker cp oracle_container:/u01/dump/schema.dmp .
docker cp schema.dmp new_oracle:/u01/dump/
✅ 字符集不一致 → 导入报错
✅ 表空间不存在 → 先建表空间
✅ 用户不存在 → 先建用户
为了给你最准确方案,请补充:
我可以直接给你可执行命令脚本。