exp和imp的详细操作

使用导出(exp)和导入(imp)移动数据

导出和导入实用程序

导出和导入实用程序使管理员能够在 Oracle 数据库之间和 Oracle 数据库内部

将数据移动到不同的表空间或用户或重新组织数据以获得高效的存储和性

导出实用程序

导出实用程序可用于制作操作系统二进制文件的对象定义和数据的逻辑副本

导出可写入磁盘或磁带上的文件导出实用程序在每个表中提取一致的数据视

导入实用程序

导入实用程序可以读取由导出实用程序创建的操作系统文件并将对象定义和

数据复制到 Oracle 数据库中导入实用程序不能读取文本文件或用任何其它格

式创建的文件

导出和导入的用途

 重新编排表

 将一个用户所拥有的数据移至另一用户

 在两个数据库之间移动数据:

– 从开发到生产

– 从 OLTP 系统到数据仓库

 将数据库移植到另外的:

– 操作系统平台

– Oracle 数据库发行版

 开发或升级期间重复测试运行

 执行逻辑备份

使用导出和导入

导出和导入可用于下列情况

 重新组织表很多情况都需要重新组织表

– 可能需要将数据从一个表空间移动到另一个表空间以使争用减到最

少减少空闲空间碎片或为了易于备份

– 表可能包含很多移植的行

– 表可能包含很多有大量空闲空间的块

– 表可能包含很多位于高水位标记以下的空块

 将一个用户拥有的数据移动到另一个用户当需要从数据库中删除某个方案

或需要重新分发对象所有权时可能必须进行上述操作从一个用户导出的

数据可以导入到不同用户的方案中

 在数据库之间移动数据通过只提取定义而忽略数据可将对象定义从开发

数据库移动到生产数据库导出和导入还可用于将数据从 OLTP 应用程序提

取到数据仓库中

 移植到不同的操作系统平台或 Oracle 版本在一台计算机上导出的数据可

以导入到不同计算机上的数据库中该计算机可能使用不同的字符集

 移植到不同版本的 Oracle 数据库升级到新版本的 Oracle 服务器时可以

从旧版本中导出数据并导入到新版本中注意不能使用该方法将数据从新

版本移至旧版本中

 在开发或升级过程中重复运行测试在开发或测试数据库中应用程序可

能需要先进行多次测试后才能被充分调试和接受可以将测试数据导出到外

部文件并在每次运行前导入以确保在同一数据集上执行测试该方法还可

用于在升级生产数据库之前测试新版本的 Oracle 服务器

 执行逻辑备份可导出数据库中的所有或部分对象并且导出文件可用作逻

辑备份

三种导出模式

导出实用程序提供三种导出模式

 表

 用户

 数据库

表模式

所有用户都可以使用表模式导出自己的表特权用户可以导出任何用户所拥有

的表使用表模式导出

 表定义

 表中的数据如果要求

 若由特权用户执行导出则将导出表上的所有索引否则只能导出该用

户所拥有表上的索引

 仅当特权用户运行该实用程序时才可导出表上的所有触发器否则只

能导出该用户所拥有表上的触发器

 表上的约束

 在表上进行的所有授权

 在导入时使用的分析方法定义

用户模式

用户模式导出的工作方式随运行导出的用户是否有特权而异

 特权用户可以导出任何用户所拥有的对象在这种情况下导出的对象是

– 用户拥有的所有对象除了该用户拥有的但位于其他用户所拥有表上

的索引和触发器

– 其他用户在该用户的表上创建的触发器和索引

 非特权用户只能导出自己拥有的对象且该模式不包括其他用户在该用户所

拥有表上创建的索引或触发器

完全数据库模式

使用该模式时除了用户 SYS 所拥有的对象以外将导出数据库中的所有对

象该模式要求特殊权限且只能由部分用户使用

常规路径

该术语指格式化数据库数据并将其写入导出文件的缺省方法常规路径导出使

用 SQL SELECT 语句从表中提取数据数据从磁盘读入缓冲区高速缓存行则

传送到求值

缓冲区传递了表达式求值后数据传送到导出客户端后者随后

将数据写入导出文件

直接路径

直接路径导出直接读取数据并绕过 SQL 命令处理层因此提取数据的速度比常

规路径导出快得多在直接路径导出中数据从磁盘读入缓冲区高速缓存行

则直接传送到导出进程这种导出方式绕过了求值缓冲区即不重新组织块中

的数据以使行块组合在一起数据已经是导出所期望的格式因此避免了不必

要的数据转换数据传送到导出进程然后该进程将数据写入导出文件

导入实用程序能够使用由任何路径创建的导出文件使用的导出路径对执行导

入所花的时间不会有太大影响

使用导出

$exp scott/tiger tables=(dept,emp) \

> file=emp.dmp log=exp.log \

