欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dmp文件导入 Oracle 步骤

程序员文章站 2022-04-20 22:19:35
...

之前因为工作需要将 dmp 文件导入进 Oracle ,记下步骤

一、第一部分

1、在 cmd 下进入 oracle:

输入:sqlplus 账号/密码

出现错误则:请输入用户名:账号 as sysdba

输入口令:密码

dmp文件导入 Oracle 步骤

2、首先可以先建立自己的一个用户表空间,创建表空间:

create tablespace test  //test为表空间的名字
datafile 'G:\oracle11gr2\product\11.2.0\dbhome_1\test.dbf'  //这边可以写成oracle的某个路径下
size 2g    //初始大小
autoextend on;    //自动扩展

3、接下来创建一个自己的用户:

CREATE USER utest  //用户名为utest 
IDENTIFIED BY 123456  //密码为123456
DEFAULT TABLESPACE test  //test为上面创建的表空间
TEMPORARY TABLESPACE temp;  //临时表空间就写temp即可

4、然后需要给自己创建的用户赋予权限:

GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
GRANT dba TO utest;  //dba为*权限,可以创建数据库,表等

5、创建一个存放 dmp 文件的目录:

create directory dpdata1 as ‘D:\OracleDMP’;  //创建了目录dpdata1

二、第二部分

首先需要知道文件dmp是用什么数据泵导出的:exp导出来的用imp导入;expbd导出来的用impbd导入;

若dmp用expbd导出的,用imp导入就会出现下面这个错误:

dmp文件导入 Oracle 步骤

只能通过试错得出原 dmp 是什么数据泵导出的

1、下面新打开进入一个 cmd,输入:

imp utest/123456 file=D:\hz.dmp full=y ignore=y

若发生上面那个“IMP-00038:无法转换为环境字符集句柄”错误,则说明这个原先的dmp文件是用expdb导出的,需要用impbd语句导出。(本次就发生了这样的错误)

2、还是 cmd 目录下,输入:

impdp onlinecolzs/onlinecozs dumpfile=XXX.dmp directory=dpdata1 remap_schema=onlinecol:onlinecolzs  remap_tablespace=ts_onlinecol_prod:zaixianzs_data

参数说明:

onlinecolzs:用户名;
onlinecozs:密码;
XXX.dmp:需要导入的dmp文件;
dpdata1:在第一部分的第5点创建的存放dmp文件的目录;
remap_schema:该选项用于将源方案的所有对象装载到目标方案中;onlinecol是原先dmp文件的对象方案(导出这个文件的用户),如果不知道原先的对象方案名称是什么,先随便写个,到时候导入的时候会提示对象方案不存在,把提示不存在的对象方案名称写上去就可以;onlinecolzs是现在的目标方案对象,一般填用户名utest就行;
remap_tablespace:将源表空间的所有对象导入到目标表空间中;ts_onlinecol_prod:原先dmp文件的表空间名称,如果不知道原先的表空间名称是什么,先随便写个,到时候导入的时候会提示表空间不存在,把提示不存在的表空间名称写上去就可以。zaixianzs_data:需要导入的表空间,在第一部分的第2点创建的表空间(test),

其中有些参数我们不知道,可以通过试错来找出:

试错一:用户不存在,则可以将 onlineecol 改为此名称

dmp文件导入 Oracle 步骤

试错二:表空间不存在,则可以将 ts_onlinecol_prod 改为此名称

dmp文件导入 Oracle 步骤

最终执行语句为:

impdp utest/123456 dumpfile=hz.dmp directory=dpdata1 remap_schema=HZSJHL:utest remap_tablespace=SJHL_DATA:test

dmp文件导入 Oracle 步骤

至此,导入成功!