dmp文件的数据导入到oracle数据库中

本文详细介绍了如何将DMP文件中的数据导入Oracle数据库的过程。包括安装Oracle及SQLdeveloper,创建表空间、用户,设置权限,创建DUMP目录,以及使用数据泵进行数据导入的方法。

dmp文件的数据导入到oracle数据库中

做甲方的项目,甲方使用的oracle数据库,将数据导出成records.dmp格式给我们。为了存储数据,我们要先安装一个oracle数据库,并将dmp文件中的数据导入进来。

另外,我们以知甲方的表空间名称hdr,用户名称是rdr;

0. 安装Oracle数据库及其工具

第一次使用Oracle,不是很会,看[我要自学网Oracle教程]快速入门,熟悉表空间的概念。只要把前两章快速过一遍就好。

安装Oracle数据库,和SQL developer工具

参照这里的教材安装 http://www.51zxw.net/show.aspx?id=59962&cid=616

1. 导入数据

1.0. 版本检查

用记事本打开dmp工具,查看版本号是不是与我们安装的版本号一致,如果不一致,请联系对方修改版本号。

1.1. 创建用于存储的表空间和表结构

首先,创建表空间, 使用SQL plus工具用system账号登陆数据库,输入如下命令:

SQL> CREATE TABLESPACE hdr(表空间名字)
 DATAFILE 'C:\app\autol\oradata\orcl\hdr.dbf'(表空间存储路径)
 size 50m (初始大小)
 autoextend on; (自动扩展)

接下来创建一个用户,同时给该用户默认为hdr表空间

SQL> CREATE USER rdr (用户名)
IDENTIFIED BY password (密码)
DEFAULT TABLESPACE hdr (上一步创建的表空间)
TEMPORARY TABLESPACE temp; (临时表空间,写temp即可)

给rdr用户一定权限

SQL> GRANT CONNECT TO rdr;
SQL> GRANT RESOURCE TO rdr;
SQL> GRANT dba TO rdr;

1.2. 创建一个DUMP目录用于存放dmp文件

dmp目录必须要放在特定的目录下,首先在C:\盘新建dump文件夹,然后把records.dmp放进去;

继续在system账号登陆的SQL plus命令行里输入如下指令

SQL>CREATE DIRECTORY dump_dir as 'c:\dump';

dump_dir是我们给’c:\dump’的昵称,数据导入时会用到,使用如下命令查看dump_dir是否真的创建好了

SQL>SELECT * FROM dba_directories;
SQL>GRANT read, write on DIRECTORY dump_dir to rdr;

如果显示结果里面有DUMP_DIR这个昵称就说明创建好了。

1.3. 用数据泵导入数据了

准备工作都做好了,接下来就可以把dmp中的数据导入进来了。以管理员身份打开CMD命令行,输入如下命令:

$ impdp rdr/password@orcl DIRECTORY=dump_dir DUMPFILE=records.dmp Full=y

执行这个命令就会导入数据了。
导入成功

1.4 查看数据

用sql developer工具使用rdr账号登陆就可以看到数据了。

最后使用sql developer工具把需要的表导出成csv就可以给大家用来做数据分析了。

### 三、DMP文件导入Oracle数据库的步骤 导入DMP文件Oracle数据库的过程主要依赖于`impdp`(Data Pump Import)工具,这是Oracle推荐使用的导入工具,尤其适用于10g及以上版本。以下是详细的导入步骤: 1. **创建目录对象** 在导入之前,需要先在Oracle中创建一个目录对象,指向存放DMP文件的物理路径。 ```sql CREATE OR REPLACE DIRECTORY dump_dir AS 'D:\backup'; ``` 上述命令创建了一个名为 `dump_dir` 的目录对象,指向本地路径 `D:\backup`,确保DMP文件已放置在此目录中。 2. **授权目录访问权限** 接下来,需要为执行导入操作的用户授予对目录对象的读写权限。 ```sql GRANT READ, WRITE ON DIRECTORY dump_dir TO your_user; ``` 其中 `your_user` 是执行导入操作的数据库用户。 3. **执行导入命令** 使用 `impdp` 命令进行导入操作,基本语法如下: ```bash impdp your_user/your_password@orcl DIRECTORY=dump_dir DUMPFILE=your_file.dmp SCHEMAS=schema_name ``` - `your_user/your_password`:执行导入的用户及其密码。 - `DIRECTORY`:指定之前创建的目录对象。 - `DUMPFILE`:指定要导入DMP文件名。 - `SCHEMAS`:指定要导入的模式(可选)。 4. **注意事项** - 如果DMP文件是通过 `expdp` 使用加密选项导出的,则在导入时需要提供解密密码。 - 若目标数据库中已存在同名对象,可以使用 `TABLE_EXISTS_ACTION` 参数控制导入行为,例如覆盖、追加等。 ```bash TABLE_EXISTS_ACTION=REPLACE ``` ### 四、常见问题与解决方案 - **导入失败提示权限不足**:确保执行导入的用户拥有 `DATAPUMP_IMP_FULL_DATABASE` 角色权限,并具备对目录对象的读写权限。 - **导入数据与目标数据库字符集不兼容**:建议在导出和导入时保持数据库字符集一致,避免数据乱码。 - **导入速度慢**:可以通过设置 `parallel` 参数启用并行导入,提高效率。 ```bash PARALLEL=4 ``` ### 五、总结 通过 `impdp` 工具导入DMP文件Oracle数据库中常见的数据恢复或迁移方式。整个过程包括创建目录对象、授权、执行导入命令等步骤,同时需要注意字符集、权限、对象冲突等问题,以确保导入过程顺利进行。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值