Oracle 的数据导出导入命令:exp、imp

来源:互联网 发布:苹果电脑安装软件方法 编辑:程序博客网 时间:2024/06/06 00:00

C:\Documents and Settings\Administrator>exp help=y

Export: Release 9.2.0.1.0 - Production on 星期五 4月 18 17:43:14 2008

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


通过输入 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)
DIRECT     直接路径 (N)            TRIGGERS     导出触发器 (Y)
LOG        屏幕输出的日志文件 STATISTICS   分析对象 (ESTIMATE)
ROWS    导出数据行 (Y)        PARFILE      参数文件名
CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT    只在对象导出期间设置为读的事务处理 (N)
FEEDBACK             每 x 行的显示进度 (0)
FILESIZE             每个转储文件的最大大小
FLASHBACK_SCN        用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME       用于获取最接近指定时间的 SCN 的时间
QUERY                用于导出表的子集的 select 子句
RESUMABLE            遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME       用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
TTS_FULL_CHECK       对 TTS 执行完整的或部分相关性检查
TABLESPACES          要导出的表空间列表
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TEMPLATE             调用 iAS 模式导出的模板名

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

C:\Documents and Settings\Administrator>




C:\Documents and Settings\Administrator>imp help=y

Import: Release 9.2.0.1.0 - Production on 星期五 4月 18 17:48:16 2008

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.



可以通过输入 IMP 命令和您的用户名/口令
后接用户名/口令的命令:

例程: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种参数来控制“导入”
按照不同参数。要指定参数,您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明(默认)        关键字      说明(默认)
--------------------------------------------------------------------------
USERID   用户名/口令           FULL         导入整个文件 (N)
BUFFER   数据缓冲区大小         FROMUSER     所有人用户名列表
FILE     输入文件 (EXPDAT.DMP)    TOUSER       用户名列表
SHOW     只列出文件内容 (N) TABLES      表名列表
IGNORE   忽略创建错误 (N)    RECORDLENGTH IO 记录的长度
GRANTS 导入权限 (Y)           INCTYPE      增量导入类型
INDEXES 导入索引 (Y)          COMMIT       提交数组插入 (N)
ROWS    导入数据行 (Y)        PARFILE      参数文件名
LOG      屏幕输出的日志文件   CONSTRAINTS 导入限制 (Y)
DESTROY                覆盖表空间数据文件 (N)
INDEXFILE              将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
FEEDBACK               每 x 行显示进度 (0)
TOID_NOVALIDATE        跳过指定类型 ID 的验证
FILESIZE               每个转储文件的最大大小
STATISTICS             始终导入预计算的统计信息
RESUMABLE            在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME         用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
COMPILE                编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION 导入 Streams 的一般元数据 (Y)
STREAMS_INSTANITATION 导入 Streams 的实例化元数据 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据文件
TTS_OWNERS 拥有可传输表空间集中数据的用户

成功终止导入,但出现警告。

C:\Documents and Settings\Administrator>

导出数据库 在命令行中输入如下命令:

然后按回车键 说明:  c2j/c2j@c2j  分别表示用户名,密码和服务名 file:输出文件的位置和文件名 tables:输出的表名列表,多个表中间用逗号隔开

2--数据库导入(imp) 首先进入命令行

数据库导入(imp) 在命令行中输入如下命令:

然后按回车键 说明: c2j/c2j@c2j  分别表示用户名,密码和服务名 file:要导入的文件的全路迳 fromuser:指明来源用户方 ignore:是否忽略对象创建错误 commit:上载数据缓冲区中的记录,上载后是否执行提交

出现 正常终了表示导入成功 打开数据库,看是否导入成功 注:Oralce数据库导入导出时要确保Oralce服务启动 以下参考自:http://www.matrix.org.cn/thread.sHtml?forumId=36&topicId=23332 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/Oracle_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移 它有三种模式: a. 用户模式: 导出用户所有对象以及对象中的数据; b. 表模式: 导出用户所有表或者指定的表; c. 整个数据库: 导出数据库中所有对象。 2. 导出工具exp交互式命令行方式的使用的例子

3. 导出工具exp非交互式命令行方式的例子

说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600 (但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)

参数文件username.par内容 userid=username/userpassWord buffer=8192000 compress=n grants=y 说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改 filesize指定生成的二进制备份文件的最大字节数 (可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等) 二.导入工具 imp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin imp导入工具将EXP形成的二进制系统文件导入到数据库中. 它有三种模式: a. 用户模式: 导出用户所有对象以及对象中的数据; b. 表模式: 导出用户所有表或者指定的表; c. 整个数据库: 导出数据库中所有对象。 只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入 imp步骤: (1) create table (2) insert data (3) create index (4) create triggers,constraints 2.导入工具imp交互式命令行方式的例子

