温馨提示×

ubuntu oracle怎样导入数据

小樊
33
2026-09-10 18:56:30
栏目: 云计算

Ubuntu + Oracle 环境下,“导入数据”通常有以下几种常见场景。我先按最常用方式给你讲,再补充不同情况。


一、使用 impdp(数据泵导入,推荐 ✅)

1️⃣ 准备工作

确保你已经:

  • 安装了 Oracle(如 19c)
  • .dmp 文件
  • 知道 Oracle 的 ORACLE_HOMESID

切换为 oracle 用户:

sudo su - oracle

设置环境变量:

export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

2️⃣ 创建目录对象(如果没创建)

sqlplus / as sysdba

CREATE OR REPLACE DIRECTORY dpdir AS '/u01/dump';
GRANT READ, WRITE ON DIRECTORY dpdir TO your_user;
EXIT;

.dmp 文件放到 /u01/dump


3️⃣ 执行导入

impdp your_user/your_password \
  DIRECTORY=dpdir \
  DUMPFILE=xxx.dmp \
  LOGFILE=import.log

常见参数:

REMAP_SCHEMA=old_user:new_user
REMAP_TABLESPACE=old_ts:new_ts
TABLE_EXISTS_ACTION=REPLACE

二、使用 imp(老式导入)

适用于老版本 .dmp

imp user/pass@orcl file=xxx.dmp full=y

⚠️ 不推荐新项目使用


三、导入 SQL 文件

sqlplus user/pass@orcl @xxx.sql

或从 SQL 中:

@/path/to/xxx.sql;

四、从 CSV 导入(外部表 / SQL*Loader)

方法 1:SQL*Loader

sqlldr user/pass control=xxx.ctl

方法 2:外部表(适合大文件)


五、常见错误

  • ORA-39002:目录没权限
  • ORA-12162:SID 没设置
  • insufficient privileges:用户权限不足

六、你可以告诉我

为了更精准帮你,我需要知道:

  1. Oracle 版本(11g / 12c / 19c?)
  2. 数据格式(.dmp / .sql / .csv
  3. 是整库、用户还是单表导入?

我可以直接给你完整可复制命令

0