导入Oracle数据.dump文件到本地库

一、场景描述:将同事本地库(全库)导出的.dump文件导入本地库

--1、在cmd命令行输入如下命令进行导出
expdp username/password@orcl dumpfile=test20200324.dmp directory=DATA_PUMP_DIR
--2、directory这里的目录,可以在PL/SQL中使用select * from dba_directories进行查找,选择一个合适的导出路径

二、具体步骤如下:

  1. 首先使用pl/sql创建oracle可以识别的目录名:
create or replace directory dpdata1 as 'D:\test20200324';
  1. 将test_20200324.dump文件放入此文件夹下
  2. 建立与其对应的表空间
create tablespace newtablespace
logging  
datafile 'D:\app\Administrator\oradata\orcl\newtablespace.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m
extent management local; 
  1. 创建临时空间
create temporary tablespace newtablespace_temp 
tempfile 'D:\app\Administrator\oradata\orcl\newtablespace_temp.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;
  1. 在cmd执行导入语句
impdp system/orcl@orcl directory=dpdata1 dumpfile=test_20200324.dmp table_exists_action=replace full=y;
  1. 导入完成,查看 D:\test20200324 目录下对应的 .log 文件中是否有报错信息,本人的日志中有报错:
ORA-39082: 对象类型 ALTER_FUNCTION:xxxxxxx 已创建, 但带有编译警告

我这里ALTER_FUNCTION错误是由于原始数据库中包含函数,而且此函数编译报错所导致(解决:检查并修正原始数据库的函数)。出现ORA-39082还有可能会是由于原始数据库中的视图或者存储过程包含中文–》在PL/SQL工具找到报错对应的表或者视图,重新编译即可

小问题备注:

1、如果不知道原库中对应的表空间与临时空间?
	- 执行完步骤1、2后,直接执行6
	- 打开第一步创建的目录
	- 我们可以在这里找到一个import.log文件
	- 打开它找出原库对应的表空间及临时空间
2、第三步创建表空间时datafile的路径需要留意一下:
	本人在 D:\app\Administrator\oradata\orcl 路径下可以找到一些其它的.dbf文件,所以将新建的表空间文件放在此处

你可能感兴趣的:(Oracle数据库)