oracle-导出linux中服务器下oracle数据库为.dmp文件&&安装oracle客户端&&遇到的问题及解决方式&&实例-亲测有效

一、详细步骤


1、安装Oracle客户端,下面是安装连接。
   (注意:需要安装exp导出工具版本与数据库服务器端exp版本一致的Oracle客户端,否则会出问题,下面会有介绍)
     https://blog.csdn.net/li1325169021/article/details/84935993
2、找到oracle客户端中的exp.exe执行文件
     实例:D:\app\Admin\product\11.2.0\client_1\BIN\
3、进入cmd窗口
     执行:windows+R ,输入 cmd 点击回车,输入 d: 回车,然后  cd app\Admin\product\11.2.0\client_1\BIN

  C:\Users\Admin>D:

  D:\>cd app\Admin\product\11.2.0\client_1\BIN

4、输入命令导出dmp文件,
     命令格式:exp 用户名/密码@ip地址/数据库名 owner=导出用户名 file=保存路径\文件名.dmp
     实例:exp bda_elect_js/[email protected]/HELOWIN owner=bda_elect_js file=d:\bda_test111.dmp ;  
     输入上面命令回车开始导出文件

 D:\app\Admin\product\11.2.0\client_1\BIN>exp bda_elect_js/[email protected]/HELOWIN owner=bda_elect_js file=d:\bda_test111.dmp ; 


5、提示导出错误EXP-00008: 遇到 ORACLE 错误 29516   

  Export: Release 11.2.0.1.0 - Production on 星期二 10月 13 16:14:30 2020

     Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


     连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
     With the Partitioning, OLAP, Data Mining and Real Application Testing options
     已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
     服务器使用 AL32UTF8 字符集 (可能的字符集转换)
     
     即将导出整个数据库...
     . 正在导出表空间定义
     . 正在导出概要文件
     . 正在导出用户定义
     . 正在导出角色
     . 正在导出资源成本
     . 正在导出回退段定义
     . 正在导出数据库链接
     . 正在导出序号
     . 正在导出目录别名
     . 正在导出上下文名称空间
     . 正在导出外部函数库名
     . 导出 PUBLIC 类型同义词
     EXP-00008: 遇到 ORACLE 错误 29516
     ORA-29516: Aurora 断言失败: Assertion failure at joez.c:3311
     Bulk load of method java/lang/Object.<init> failed; insufficient shm-object space
     ORA-06512: 在 "SYS.DBMS_JAVA", line 139
     EXP-00000: 导出终止失败

     D:\app\Admin\product\11.2.0\client_1\BIN>  

6、根据网上的资料和总结,分析可能是本地使用的exp导出工具的版本与数据库服务器端exp版本不一致导致。
      由于Oracle的imp/exp组件的操作原则--向下兼容,且有一些规则:
      规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器;
      规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);
      规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 10 到 Oracle 11.对于两个不相邻版本间进行转换,如从Oracle 9 到 Oracle 11,则应先将数据输入到中间版本-Oracle 10,再从中间数据库转入更高版本Oracle 11.

7、解决方法

     解决方案一、使用安装了10g Oracle 的机子,进行服务器上数据库数据的导出。弊端:需要远程操作,对传输层协议不                             太了解的小白很麻烦
     解决方案二、卸载当前安装的oracle客户端版本,选择与数据库服务器端exp版本一致的Oracle客户端进行安装,重复                                 2、3、4步骤。

8、卸载安装的oracle客户端版本
    注意:这里需要完全卸载,不然使用命令导出会出现问题,下面附上详细的卸载网址,亲测有效:
    https://www.2cto.com/database/201501/369060.html

二、重新安装oracle客户端(解决方案二)


 注意:本人检查了各种原因发现,我的windows系统为64位(现在大部分电脑基本是64位),下面附上我安装64位oracle客户端的链接,亲测很详细:https://www.cnblogs.com/zlslch/p/9273930.html

安装好之后继续重复操作上文中的2、3、4步骤。导出成功,

下面介绍另外一种导出方法:既利用plSQL工具导出dmp文件

三、利用plSQL导出dmp文件 


1、利用plSQL登录服务器端oracle

2、 选择“工具”(Tools)--“导出表”(Export Tables)

3、在“导出可执行文件”,该选项下面选择刚刚安装的oracle客户端的exp文件(选择好路径后双击exp.exe即可)

   (我的安装路径是  D:\app\Admin\product\11.2.0\client_1\BIN\exp.exe )

4、在“输出文件”,该选项后面选择导出数据库后的保存路径(C:\Users\Admin\Desktop\elect_js200_plsql.dmp),注意文件命名为“文件名.dmp”,点“导出”

5、点击导出按钮之后,会出现cmd的一个黑窗口,等待完成即可。

猜你喜欢

转载自blog.csdn.net/weixin_47055922/article/details/109056445