用Oracle导入导出工具实现Oracle数据库移植.很不错的方法,建议使用![@more@]

用Oracle导入导出工具实现Oracle数据库移植

Oracle数据库作为目前市场的主流数据库之一,许多应用都在其上进行开发,由于Oracle数据库更新换代的原因和不同的应用程序提供商,可能会造成在一个单位的应用中存在Oracle的几种版本,如Oracle 7、Oracle 8、Oracle 8i,甚至Oracle 9i.。而考虑到数据库集中、维护、备份的方便性和避免设备的重复投资,在应用能兼容的情况下,将几个版本的Oracle数据库移植到一个主流版本上是数据库管理员的一个较优的选择。

这就存在从Oracle数据库的低版本移植到高版本和从Oracle数据库的高版本移植到低版本的问题,甚至包括系统平台的迁移如从Windows NT系统迁移到Unix系统。利用Oracle导入/导出工具(Export/Import)能比较方便实现上述移植操作。

Oracle导入/导出工具(Export/Import)主要是用来对数据库进行逻辑备份,利用Export导出数据库的转储二进制文件作为数据库Import输入从而达到移植的目的。有二个规则可以参考:

规则一:从Oracle 低版本的Export数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本。

规则二:Oracle的Export/Import工具只能连接到拥有更高或者一样的Export/Import版本的数据库。如Oracle 8.0.5的Export/Import(版本8.0.5.0.0)可连接到Oracle 8.1.6数据库(版本8.1.6.0.0);高版本的Export导出来的转储文件,低版本的Import读不了;低版本的Export导出来的转储文件,高版本的Import可以进行读取。

利用上面两个规则,下面就本人在为一单位用Oracle的导入/导出工具(Export/Import)进行此种移植碰到的问题,提出来与大家分享,希望能起到抛砖引玉的作用。

此单位拥有Oracle数据库版本有Oracle 8.1.6 For NT、Oracle 8.0.5 For NT、Oracle 8.0.4 For Digital Unix、Oracle 7.3 For NT。

考虑到Oracle 8.0.4 For Digital Unix运行在小型机上、单位的备份系统也是针对此小型机,决定将Oracle 8.1.6 For NT、Oracle 8.0.5 For NT、Oracle 7.3 For NT的数据库都移植到Oracle 8.0.4 For Digital Unix上。

1、Oracle 8.0.5 For NT移植

因版本相差甚小,开始直接用Oracle8.0.5的exp80导出数据库的转储文件,然后用FTP(binary传输模式)直接上传至Oracle 8.0.4 所在的小型机,再用Oracle 8.0.4的imp导入一直有字符集的问题,即存有汉字的字段显示的都是”??????”, 移植失败。后发现,在Oracle8.0.5服务器上直接用Oracle8.0.5的imp80对exp80导出的转储文件进行远程导入,字符集的问题解决,移植成功。

对于使用Oracle 8.0.4 For Digital Unix的用户,提醒一句,最好不要用Oracle 8.0.4 For Digital Unix的exp、imp工具做备份,而应用此版本的Windows客户端程序exp80、imp80。本人曾做过实验:在Oracle 8.0.4 for Digital UNIN数据库上新建一用户(user)和一个表格(table)通过sql plus客户端在表格的列中插入一些中文行,提交后,用exp 数据导出,再用imp数据导入,用sql plus客户端查看,表中的中文值显示为”???”)。

2、Oracle 7.3 移植

直接用Oracle7.3的export导出数据库的转储文件,拷至Oracle8.0.5服务器,然后用Oracle8.0.5服务器的imp80直接导入至Oracle 8.0.5数据库。此移植就变成了Oracle 8.0.5 For NT移植至Oracle 8.0.4 For Digital Unix的移植。

3、Oracle 8.1.6 For NT移植

初步设想也通过Oracle 8.0.5进行过度。因其版本比Oracle 8.0.5高、下面对参考的规则进行一些校验。

3.1高版本的Export导出来的转储文件,低版本的Import读不了

在Oracle 8.1.6数据库服务器导出转储二进制文件:ora816.dmp。

在Oracle 8.0.5数据库服务器上用Imp80进行导入。

D:>Imp80 house/password file=d: ora816.dmp log=d:ora816.log full=y

/*日志显示*/

已连接到:Oracle8 Release 8.0.5.0.0 – Production

PL/SQL Release 8.0.5.0.0 – Production

IMP-00010: 不是有效的导出文件,标题检验失败

IMP-00021: 操作系统错误 - 错误代码(十进制2,十六进制0x2)

IMP-00000: 未成功终止导入

3.2 Oracle的Export/Import工具只能连接到拥有更高或者一样的Export/Import版本的数据库

a)Oracle 8.1.6远程数据导入

在Oracle 8.1.6数据库服务器导出转储二进制文件:ora816.dmp。

在Oracle 8.1.6数据库服务器向Oracle8.0.5数据库进行数据远程导入

D:>Imp file=d: ora816.dmp log=d:ora816.log full=y

(orclfrom816to805为数据库连接字符串由Oracle8.1.6数据库指向 Oracle8.0.5数据库)

/*日志显示*/

连接到: Oracle8 Release 8.0.5.0.0 – Production

PL/SQL Release 8.0.5.0.0 – Production

……

经由常规路径导出由EXPORT:V08.01.06创建的文件

已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入

IMP-00003: ORACLE 错误2248出现

ORA-02248: 无效的 ALTER SESSION 选项

IMP-00000: 未成功终止导入