> compress=n direct=y

使用导出

可通过以下方式调用导出

 命令行

 交互模式

 图形界面若有

提供交互模式主要是为了向后兼容它只提供命令行提供的部分选项因此

建议使用命令行模式

命令行

在 UNIX 或 Windows NT 上使用以下命令执行导出

$exp [keyword=]{value|(value, value ...)}

[ [ [,] keyword ]{value|(value, value ...)} ] ...

此处关键字是下一节所讨论的关键字之一

值是指定给关键字的值

命令行参数

以下显示了一些常用的参数

关键字         缺省值              含义

USERID                             Oracle 用户名和口令若未指定口令则用户将被提示输入口令

BUFFER        操作系统特有的       用于在行写入导出文件之前存储提取行的缓冲区

大小

COMPRESS      Y                    Y 值指定导入时初始区大小值将设置为等于段的当前大小

                                   N 值将导致保留当前区的大小导出时必须进行选择

                                   因为选择的信息要写入导出文件不收缩 LOB 段

CONSISTENT    N                    Y 值指定在一个只读事务中执行整个导出操作

                                   导出将尝试获取所有导出对象的读一致性图像

                                   N 值指定只需维护表级一致性

CONSTRAINTS   Y                    Y 值指定连同约束一起导出表N 值导致不导出约束

DIRECT        N                    Y 值指定导出使用直接路径N 值使用常规路径

FEEDBACK                           0 将该参数指定为整数 n 以请求在导出 n 行时显示

                                   句点 (.) 零缺省值表示不显示句点

FILE          expdat.dmp           输出文件名

FULL          N                    Y 值指定完全数据库导出

GRANTS        Y                    Y 值指定导入时还必须保留所有导出对象上的权限

HELP          N                    Y 值显示有关参数及其含义的列表此参数不与其它参数合用

INDEXES       Y                    Y 值使索引导出

LOG           NULL                 用于存储所有导出消息的文件名缺省情况下只在屏幕上显示消息

OWNER                              进行用户级导出的用户名

PARFILE                            指定包含导出参数列表的文件名

RECORDLENGTH 操作系统特有的        输出记录的大小

ROWS         Y                     Y 值指定将导出数据

STATISTICS   ESTIMATE              指定导入时使用的分析方法

TABLES                             方案表用于表模式导出

注释

 只可以定义下列参数之一FULL=Y WNER=user 或

TABLES=schema.table

 如果指定直接路径 (DIRECT=Y) 则 CONSISTENT 参数不能设置为 Y

使用导入

导入emp.dmp

$imp scott/tiger tables=(dept,emp) \

> file=emp.dmp log=imp.log ignore=y

使用导入

可通过以下方式调用导入

 命令行

 交互模式

 图形界面若有

提供交互模式主要是为了向后兼容它只提供命令行提供的部分选项因此

建议使用命令行模式

命令行

在 UNIX 或 Windows NT 上使用以下命令执行导出

$imp [keyword=]{value|(value, value ...)}

[ [ [,] keyword ]{value|(value, value ...)} ] ...

此处关键字是下一节将讨论的关键字之一

值是指定给关键字的值

命令行参数

以下显示了一些常用的参数

关键字            缺省值                           含义

USERID                                             Oracle 用户名和口令如果未指定口令则将提示

                                                   用户输入口令

BUFFER            操作系统特有的                   传送数据行的缓冲区大小以字节为单位

COMMIT            N                                Y 值指定导入应在每个数组插入后提交缺省情况

                                                   下只在装载每个表后提交导入在继续下一个对

                                                   象前若发生错误则导入执行回退指定

                                                   COMMIT=Y 以防止回退段无限增大

FEEDBACK          0                                将该参数指定为整数 n 以请求在导入 n 行时显示句

                                                   点 (.) 缺省值禁止显示

FILE              expdat.dmp                       输入文件名

FROMUSER          NULL                             导入对象所属的用户列表

FULL              N                                Y 值指定完全数据库导入

GRANTS            Y                                Y 值指定还必须导入所有导入对象上的权限

HELP              N                                Y 值显示有关参数及其含义的列表此参数不与其它参数合用

IGNORE            N                                如果值为 Y 则导入在尝试创建数据库对象时将忽

                                                   略对象创建错误在这种情况下导入不报告错

                                                   误继续进行对于表IGNORE=Y 使行导入现有

                                                   表不显示任何消息IGNORE=N 导致报告错误

                                                   如果表已存在则跳过表

                                                   注意只忽略对象创建错误不忽略其它错误如

                                                   操作系统错误数据库错误和 SQL 错误并可能导

                                                   致处理停止

INDEXES           Y                                Y 值导致索引导入

