dmp文件导入 Oracle 步骤

之前因为工作需要将 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 步骤》

至此,导入成功!

    原文作者:爱睡懒觉的老舅
    原文地址: https://blog.csdn.net/Ocean111best/article/details/104679001
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