b)在Oracle 8.0.5数据库服务器上用exp80对Oracle 8.1.6数据库进行远程导出。

D:>exp80 file=d:ora816.dmp log=d:ora816.log

(orclfromfrom805to816为数据库连接字符串由Oracle8.0.5数据库指向Oracle8.1.6数据库)

/*日志显示*/

连接到:Oracle8i Enterprise Edition Release 8.1.6.0.0 – Production

With the Partitioning option

JServer Release 8.1.6.0.0 – Production

已导出ZHS16GBK字符集和ZHS16GBK NCHAR 字符集

即将导出指定的用户...

……

在没有警告的情况下成功终止导出。

再对远程导出的转储文件在Oracle 8.0.5数据库服务器上用imp80导入。

D:>imp80 house/password file=d:ora816.dmp full=y log=d:ora816 _i.log

显示成功导入

此刻此移植就变成了Oracle 8.0.5 For NT移植至Oracle 8.0.4 For Digital Unix的移植。

利用Oracle的Oracle导入/导出工具(Export/Import)除了可进行数据库逻辑备份、数据库移植还可以用来提高数据库的性能,对数据库进行一次导入/导出操作能重新组织数据,消除数据库的碎片,从而使数据库的性能有较大的提高。

oracle数据库读取工具,用Oracle导入导出工具实现Oracle数据库移植相关推荐

  1. 数据如何导入oracle数据库,如何用Oracle导入导出工具来实现Oracle数据库移植?

    Oracle数据库作为目前市场的主流数据库之一,许多应用都在其上进行开发,由于Oracle数据库更新换代的原因和不同的应用程序提供商,可能会造成在一个单位的应用中存在Oracle的几种版本,如Orac ...

  2. oracle导入导出版本规则,Oracle不同版本间的导入导出命令详解 - wangzhuoyan的专栏 - CSDN博......

    wangzhuoyan的专栏 明月松间照,清泉石上流 登录 注册 欢迎 退出 我的博客 配置 写文章 文章管理 博客首页   全站 当前博客  空间 博客 好友 相册 留言 用户操作 [发私信]  [ ...

  3. Oracle中用exp/imp命令快速导入导出数据

     Oracle中用exp/imp命令快速导入导出数据 [用 exp 数 据 导 出]: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   ...

  4. oracle12c导入,Oracle 12c pdb使用expdp/impdp导入导出

    1.查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl[oracle@test admin]$ echo $ORACLE_SID [oracle@test  ...

  5. udaldump数据导入导出工具使用

    udal数据库数据导入导出工具udaldump使用示例 帮助查看 ./start -h usage: 参数说明 -bufSize,–bufSize 导入文件时使用的缓冲区大小(单位:Byte) -c, ...

  6. 数据库导入语句linux,数据库应用-SQL语句导入导出大全

    数据库应用-SQL语句导入导出大全 发布时间:2006-06-03 09:59:43来源:红联作者:yo /******* 导出到excel EXEC master..xp_cmdshell 'bcp ...

  7. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  8. ETL数据导入/导出工具 HData

    HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC.Hive.HDFS.HBase.MongoDB.FTP.Http.CSV.Excel.Kafka等)之间数据 ...

  9. java 导入excel工具类_java Excel工具类,导入导出Excel数据

    java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据: 导出数据到Excel,Excel文件不存在会创建. 使用的是poi处理,兼容Excel. 对反射不够理解,目前先 ...

最新文章

  1. python转csv_python脚本如何将Excel文件转为csv文件(代码)
  2. 计算机中位运算的一些性质与技巧
  3. TypeScript 终极初学者指南
  4. Dataset、IterableDataset 读取大数据的思路
  5. 一款强大的 Kubernetes API 流量查看神器
  6. python处理word表格格式_python---word表格样式设置
  7. 第一次创业失败的总结 - 产品设计
  8. 用python快速开发一个实用的socket服务器
  9. Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  10. systemtap的一些总结
  11. 内存管理——初始化流程
  12. 矩阵分析与应用(二)————梯度分析与最优化
  13. ajax聊天室创建群聊,js+node.js+socket.io实现聊天功能(私聊,创建群聊)
  14. Python中字符的匹配
  15. 批量选择图片_PS的批量处理功能
  16. Unity常用设计模式之代理模式
  17. word论文页码的设置(封面无编号、目录罗马数字和正文阿拉伯数字)
  18. 三种常用的LED驱动电源电路图详解
  19. 机器学习--手写英文字母1--分类流程
  20. 小伙用C++代码实现P2P穿透文件传输,网友集体打call!

热门文章

  1. 1062 最简分数(PAT乙级 C++)
  2. pat 乙级 1020 月饼(C++实现)
  3. 【渝粤题库】陕西师范大学202012 刑事诉讼法专论 作业
  4. 【渝粤题库】国家开放大学2021春1334纳税筹划题目
  5. 5G三兄弟NB-IoT排老几?NB-IoT介绍
  6. cryptojs支持rsa加密_新特性解读 | 从 wireshark 看 MySQL 8.0 加密连接
  7. sts 创建webservice项目_Eclipse Maven生成WebService客户端代码及测试
  8. 红米ac2100breed看模块_骁龙865加持,红米K30S至尊纪念版11日再开售
  9. 浙江计算机二级报名步骤,浙江2016年9月计算机二级考生报名流程
  10. 攻防世界 适合做桌面_空间“狭小”的二人世界,适合情侣们做浪漫的事情