温馨提示×

ubuntu oracle怎么迁数据

小樊
53
2026-10-25 08:56:31
栏目: 云计算

在 Ubuntu + Oracle 环境下迁移数据,常见有几种方式,取决于你要迁移的是整库、用户、还是部分表。下面按最常用场景给你总结。


一、整机/整库迁移(最推荐:Data Pump)

适用场景

  • 从一台 Ubuntu Oracle 迁移到另一台 Ubuntu Oracle
  • 同版本或跨小版本(11g→12c→19c)

1️⃣ 源库导出

expdp system/password \
  schemas=YOUR_SCHEMA \
  directory=DATA_PUMP_DIR \
  dumpfile=schema.dmp \
  logfile=exp.log

查看目录:

SELECT * FROM dba_directories;

2️⃣ 拷贝文件

scp schema.dmp oracle@目标机:/u01/app/oracle/dpdump/

3️⃣ 目标库导入

impdp system/password \
  schemas=YOUR_SCHEMA \
  directory=DATA_PUMP_DIR \
  dumpfile=schema.dmp \
  logfile=imp.log

✅ 优点:稳定、支持大库
❌ 缺点:需要 Oracle 用户权限


二、同版本快速迁移(RMAN 备库)

适用场景

  • 整库迁移
  • 目标机 Oracle 版本完全一致

步骤简述

  1. 源库 RMAN 全备
  2. 拷贝备份到目标机
  3. 目标机恢复控制文件 + restore + recover

适合 DBA 级迁移,不太适合应用层人员。


三、只迁表数据(轻量方式)

1️⃣ exp / imp(老方式)

exp user/pass file=data.dmp tables=table1,table2
imp user/pass file=data.dmp

2️⃣ SQL * Loader(文本数据)

sqlldr user/pass control=test.ctl

3️⃣ 应用层导出

  • CSV
  • JSON
  • 程序批量 INSERT

四、Docker / 云环境迁移注意

如果是 Oracle in Docker:

docker cp oracle_container:/u01/dump/schema.dmp .
docker cp schema.dmp new_oracle:/u01/dump/

五、常见问题

✅ 字符集不一致 → 导入报错
✅ 表空间不存在 → 先建表空间
✅ 用户不存在 → 先建用户


六、你可以告诉我

为了给你最准确方案,请补充:

  1. Oracle 版本(11g / 12c / 19c?)
  2. Ubuntu 版本
  3. 迁移范围(整库 / 用户 / 表)
  4. 是否同机房 / 跨云

我可以直接给你可执行命令脚本。

0 踩