将远程oracle数据库导入到本地

一、切换用户

先从普通用户 切换到root (有些时候会因为无权限直接执行 su - oracle 会被拒绝)

fssa@jzsql.sn.com:/home/fssa>su -

在这里插入图片描述

从当前用户切换到oracle


[root@jzsql ~]$ su - oracle

在这里插入图片描述

二、统计一编码


[oracle@jzsql ~] >  export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

【温馨提示】为了杜绝导入到本地后出现common 乱码,最好在导出前执行一下,统一一下编码格式;因为我本地oracle 也是GBK编码,所以NLS_LANG 后面是AMERICAN_AMERICA.ZHS16GBK 如果不是就根据自己相应的编码进行设置。

oracle字符集查看

执行如下命令,查看oracle 数据库字符集


SQL> select userenv('language') from dual;

屏幕会有类似如下提示:


USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

三、执行exp进行数据导出


[oracle@jzsql ~]$ exp fssa/oracle@jzsql owner=fssa file=databasefssa.mp

    1. 其中 fssa/oracle@jzsqlfssa 为远程 oracle 数据库的用户名,
    1. 其中 fssa/oracle@jzsqloracle为远程oracle数据库的密码;
    1. 其中 fssa/oracle@jzsqljzsql 为远程oracle数据库的实例
    1. 其中owner 指定远程数据库的持有者为fssa
    1. 其中 file 指定导出的.dmp 文件路径以及 文件名称: /home/dataExp.dmp;如下图~
      在这里插入图片描述

四、执行 imp 将.dmp文件导入到本地oracle数据库


C:WindowsSystem32> imp fssa/oracle@localhost:1521/orcl formuser=fssa touser=fssa file=d:/databasefssa.dmp

    1. 其中 fssa/oracle@localhost:1521/orclfssa 为本地数据库名
    1. 其中 fssa/oracle@localhost:1521/orcloracle为本地数据密码
    1. 其中 fssa/oracle@localhost:1521/orclorcl 为本地数据的实例
    1. 其中 formuser=fssa 指定 .dmp 数据原本的持有者
    1. 其中touser=fssa 指定本地数据库持有者
    1. 其中file 指定 .dmp文件路径
      在这里插入图片描述

五、解决导入提示表空间缺失的问题

如上图导入时也许会提示 如下异常信息


DRA-00959: tablespace 'TBS_FSSA' does not exist
  . importing table "FSSA_POPULATION"                      0 rows imported
  . importing table "FSSA_POP_ACCT"                      0 rows imported
  

能够根据提示发现是缺少了一个 叫 TBS_FSSAtablespace

登录本地oracle数据库


C:WindowsSystem32> sqlplus/nolog
SQL >conn / as sysdba

执行如下命令创建表空间


SQL > create tablespace TBS_FSSA datafile 'D:developoradatamytestTablespaceTBS_FSSA.dbf' size 100M autoextend on;

    1. 其中TBS_FSSA 指定表空间名称
    1. 其中datafile 指定表空间存储的位置;(注意: 这个目录必须先创建好,否则执行会报错;假如其中的mytestTablespace 目录原本并不存在,那么执行表空间创建就会报错)

创建用户并指定默认的表空间


	SQL>create user fssa identified by oracle default tablespace TBS_FSSA account unlock;
	

用户创建和权限指定等就不细说了,完整操作 如下图
在这里插入图片描述

到此为止 ,重新执行第四步操作,数据库导入及可成功。

原文地址:https://www.cnblogs.com/dengxiaoning/p/11681266.html