痛苦的 Oracle 导入 dmp 文件记录

前言:不知道dmp 文件的 导出用户表空间 就别折腾了, 我折腾了半天, 网上方法都试了, 最后都报错"用户不存在"; 有知道的麻烦评论告诉小弟.

1. 打开 oracle 命令行

    sqlplus /nolog

   

2. 连接 Oracle

   conn /as sysdba;

   

 

3. 创建表空间

create tablespace oesv6 datafile 'D:\DevFiles\oracleLog\oesv6.dbf'size 2048m autoextend on next 512m maxsize 10240m;

 

4. 创建用户

create user oes identified by 密码 default tablespace oesv6 temporary tablespace temp profile default;

5. 给用户管理表空间权限

        grant connect,resource,alter system,debug connect session,create session,create any view,select any table,delete any table,drop any table,alter any table,dba,sysdba to oes;

 

6. 导入 dmp 文件 (这一步坑很多, 可能会失败, 具体参照提示自己解决吧)

(1) imp 导入方式

     imp usename/password@localhost/orcl(表示SID)  file= D:\360Downloads\xxxx.dmp  full=y ignore=y

(2) impdp 导入方式( imp导入报错: IMP-00038:无法转换为环境字符集句柄, 则用这种导入 )

     <1> 退出 Oracle 命令行, 使用新创建的用户再次登录

     <2> 创建临时目录, 即dmp文件所在文件夹(D:\360Downloads),路径最好不要有中文。

              create directory dpdata1 as 'D:\360Downloads';

      <3>退出 oracle 命令行, 在 cmd 命令行执行导入命令

        impdp oes/密码 dumpfile=20200219.dmp directory=dpdata1 remap_schema=onlinecol:oes remap_tablespace=ts_onlinecol_prod:OESV6

       其中:ts_onlinecol_prod:原先dmp文件的表空间名称,如果不知道原先的表空间名称是什么,先随便写个,到时候导入的时候会提示表空间不存在,把提示不存在的表空间名称写上去就可以。

        zaixianzs_data:需要导入到的表空间的名称(第一步创建的表空间名称)

        REMAP_SCHEMA: 该选项用于将源方案的所有对象装载到目标方案中。 

 REMAP_SCHEMA=source_schema:target_schema

       REMAP_TABLESPACE: 将源表空间的所有对象导入到目标表空间中。                   

 REMAP_TABLESPACE=source_tablespace:target:tablespace 

后语: 导入时如果提示  用户名/密码第一个字符+后面的.... ,    则执行一次  sqlplus /nolog,  然后  conn /as sysdba,  再 exit 退出来, 然后再导入就好了.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章