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

用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)除了可进行数据库逻辑备份、数据库移植还可以用来提高数据库的性能,对数据库进行一次导入/导出操作能重新组织数据,消除数据库的碎片,从而使数据库的性能有较大的提高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遥感影像语义理解

面向高分辨率遥感影像场景语义理解的概率主题模型研究:http://www.lmars.whu.edu.cn/index.php/xwzx/2320.html 基于自适应深度稀疏语义建模的高分辨率遥感影像场景分类:链接 为了挖掘高分辨率遥感场景更具区分性的语义信息,提出了一种将稀疏…

性能优化CPU、内存、磁盘I/O、网络性能相关命令

系统优化是一项复杂、繁琐、长期的工作,优化前需要监测、采集、测试、评估,优化后也需要测试、采集、评估、监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也…

java word批注_编写Java批注

java word批注Java 批注的允许的属性类型刻意非常严格,但是允许的类型也可以使用一些简洁的复合批注类型。 考虑教程站点中的示例注释: package annotation; interface ClassPreamble {String author();String[] reviewers(); }在这里,作者和…

oracle报错ora-00200,oracle 11gR2 rac 创建database报ORA-00200错误

oracle 11gR2 rac创建数据库时,报ORA-00200错误,提示权限不够NOTE: MARK has subscribedNOTE: Loaded library: SystemSUCCESS: diskgroup TESTDG was mountedErrors in file /u01/app/oracle/diag/rdbms/racdb/racdb1/trace/racdb1_ora_16324.trc:ORA-27091: unable to queue …

SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便。我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS…

oracle ojvm generic,Oracle OJVM安全补丁

什么是OJVM PSU?CPU: Critical Patch UpdateOracle对于其产品每个季度发行一次的安全补丁包,通常是为了修复产品中的安全隐患。PSU: Patch Set UpdatesOracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多…

小规模流处理kata。 第1部分:线程池

我再次为我的公司在GeeCON 2016上举办了编程竞赛。 这次分配需要设计并根据以下要求选择实施系统: 一个系统每秒传送约一千个事件。 每个Event至少具有两个属性: clientId –我们期望一个客户端每秒最多可以处理几个事件 UUID –全球唯一 消耗一个事…

VC++ MSDN中的 _beginthreadex与_endthreadex 的使用例子

1._beginthread, _beginthreadex .用于创建线程[cpp] view plaincopy uintptr_t _beginthread( void( *start_address )( void * ), unsigned stack_size, void *arglist ); uintptr_t _beginthreadex( //推荐使用 void *security, //安全属性&#…

「澳洋主数据项目」主数据促企业变革

part 1 企业简介: 澳洋集团是一家跨地区、多元化的民营企业集团,总部位于全国百强县市前三甲的江苏省张家港市。集团成立于1998年7月,2007年经国家工商总局核准,升格为免冠行政区划的大型集团企业。集团现有37家下属子&#xff08…

linux bin目录误删,Linux下误删 /user/bin目录后的补救

当危险的动作发生, 误删 /user/bin目录后的补救以下是昨天晚上真实的误操作现场,模拟记录一下(这是测试环境,所以操作得很随意,有些执行动作很不规范)在上面编译一个软件Dboop,完事以后想把它做个软链到 /usr/binsudo …

使用JFlex生成词法分析器 1:安装配置

环境:Windows 10 STEP 1: 下载 JFlex 文件,我选择的是 jflex-1.7.0.zip。下载完成后解压到想安装的位置。 文件结构如下(假设解压目录为 C:\): C:\jflex-1.7.0\ --bin\ (start scri…

问题: 将N个元素使用push_back插入到vector中, 求push_back操作的复杂度。

简单分析如下: 考虑vector每次内存扩充两倍的情况。 如果我们插入N个元素, 则会引发lgN次的内存扩充,而每次扩充引起的元素拷贝次数为 2^0, 2^1, 2^2, ..., 2^lgN. 把所有的拷贝次数相加得到 2^0 2^1 2^2 ... 2^lgN 2 * 2^lgN - 1 约为…

linux superblock 时间,Linux命令(八)

1、文件系统:windows的FAT,win2000以后的NTFS文件系统,Linux的正规文件系统为EXT2(Linux second extended file system,Ext2fs)传统方式中,一个分区只能格式化为一个分区。由于新技术的利用,一个分区可以格式化为多个文…

在Amazon Elastic Beanstalk上部署Spring Boot应用程序

在此博客中,我们将看到如何在Amazon ElasticBeanstalk上部署Spring Boot应用程序。 Amazon ElasticBeanstalk具有一个预配置的Java环境,可用于部署内部装有servlet容器的Spring Boot JAR。 对于我们的示例,此处将使用maven作为构建工具。 …

Linux上静态库和动态库的编译和使用

linux上静态库和动态库的编译和使用(附外部符号错误浅谈) 这就是静态库和动态库的显著区别,静态库是编译期间由链接器通过include目录找到并链接到到可执行文件中,而动态库则是运行期间动态调用,只有运行时找不到对应动…

Linux Socket API Connect 函数详解

在讲解套接字编程函数之前&#xff0c;有必要对socket编程的两个不可或缺的结构体进行说明。 第一个结构体式struct sockaddr.。这个结构为许多类型的套接字储存套接字地址信息&#xff1a; Sockaddr结构体介绍 #include<sys/socket.h> struct sockaddr { …

java 适用参数_Java功能的适用性

java 适用参数Java语言和标准库功能强大&#xff0c;但功能强大&#xff0c; 责任重大 。 一方面看到很多用户代码滥用或滥用稀有的Java功能&#xff0c;另一方面却完全忘记了大多数基本功能之后&#xff0c;我决定撰写此摘要。 这不是每个Java开发人员都应该探索&#xff0c;了…

linux查看tar进程进度,Linux:wget后台下载/查看后台任务进度

今天在自己的服务器上使用wget下载一个大文件时&#xff0c;不小心把ssh断开连接了&#xff0c;重新登上去后想查看这个文件的下载进度&#xff0c;现记录一些wget的知识点。1&#xff1a;后台下载使用wget -b url[root8f9fbda9bb48 ~]# wget -b http://cn.wordpress.org/word…

【redis】在windos下的redis服务器的搭建

1.下载Redis-x64-3.2.100&#xff08;楼主用的版本&#xff0c;需要安装包的可以找我要&#xff09; 下载官方版本 2.解压后在cmd下运行 redis-server redis.windos.conf 此时redis服务已经在该windows下6379端口运行 3.把该服务设置成windos服务 redis-server --service-insta…

《Linux网络接口》---------struct ifreq struct ifconf

网络接口--------------struct ifconf&#xff0c;struct ifreq 网络相关的ioctl请求的request参数及arg地址必须指向的数据类型如下表所示&#xff1a; 接口 SIOCGIFCONF SIOCSIFADDR SIOCGIFADDR SIOCSIFBRDADDR SIOCGIFBRDADDR SIOCSIFNETMASK SIOCGIFNETMASK 获取所有接口…