INDEXFILE         NULL                             指定文件接收索引创建命令若指定了该参数则

                                                   请求模式的索引创建命令将被提取并写入指定文

                                                   件而不用于在数据库中创建索引不导入表和其

                                                   它数据库对象

                                                   然后可以编辑文件例如更改存储参数并将

                                                   其用作创建索引的 SQL 脚本

LOG               NULL                             用于存储所有导入消息的文件名缺省情况下只在屏幕上显示消息

PARFILE                                            指定包含导入参数列表的文件名

RECORDLENGTH      操作系统特有的                   输入记录的大小仅当在记录大小不同的操作系统

                                                   上导出数据时才需要此参数

ROWS              Y                                Y 值指定导入数据

SHOW              N                                如果值为 Y 则只显示而不导入列出的导出文件内

                                                   容导出中包含的 SQL 语句按导入时 SQL 语句的

                                                   执行顺序显示如果 SHOW=Y 则唯一可以设置

                                                   的其它参数为 FROMUSER TOUSER FULL 和TABLES

TABLES            NULL                             要导入的表名

TOUSER            NULL                             要导入表的用户名列表只有具有

                                                   IMP_FULL_DATABASE 角色的用户才可以使用

                                                   该参数将对象导入其他用户的帐户

注释

 只可以定义下列参数之一FULL=Y WNER=user 或

TABLES=schema.table

导入行为

 导入顺序:

表->数据->B 树索引->约束, 触发器, 位图索引

 对象使用的表空间:

– 源数据库中的相同表空间 (如果有)

– 用户的缺省表空间

导入顺序

表对象按照从导出文件读取的顺序导入导出文件按下列顺序包含对象

1 类型定义

2 表定义

3 表数据

4 表索引

5 完整性约束视图过程和触发器

6 位图函数和域索引

该顺序防止因导入表的顺序而拒绝数据该顺序还可防止在同一数据上两次触

发冗余触发器一次在初始插入时一次在导入时

但是某些对象如过程在导入时可能因为是在它们所引用对象之前导入的

而无效使用 STATUS=INVALID 检查对象并重新编译它们

导入现有表的注意事项

将数据导入现有表时导入顺序仍然会产生引用完整性失败如果表上的引用

完整性约束在导入结束时引用自身则也会发生类似的情况

出于上述原因导入现有表时禁用引用约束是一个好办法导入结束后可以

重新启用约束

用于对象的表空间

如果用户有必需的限额则将表导入它们导出时所在的同一表空间但是如

果这样的表空间已不存在或者用户没有必需的限额则导入将在该用户的缺省

表空间内创建表如果用户无法访问缺省表空间则无法导入表

只能将 LOB 段导入它导出时所在的同一表空间因此如果表所有者不能在导

出 LOB 段的表空间内创建对象则将无法创建包含 LOB 的表

导出和导入原则

 使用参数文件指定常用命令行选项

 仅在导出少量数据时使用 CONSISTENT=Y

 如果存在许多已删除的行, 请勿使用 COMPRESS=Y

 通过以下操作提高性能:

– 分配大容量缓冲区

– 若使用 7.3.3 或更高版本, 则使用直接路径

导出和导入原则

使用参数文件存储常用的命令行参数这可使错误减到最少并使命令行保持较

如果正导出的表上存在大量的更新操作使用 CONSISTENT=Y 很可能会产生

SNAPSHOT TOO OLD 错误通常在操作低峰时期运行较大的输出会更好

或者创建一个较大的回退段使所有其它的回退段脱机然后执行导入

导出选项 COMPRESS=Y 将生成创建初始区的代码初始区的大小等于当前分

配给对象的所有区的总大小如果对象上有很多已删除的行或者如果上一个

区有很多未使用的块这将不必要地分配给对象很多空间

分配计算机上的操作系统和资源所允许的缓冲区大小如果将数据导入运行

7.3.3 版或更高版本的数据库则使用直接路径导出

经过测试在exp命令中使用driect=y采用直接路径导出比常规路径要快2-3倍

常规路径

该术语指格式化数据库数据并将其写入导出文件的缺省方法常规路径导出使

用 SQL SELECT 语句从表中提取数据数据从磁盘读入缓冲区高速缓存行则

传送到求值

缓冲区传递了表达式求值后数据传送到导出客户端后者随后

将数据写入导出文件

直接路径

直接路径导出直接读取数据并绕过 SQL 命令处理层因此提取数据的速度比常

规路径导出快得多在直接路径导出中数据从磁盘读入缓冲区高速缓存行

则直接传送到导出进程这种导出方式绕过了求值缓冲区即不重新组织块中

的数据以使行块组合在一起数据已经是导出所期望的格式因此避免了不必

要的数据转换数据传送到导出进程然后该进程将数据写入导出文件

导入实用程序能够使用由任何路径创建的导出文件使用的导出路径对执行导

入所花的时间不会有太大影响

导出和字符集转换