导入文件: expdat.dmp> /tmp/m.dmp 输入插入缓冲区大小(最小为 8192 ) 30720> 经由常规路径导出由EXPORT:V08.01.06创建的文件 警告: 此对象由 TEST 导出, 而不是当前用户 已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入 只列出导入文件的内容(yes/no):no> 由于对象已存在, 忽略创建错误(yes/no):no> yes 导入权限(yes/no):yes> 导入表数据(yes/no):yes> 导入整个导出文件(yes/no):no> yes . 正在将TEST的对象导入到 SCOTT . . 正在导入表 "CMAMENU" 4336行被导入 成功终止导入,但出现警告。 3.导入工具imp非交互式命令行方式的例子

4.导入工具imp可能出现的问题 (1) 数据库对象已经存在 一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等; 数据库对象已经存在, 按缺省的imp参数, 则会导入失败 假如用了参数ignore=y, 会把exp文件内的数据内容导入 假如表有唯一要害字的约束条件, 不合条件将不被导入 假如表没有唯一要害字的约束条件, 将引起记录重复 (2) 数据库对象有主外键约束 不符合主外键约束时, 数据会导入失败 解决办法: 先导入主表, 再导入依存表 disable目标导入对象的主外键约束, 导入数据后, 再enable它们 (3) 权限不够 假如要把A用户的数据导入B用户下, A用户需要有imp_full_database权限 (4) 导入大表( 大于80M ) 时, 存储分配失败 默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上. 导入时, 假如不存在连续一个大数据块, 则会导入失败. 导出80M以上的大表时, 记得compress= N, 则不会引起这种错误. (5) imp和exp使用的字符集不同 假如字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息. 导入完成后再改回来. (6) imp和exp版本不能往上兼容 imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件 根据情况我们可以用 $ imp username/password@connect_string 说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora 定义的本地或者远端数据库的名称 注重事项: UNIX: /etc/hosts 要定义本地或者远端数据库服务器的主机名 win98: windows\hosts 和IP地址的对应关系 win2000: winnt\system32\drivers\etc\hosts exp 将数据库内的各对象以二进制方式下载成damp文件,方便数据迁移。 buffer:下载数据缓冲区,以字节为单位,缺省依靠操作系统 consistent:下载期间所涉及的数据保持read only,缺省为n direct:使用直通方式 ,缺省为n feedback:显示处理记录条数,缺省为0,即不显示 file:输出文件,缺省为expdat.dmp filesize:输出文件大小,缺省为操作系统最大值 indexes:是否下载索引,缺省为n,这是指索引的定义而非数据,exp不下载索引数据 log:log文件,缺省为无,在标准输出显示 owner:指明下载的用户名 query:选择记录的一个子集 rows:是否下载表记录 tables:输出的表名列表 导出整个实例

user应具有dba权限 导出某个用户所有对象

导出一张或几张表

导出某张表的部分数据

不可用于嵌套表 以多个固定大小文件方式导出某张表

这种做法通常用在:表数据量较大,单个dump文件可能会超出文件系统的限制 直通路径方式 direct=y,取代buffer选项,query选项不可用 有利于提高下载速度 consistent选项 自export启动后,consistent=y冻结来自其它会话的对export操作的数据对象的更新,这样可以保证dump结果的一致性。但这个过程不能太长,以免回滚段和联机日志消耗完 imp 将exp下载的dmp文件上载到数据库内。 buffer:上载数据缓冲区,以字节为单位,缺省依靠操作系统 commit:上载数据缓冲区中的记录上载后是否执行提交 feeback:显示处理记录条数,缺省为0,即不显示 file:输入文件,缺省为expdat.dmp filesize:输入文件大小,缺省为操作系统最大值 fromuser:指明来源用户方 ignore:是否忽略对象创建错误,缺省为n,在上载前对象已被建立往往是一个正常现象,所以此选项建议设为y indexes:是否上载索引,缺省为n,这是指索引的定义而非数据,假如上载时索引已建立,此选项即使为n也无效,imp自动更新索引数据 log:log文件,缺省为无,在标准输出显示 rows:是否上载表记录 tables:输入的表名列表 touser:指明目的用户方 导入整个实例

导入某个用户所有对象

导入一张或几张表

以多个固定大小文件方式导入某张表

 

原创粉丝点击