### Oracle 导入(IMP)与导出(EXP)命令详解 #### 一、概述 在Oracle数据库管理中,导入(Import,IMP)与导出(Export,EXP)是两个非常重要的工具,用于数据迁移、备份恢复等场景。本文将详细介绍这两个命令的使用方法及各个参数的意义。 #### 二、Oracle EXP 命令详解 **1. 基本语法** ``` exp userid=SCOTT/TIGER key1=val1 [key2=val2 ...] ``` **2. 参数说明** - **userid=SCOTT/TIGER**:指定数据库用户名和密码。 - **key1=val1 [key2=val2 ...]**:设置导出过程中的各项参数。 **3. 关键参数详解** - **grants=Y**: 表示是否导出授权信息,默认为Y。 - **tables=(EMP, DEPT, MGR)**: 指定导出的表名列表。 - **tables=(T1:P1,T1:P2)**: T1是表名,P1和P2是分区名,表示导出特定分区的数据。 - **full=N**: 是否进行全库导出,默认为N。 - **buffer=缓冲区大小**: 设置读取数据时的缓冲区大小,默认为20480字节。 - **file=文件名**: 导出文件的名称,默认为expdp_$date$.dmp。 - **owner=所有者用户名**: 指定导出哪些用户的数据。 - **compress=Y**: 是否压缩导出数据,默认为Y。 - **recordlength=记录长度**: 设置I/O记录的最大长度,默认为16384字节。 - **inc=增量导出级别**: 设置增量导出级别,如1、2等。 - **indexes=Y**: 是否导出索引,默认为Y。 - **rows=Y**: 是否导出表数据,默认为Y。 - **parfile=文件名**: 参数文件的名称,可以从文件中读取参数值。 - **constraints=Y**: 是否导出约束,默认为Y。 - **consistent=Y**: 设置一致性检查,默认为Y。 - **log=日志文件名**: 日志文件的名称。 - **statistics=ESTIMATE**: 设置统计信息收集方式,如estimate、actual等。 - **direct=N**: 是否采用直接路径模式,默认为N。 - **triggers=Y**: 是否导出发起器,默认为Y。 - **feedback=每x行显示一次**: 显示导出进度,默认为0不显示。 - **filesize=文件大小**: 单个导出文件的最大大小,默认为无限大。 - **query='where条件'**: 指定查询条件,用于过滤导出数据。 - **transport_tablespace=N**: 是否启用表空间传输模式,默认为N。 - **tablespaces=表空间列表**: 指定要导出的表空间列表。 **4. 示例** - 导出SCOTT用户的EMP和DEPT表: ``` exp SCOTT/TIGER grants=y tables=(EMP, DEPT) ``` #### 三、Oracle IMP 命令详解 **1. 基本语法** ``` imp userid=SCOTT/TIGER key1=val1 [key2=val2 ...] ``` **2. 参数说明** - **userid=SCOTT/TIGER**:指定数据库用户名和密码。 - **key1=val1 [key2=val2 ...]**:设置导入过程中的各项参数。 **3. 关键参数详解** - **full=N**: 是否进行全库导入,默认为N。 - **buffer=缓冲区大小**: 设置读取数据时的缓冲区大小,默认为20480字节。 - **fromuser=用户名**: 指定从哪个用户的数据文件中导入数据。 - **file=文件名**: 导入文件的名称,默认为expdp_$date$.dmp。 - **touser=用户名**: 指定导入到哪个用户的数据。 - **show=N**: 是否只显示SQL语句而不执行,默认为N。 - **tables=表名列表**: 指定导入的表名列表。 - **ignore=N**: 是否忽略导入过程中出现的错误,默认为N。 - **recordlength=记录长度**: 设置I/O记录的最大长度,默认为16384字节。 - **grants=Y**: 是否导入授权信息,默认为Y。 - **indexes=Y**: 是否导入索引,默认为Y。 - **commit=N**: 是否在导入每个对象后提交,默认为N。 - **rows=Y**: 是否导入表数据,默认为Y。 - **parfile=文件名**: 参数文件的名称,可以从文件中读取参数值。 - **log=日志文件名**: 日志文件的名称。 - **constraints=Y**: 是否导入约束,默认为Y。 - **destroy=N**: 是否覆盖同名对象,默认为N。 - **indexfile=文件名**: 导入索引信息的文件名。 - **skip_unusable_indexes=N**: 是否跳过不可用索引,默认为N。 - **analyze=Y**: 是否自动执行分析,默认为Y。 - **feedback=每x行显示一次**: 显示导入进度,默认为0不显示。 - **to_id_no_validate**: 是否验证导入对象的唯一标识符。 - **filesize=文件大小**: 单个导入文件的最大大小,默认为无限大。 - **recalculate_statistics=N**: 是否重新计算统计信息,默认为N。 - **transport_tablespace=N**: 是否启用表空间传输模式,默认为N。 - **tablespaces=表空间列表**: 指定要导入的表空间列表。 - **datafiles=数据文件列表**: 指定要导入的数据文件列表。 - **tts_owners=表空间所有者列表**: 指定要导入的表空间所有者列表。 **4. 示例** - 将SCOTT用户的EMP和DEPT表导入到HR用户下,并忽略导入过程中的错误: ``` imp SCOTT/TIGER ignore=y tables=(EMP, DEPT) full=n ``` 通过上述详细的参数解释和示例,可以更好地理解和掌握Oracle EXP和IMP命令的使用方法,从而有效地进行数据迁移和备份恢复等工作。这些命令不仅适用于日常维护,还能在紧急情况下提供有效的解决方案。
通过输入 EXP 命令和用户名/口令,您可以
在用户 / 口令之后的命令:
实例: EXP SCOTT/TIGER
或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。
要指定参数,您可以使用关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明(默认)
---------------------------------------------------
USERID 用户名/口令
FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 导入一个范围 (Y)
RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y)
INCTYPE 增量导出类型
INDEXES 导出索引 (Y)
RECORD 跟踪增量导出 (Y)
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助