常规路径导出在写入导出文件时使用为用户会话指定的字符集如 7 位 ASCII

或 IBM 代码页 500 (EBCDIC)

直接路径导出只使用数据库字符集导出启动导出时如果导出会话的字符集

和数据库字符集不同则导出显示警告并中止在重新尝试导出前将会话字

符集指定为与数据库字符集相同

导出文件包含一个标识用于显示其字符数据所使用的字符编码方案

导入和字符集转换

导入会话和目标数据库字符集可以不同于源数据库字符集这种情况要求一个

或多个字符集转换操作

如有必要在导入时首先将导出文件数据转换到为用户会话指定的字符编码方

案然后转换到数据库字符集

转换期间导出文件中所有在目标字符集中无等效字符的字符都用缺省字符代

替这些缺省字符由目标字符集定义若要保证 100% 转换目标字符集必须

是源字符集的超集或等效于源字符集

原则

因为字符集转换延长了导入所需的处理时间所以应尽可能地限制字符集转换

次数最理想的情形是导入会话和目标数据库字符集与源数据库字符集相

同不要求转换

时间: 2024-10-27 01:47:36

exp和imp的详细操作的相关文章

Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍

导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳.当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议.对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具.下面说明一下EXP/IMP的

Parallels Desktop停止Windows程序详细操作步骤

  Parallels Desktop停止Windows程序详细操作步骤 在Parallels Desktop中要立即停止Windows与所有打开的Windows程序,请进行以下当中的一项操作: 点击菜单栏中 Parallels 图标,按选项 (Alt) 键,按住该键选择 功能 > 停止 . 如果在屏幕顶部可以看见 Parallels Desktop 菜单栏,请选择 虚拟机 > 停止 . 重要提示: 当您使用此方法停止 Windows 时,所有数据和进度将不被保存. 如果 Windows 设置

kettle列转行-kettle如何用工具实现行转列列转行的详细操作

问题描述 kettle如何用工具实现行转列列转行的详细操作

退出exp、imp、telnet等等交互窗口

退出exp.imp.telnet等等交互窗口   >     

MySQL5.7的安装与配置详细操作步骤

一.MySQL的下载 1.登陆MySQL的官网下载适用于64位系统的ZIP压缩包(https://dev.mysql.com/downloads/mysql/) 二.解压安装包 将下载的ZIP压缩包解压到任意文件夹.(此处为: C:\mysql5.7) 三.修改配置文件 将解压文件夹目录下的my-default.ini 文件重命名为 my.ini  . 用文本编辑器打开并清空其中内容. 添加内容(参考互联网): [mysql] # 设置mysql客户端默认字符集 default-characte

Oracle EXP和IMP用法和介绍_oracle

正在看的ORACLE教程是:OracleEXP和IMP用法和介绍. 1.Export/Import的用处      Oracle  Export/Import工具用于在数据库之间传递数据.      Export从数据库中导出数据到dump文件中      Import从dump文件中到入数据导数据库中      下面是一般使用他们的情况      (1).两个数据库之间传送数据                      同一个版本的oracle  Server之间               

jQuery内核 DOM详细操作

 domManip是什么 dom即Dom元素,Manip是Manipulate的缩写,连在一起就是Dom操作的意思. jQuery针对DOM操作的插入的方法有大概10种 append.prepend.before.after.replaceWith appendTo.prependTo.insertBefore.insertAfter.replaceAll 分2组,上下对照,实现同样的功能.主要的不同是语法--特别是内容和目标的位置 依赖的domManip,buildFragment模块在之前

迅捷PDF转换器将PDF转换成Word的详细操作教程

1.选择转换模式.PDF转换器软件目前支持八大转换模式,用户可以根据自己的需求选择相应的转换模式.小编就以"any转Word"模式为例,教大家如何操作软件. 2.添加文件.点击PDF转换软件的"添加文件"按钮,将PDF文件添加到程序界面,软件支持添加多个PDF文件. 3.输出选项.PDF转换器软件默认将转换出来的文件保存在原文件夹内,或者自定义文件夹存储路径,最后点击右下方"开始转换"即可顺利完成转换. 上面文件保存位置是在桌面上,转换完成后,用

Mysql下载安装、部署与图形化详细操作教程_Mysql

Mysql是一个必须学会如何安装与部署的工具,它不同于其它那些傻瓜式的应用/程序,一键到底,如果是初次在Windows下安装Mysql的初学者还是有一定难度的. 本文配合之前的<Javaweb开发环境Myeclipse6.5 JDK1.6 Tomcat6.0 SVN1.8配置教程>(点击打开链接)一文中的前台开发环境的部署,也就形成了JavaWeb.JSP.J2EE的基本开发环境. 一.Mysql的下载 首先打开Mysql的官网(点击打开链接),百度一下是搜不到的,我也找了很久才找到Mysql