Oracle数据库:impdp导入数据库及expdp导出数据过程详解

1.创建数据库(可使用默认的数据库,此步骤可省略)
2.在数据库中创建表空间,最好与导出的数据库的表空间相同名称,参考http://jingyan.baidu.com/article/5225f26b036c47e6fa0908e4.html
创建表空间的SQL命令(PLSQL下操作):create tablespace TJFRAMEWORK datafile 'E:\zlProFiles\myOracle\oracle\a.dbf' size 100m autoextend on next 100m
maxsize 20480m extent management local;(备注:TJFRAMEWORK 为表空间名称,datafile后面跟的路径为数据库表空间的中转、转储缓存路径,)
3.创建用户并指定表空间SQL命令:create user JKQYJ identified by JKQYJ default tablespace TJFRAMEWORK;(备注:这里第一个 JKQYJ为创建的用户名,
第二个 JKQYJ为创建的用户密码, TJFRAMEWORK为表空间名)
4.给创建的用户授权SQL命令:grant connect,resource,dba to JKQYJ;   grant create session,dba to JKQYJ;
此时用户创建成功并完成授权,可以用此用户登录数据库了。(但是此时数据库表空间还没有数据)
5.导入数据库前必须要先创建文件夹,SQL命令: create or replace directory bao as 'e:\oracle\test'; (备注:bao作为路径的重命名,在后面还会使用到)
6.给使用的用户(上面创建的用户)授权(读写权限)SQL命令: Grant read,write on directory bao to JKQYJ;(备注: JKQYJ是上面创建的用户,此处授权的用户是管理员或者拥有更高权限的用户给刚创建的 JKQYJ用户授权、不能是自己给自己授权,更不能是拥有低权限的用户给新建的用户授权)
7. 查看目录及权限(此处只是查看权限,可跳过) : SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d  WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
8.手动创建文件夹路径(备注:在上面步骤5创建完文件夹后,在win7下是没有创建的文件夹的,需要手动创建文件夹,并且把使用expdp导出的dmp文件放入该文件夹下,开始自己导入时,创建完文件夹后始终在磁盘上找不到)
9.把需要导入数据库的.dmp文件复制到上面创建的文件夹路径下,即把.dmp文件复制到Windows系统的e:\oracle\test路径下
10.导入.dmp文件,command命令:impdp 用户名/密码 schemas=要导入的用户(即是使用expdp导出的用户) directory=创建的文件夹名称(directory_name) dumpfile=test.dmp(要放入到directory_path路径下) logfile=imp.log(可以不写)
eg:impdp JKQYJ/JKQYJ schemas=JKQYJ directory=bao dumpfile=JKQYJ_20161124.DMP (备注:bao是上面创建的中转、转储文件夹;dumpfile 后面跟的是文件名称,不能包含路径信息,此时需要导入的数据库文件已经放入了上面创建的文件夹路径下)
期间可能遇到的问题:
1):ORA-39070:无法打开日志文件。 ORA-39087:目录名e:\oracle\test无效。 导致原因:未把新建的文件夹路径授权给新建的用户。
2):IMP-00010: 不是有效的导出文件, 头部验证失败 。  导致原因:导出.dmp文件和导入.dmp文件的命令不对应,使用expdb导出的数据库文件就必须要impdb命令导入数据库。
参考http://blog.csdn.net/haiross/article/details/27580199/;  http://blog.csdn.net/bao19901210/article/details/9666901 
expdp导出数据:参考http://blog.itpub.net/29802484/viewspace-1257986/

原文:https://blog.csdn.net/QQ578473688/article/details/54561596 

本人精简步骤:

1.创建表空间(名称:FE_APP5,50M)
create tablespace FE_APP5 datafile 'E:\NCWORK\oracle-fe\mtly-app5.dbf' size 50m autoextend on;

2.创建用户(用户名称:FE_APP5)
CREATE USER FE_APP5 
IDENTIFIED BY 123 
DEFAULT TABLESPACE FE_APP5 
TEMPORARY TABLESPACE temp
profile DEFAULT;

3.给FE_APP5用户授权(下面全是用户FE_APP5)
grant connect to FE_APP5 with admin option ;

grant dba to FE_APP5 with admin option;

grant unlimited tablespace to FE_APP5 with admin option;

grant create session to FE_APP5;

4.创建目录(目录名:mtly)
create or replace directory mtly as 'E:\NCWORK\oracle-fe';

5.给使用的用户(上面创建的用户)授权(读写权限)SQL命令: 
Grant read,write on directory mtly to FE_APP5;

6.把需要导入数据库的.dmp文件复制到上面(第4步)创建的文件夹路径下,即 'E:\NCWORK\oracle-fe'下面

7.导入dmp文件
impdp FE_APP5/123 schemas=FE_APP5 directory=mtly dumpfile=FE_APP5_20180102.DMP

猜你喜欢

转载自blog.csdn.net/xiaomgee/article/details/85613538