`

Oracle8i/9i EXP/IMP使用经验

阅读更多

一、8i EXP常用选项

 

1FULL,这个用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。例如:

exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y

 

2BUFFERFEEDBACK,在导出比较多的数据时,我会考虑设置这两个参数。例如:

exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT

 

3FILLLOG,这两个参数分别指定备份的DMP名称和LOG名称,包括文件名和目录,例子见上面。

需要说明的是,EXP可以直接备份到磁带中,即使用FILE=/dev/rmt0(磁带设备名),但是一般我们都不这么做,原因有二:一、这样做的速度会慢很多,二、现在一般都是使用磁带库的,不建议直接对磁带进行操作。至于没有使用磁带库的朋友可以考虑和UNIXTAR结合使用。

如果你真想使用EXP直接到磁带,你可以参考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文档号:30428.1),该文中有详细解释。

 

4COMPRESS参数将在导出的同时合并碎块,尽量把数据压缩到initialEXTENT里,默认是N,一般建议使用。DIRECT参数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就减少了SQL语句处理过程。一般也建议使用。不过有些情况下DIRECT参数是无法使用的。

 

5、如何使用SYSDBA执行EXP/IMP

这是一个很现实的问题,有时候我们需要使用SYSDBA来执行EXP/IMP,如进行传输表空间的EXP/IMP,以及在9i下用SYS用户来执行EXP/IMP时,都需要使用SYSDBA才可。我们可以使用下面方式连入EXP/IMP

exp "'sys/sys as sysdba'" file=1.dmp tables=gototop.t rows=n

 

6QUERY参数后面跟的是where条件,值得注意的是,整个where子句需要使用""括起来,where子句的写法和SELECT中相同,如果是UNIX平台所有"'都需要使用u26469屏蔽它们的特殊含义:

exp gototop/gototop file=1.dmp log=1.log tables=cyx.t query="where c1=20 and c2=gototop"

如果是windows平台,则使用下面的格式:

exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name='gototop'"""

 

二、8i IMP常用选项

 

1FROMUSERTOUSER,使用它们实现将数据从一个SCHEMA中导入到另外一个SCHEMA中。

 

2IGNOREGRANTSINDEXES,其中IGNORE参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。而GRANTSINDEXES则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES设为N,而GRANTS一般都是Y

 

另外一个EXP/IMP都有的参数是PARFILE,它是用来定义EXP/IMP的参数文件,也就是说,上面的参数都可以写在一个参数文件中,但我们一般很少使用。

 

三、Oracle9i EXP功能描述

 

Oracle9i EXP在原有的基础上新增了部分新的参数,按功能主要分为以下几个部分:

1OBJECT_CONSISTENT - 用于设置EXP对象为只读以保持对象的一致性。默认是N

 

2FLASHBACK_SCNFLASHBACK_TIME - 用于支持FLASHBACK功能而新增。

 

3RESUMABLERESUMABLE_NAMERESUMABLE_TIMEOUT - 用于支持

RESUMABLE空间分配而新增。

 

4TTS_FULL_CHECK - 用于在传输表空间时使用依赖性检查。

 

5TEMPLATE - 用于支持iAS

 

6TABLESPACES - 设置表空间导出模式。个人觉得对于一般用户而言,这个才是新增参数中最实用的一个,可以让用户在原来的FULLOWNERTABLES的基础上多了一种选择,使得EXP更加灵活。

 

四、不同版本的EXP/IMP问题?

 

一般来说,从低版本导入到高版本问题不大,麻烦的是将高版本的数据导入到低版本中,在Oracle9i之前,不同版本Oracle之间的EXP/IMP可以通过下面的方法来解决:

1、在高版本数据库上运行底版本的catexp.sql

 

2、使用低版本的EXP来导出高版本的数据;

 

3、使用低版本的IMP将数据库导入到底版本数据库中;

 

4、在高版本数据库上重新运行高版本的catexp.sql脚本。

 

但在9i中,上面的方法并不能解决问题。如果直接使用底版本EXP/IMP会出现如下错误:

EXP-00008: ORACLE error %lu encountered

ORA-00904: invalid column name

这已经是一个公布的BUG,需要等到Oracle10.0才能解决,BUG号为2261,你可以到METALINK上去查看有关此BUG的详细信息。

BUGBUG,我们的工作还是要做,在没有Oracle的支持之前,我们就自己解决。在Oracle9i中执行下面的SQL重建exu81rls视图即可。

CREATE OR REPLACE view exu81rls 

(objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy) 

AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname, 

decode(bitand(r.stmt_type,1), 0,'', 'SELECT,') 

|| decode(bitand(r.stmt_type,2), 0,'', 'INSERT,') 

|| decode(bitand(r.stmt_type,4), 0,'', 'UPDATE,') 

|| decode(bitand(r.stmt_type,8), 0,'', 'DELETE,'), 

r.check_opt, r.enable_flag, 

DECODE(BITAND(r.stmt_type, 16), 0, 0, 1) 

from user$ u, obj$ o, rls$ r 

where u.user# = o.owner# 

and r.obj# = o.obj# 

and (uid = 0 or 

uid = o.owner# or 

exists ( select * from session_roles where role='SELECT_CATALOG_ROLE') 

grant select on sys.exu81rls to public; 

 

五、其他问题

 

本文只讨论了Oracle8i9i中的EXP/IMP的一些情况,对于之前的版本,在8.0.X中,除了QUERY参数不能用外,其它差别不大。针对没有QUERY的情况,我们可以先在数据库中使用查询条件建立临时中间表,然后使用EXP导出这个中间表即可。至于Oracle7因为目前使用的人较少,gototop不打算在此做详细解释了,如果读者朋友有需求,你可以参考Metalink文档:“Overview of Export and Import in Oracle7”(文档号:61949.1)。关于EXP/IMP的详细参数信息你可以通过EXP/IMP HELP=Y来获得。

另外关于传输表空间的更多信息可以参考下面的Metelink文档,本文不再详述。

[NOTE:77523.1] Transportable Tablespaces -- An Example to setup and use. 

[NOTE:100698.1] Perform tablespace point-in-time recovery using Transportable Tablespace. 

在进行并行EXP/IMP的时候,如果IMP过程建索引的话不建议同时运行5个以上的IMP,如果你想加快速度

 

 

分享到:
评论

相关推荐

    oracle9i的EXP和IMP

    Oracle 9i数据库系统是Oracle公司的一个重要版本,它提供了许多功能来支持数据管理,其中包括数据导入(IMP)和导出(EXP)工具。这两个工具是数据库管理员进行数据迁移、备份和恢复操作的关键组件。 **EXP(Export...

    Oracle9i客户端带exp和imp

    Oracle9i客户端是一款用于连接和管理Oracle数据库的工具集,其中包含了 EXP 和 IMP 命令,它们是Oracle数据库管理中的重要组成部分。EXP(Export)主要用于数据库的数据导出,而IMP(Import)则用于将这些数据导入到...

    Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer)

    1、本软件可作为简单的Oracle9i客户端使用,如用户对Oracle有更高的使用要求,请正式安装Oracle客户端或服务器。 2、本软件安装后,可使用自带的SQL Plus连接Oracle服务器,支持EXP、IMP命令。用户可以配合PLSQL ...

    Oracle8i-9i精髓.rar

    Oracle 8i到9i是Oracle数据库产品的重要发展时期,这一阶段见证了Oracle数据库在功能、性能和稳定性上的显著提升。以下是对这些版本中关键知识点的详细解析: 1. **Oracle数据库架构**:Oracle 8i引入了多层数据库...

    Oracle8i_9i数据库基础和初级数据库管理

    Oracle 8i 和 9i 是 Oracle 公司在21世纪初发布的两个重要的数据库管理系统版本,它们在数据库领域有着广泛的应用。Oracle数据库系统以其稳定性、高性能和强大的数据管理功能著称,尤其适合大型企业级应用。下面我们...

    imp/exp oracle 全库

    Oracle 全库迁移使用 IMP/EXP 命令 在 Oracle 数据库中,进行全库迁移是一项复杂的任务,需要使用 IMP 和 EXP 命令来实现。下面将详细介绍如何使用 IMP 和 EXP 命令进行全库迁移,并注意 full 参数的使用。 一、...

    Oracle8i_9i数据库基础

    三、Oracle9i新特性 1. Advanced Queuing (AQ):提供了消息队列服务,增强了应用间的异步通信。 2. Real Application Clusters (RAC):允许多个服务器共享同一个数据库,提供高可用性和负载均衡。 3. Materialized ...

    Oracle9i数据库备份和恢复方案

    ### Oracle9i数据库备份与恢复方案详解 #### 一、背景介绍 Oracle9i作为一款高性能的关系型数据库管理系统,在企业级应用中具有重要的地位。为了确保数据的安全性和系统的稳定性,制定一套合理的备份与恢复策略至...

    oracle10g数据导入到oracle9i解决方案

    这一步是为了能够在Oracle 10g服务器上使用Oracle 9i客户端工具(如exp)进行数据导出。 1. **安装Oracle 9i客户端**:安装Oracle 9i客户端到运行Oracle 10g的机器上。 2. **配置Net Configuration Assistant**:...

    exp imp命令详细介绍

    综上所述,exp imp命令在Oracle数据库管理中扮演着至关重要的角色,无论是日常维护还是灾难恢复,掌握其使用方法都能极大提升数据库管理效率与安全性。通过对不同工作方式、操作模式以及高级选项的深入了解,数据库...

    Oracle Instant Client 11.2.0.1.0 轻量级Oracle客户端

    Oracle Instant Client 11.2.0.1.0是轻量级Oracle客户端,用于连接访问Oracle 9i、10g、11g 11.2.0.1.0版本的Oracle数据库。 Oracle Instant Client11.2.0.1.0 安装程序包含OCI/ OCCI、JDBC-OCI SDK(软件开发工具...

    Oracle Developer Suite 9i介绍.ppt

    在Oracle 9i之前的产品结构中,Oracle RDBMS(关系数据库管理系统)是核心,围绕它的是DBA工具、网络接口和高级语言接口,如ODL、ODS、OJS、IMP/EXP等。随着技术的发展,Oracle 9i引入了一个更为综合的平台,其中...

    Oracle9i(客户端)

    - 使用SQL*Plus:Oracle9i客户端的一个核心工具,用户可以通过命令行界面执行SQL语句,管理数据库对象,进行数据查询和更新。 - Net Service Name:通过tnsnames.ora文件配置,定义了服务器的连接信息,包括服务名...

    Oracle9i教程(精品)

    Oracle9i教程是一套针对数据库管理系统Oracle9i的详尽学习资源,旨在帮助初学者和有一定经验的用户深入了解和掌握这一强大的数据库系统。教程内容丰富,涵盖了从基础到高级的各种主题,无论你是刚接触Oracle的新手,...

    IMP OR EXP 性能

    在Oracle 9i及更高版本中,可以通过调整`LARGE_POOL_SIZE`参数来优化`IMP`和`EXP`操作的性能。增加大型池大小可以为`IMP`和`EXP`提供更多的缓存空间,从而减少磁盘I/O,提升操作速度。 #### 结论 `IMP`和`EXP`作为...

    Oracle9i/10g:SQL入门

    Oracle9i和10g是Oracle数据库系统的两个重要版本,SQL(Structured Query Language)作为数据库管理的核心语言,是学习和掌握这两个系统的基础。本电子图书《Oracle9i/10g:SQL入门》旨在帮助初学者快速理解并应用SQL...

    Oracle9i DBA Fundamentals II中文版

    Oracle9i支持多种备份类型,包括物理备份(如完整数据库备份、表空间备份和数据文件备份)和逻辑备份(如SQL*Plus的EXP/IMP工具)。物理备份通常用于快速恢复大量数据,而逻辑备份则适用于特定对象或数据集的恢复。 ...

    oracle 9i客户端

    最后,Oracle 9i客户端的安装文件"oracle9i310.msi"是一个Microsoft Installer包,方便用户通过标准的Windows安装程序进行部署,简化了安装过程。 总结来说,Oracle 9i客户端是数据库管理的重要工具,它提供的多种...

    Oracle11g和oracle10g之间数据的导入导出.

    以上介绍了Oracle 11g与Oracle 10g之间数据迁移的相关知识点,包括IMP/EXP和IMPDP/EXPDP工具的特性和使用方法,以及具体的步骤示例。通过这些工具和方法,我们可以高效地进行数据库数据的迁移工作。

    oracle9i初学者入门教程下载

    本教程旨在为初学者提供一个全面的Oracle 9i学习指南,帮助他们理解数据库的基本概念,掌握数据库管理系统的使用,并逐步成长为熟练的Oracle DBA(数据库管理员)。 首先,我们需要了解Oracle数据库的基础知识。...

Global site tag (gtag.js) - Google Analytics