ORACLE EXP/IMP 说明

 

 

       Oracle 的导出导入是一个很常用的迁移工具。 Oracle 10g中,Oracle 推出了数据泵(expdp/impdp). 它可以通过使用并行,从而在效率上要比exp/imp 要高。

       Oracle 10g11g的官方文档里没有搜到有关exp/imp 的说明, 9i里找到了相关的使用说明。 连接如下:

 

Export

http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch01.htm

 

Import

http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch02.htm#SUTIL002

 

       执行备份和恢复的时候,不要在客户端的shell 窗口执行, 要将备份的的进程添加到服务器的后台执行。

 

参考:

       Linux 前台 后台进程 说明

       http://blog.csdn.net/tianlesoftware/archive/2011/01/27/6165753.aspx

 

. 命令帮助如下:

 

1.1 export

[oracle@rac1 ~]$ exp help=y

 

Export: Release 10.2.0.1.0 - Production on Tue May 10 10:35:26 2011

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

 

You can let Export prompt you for parameters by entering the EXP

command followed by your username/password:

 

     Example: EXP SCOTT/TIGER

 

Or, you can control how Export runs by entering the EXP command followed

by various arguments. To specify parameters, you use keywords:

 

     Format:  EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)

     Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

               or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

 

USERID must be the first parameter on the command line.

 

Keyword    Description (Default)      Keyword      Description (Default)

--------------------------------------------------------------------------

USERID     username/password          FULL         export entire file (N)

BUFFER     size of data buffer        OWNER        list of owner usernames

FILE       output files (EXPDAT.DMP)  TABLES       list of table names

COMPRESS   import into one extent (Y) RECORDLENGTH length of IO record

GRANTS     export grants (Y)          INCTYPE      incremental export type

INDEXES    export indexes (Y)         RECORD       track incr. export (Y)

DIRECT     direct path (N)            TRIGGERS     export triggers (Y)

LOG        log file of screen output  STATISTICS   analyze objects (ESTIMATE)

ROWS       export data rows (Y)       PARFILE      parameter filename

CONSISTENT cross-table consistency(N) CONSTRAINTS  export constraints (Y)

 

OBJECT_CONSISTENT    transaction set to read only during object export (N)

FEEDBACK             display progress every x rows (0)

FILESIZE             maximum size of each dump file

FLASHBACK_SCN        SCN used to set session snapshot back to

FLASHBACK_TIME       time used to get the SCN closest to the specified time

QUERY                select clause used to export a subset of a table

RESUMABLE            suspend when a space related error is encountered(N)

RESUMABLE_NAME       text string used to identify resumable statement

RESUMABLE_TIMEOUT    wait time for RESUMABLE

TTS_FULL_CHECK       perform full or partial dependency check for TTS

VOLSIZE              number of bytes to write to each tape volume

TABLESPACES          list of tablespaces to export

TRANSPORT_TABLESPACE export transportable tablespace metadata (N)

TEMPLATE             template name which invokes iAS mode export

 

Export terminated successfully without warnings.

 

1.2 import

[oracle@rac1 ~]$ imp help=y

 

Import: Release 10.2.0.1.0 - Production on Tue May 10 10:35:49 2011

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

 

You can let Import prompt you for parameters by entering the IMP

command followed by your username/password:

 

     Example: IMP SCOTT/TIGER

 

Or, you can control how Import runs by entering the IMP command followed

by various arguments. To specify parameters, you use keywords:

 

     Format:  IMP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)

     Example: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

               or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

 

USERID must be the first parameter on the command line.

 

Keyword  Description (Default)       Keyword      Description (Default)

--------------------------------------------------------------------------

USERID   username/password           FULL         import entire file (N)

BUFFER   size of data buffer         FROMUSER     list of owner usernames

FILE     input files (EXPDAT.DMP)    TOUSER       list of usernames

SHOW     just list file contents (N) TABLES       list of table names

IGNORE   ignore create errors (N)    RECORDLENGTH length of IO record

GRANTS   import grants (Y)           INCTYPE      incremental import type

INDEXES  import indexes (Y)          COMMIT       commit array insert (N)

ROWS     import data rows (Y)        PARFILE      parameter filename

LOG      log file of screen output   CONSTRAINTS  import constraints (Y)

DESTROY                overwrite tablespace data file (N)

INDEXFILE              write table/index info to specified file

SKIP_UNUSABLE_INDEXES  skip maintenance of unusable indexes (N)

FEEDBACK               display progress every x rows(0)

TOID_NOVALIDATE        skip validation of specified type ids

FILESIZE               maximum size of each dump file

STATISTICS             import precomputed statistics (always)

RESUMABLE              suspend when a space related error is encountered(N)

RESUMABLE_NAME         text string used to identify resumable statement

RESUMABLE_TIMEOUT      wait time for RESUMABLE

COMPILE                compile procedures, packages, and functions (Y)

STREAMS_CONFIGURATION  import streams general metadata (Y)

STREAMS_INSTANTIATION  import streams instantiation metadata (N)

VOLSIZE                number of bytes in file on each volume of a file on tape

 

The following keywords only apply to transportable tablespaces

TRANSPORT_TABLESPACE import transportable tablespace metadata (N)

TABLESPACES tablespaces to be transported into database

DATAFILES datafiles to be transported into database

TTS_OWNERS users that own data in the transportable tablespace set

 

Import terminated successfully without warnings.

[oracle@rac1 ~]$

 

.  Export

1. 表模式

       备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp.dmp log=exp.log tables=tab1,tab2,tab3

 

若直接备份到磁带设备,使用如下命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp.log tables=tab1,tab2,tab3

 

       注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。

 

2. 用户模式

       备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。 若备份到本地文件,使用如下命令:

       exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 file=exp.dmp log=exp.log

 

若直接备份到磁带设备,使用如下命令:

       exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp.log

 

       注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。

 

3. 完全模式

       备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:

      exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 full=y  file=exp_.dmp log=exp.log

 

 

三.IMPORT

       import 要与export 对应。 就是采用什么方式export,就需要采用什么方式import,因此import 也有三种模式:表恢复、用户恢复、完全恢复。

 

1. 表模式

此方式将根据按照表模式备份的数据进行恢复。  

 

1.1 恢复备份数据的全部内容

       imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=exp.dmp log=imp.log

 

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp.log

 

1.2 恢复备份数据中的指定表:

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=exp.dmp log=imp.log tables=t1,t2,t3

 

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0  

log=imp.log tables=t1,t2,t3

 

2. 用户模式

此方式将根据按照用户模式备份的数据进行恢复。

 

2.1. 恢复备份数据的全部内容

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=exp.dmp log=imp.log

 

若从磁带设备恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp.log

 

2.2. 恢复备份数据中的指定表

若从本地文件恢复,使用如下命令:

imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp.dmp log=imp.log tables=t1,t2,t3;

 

 

3. 完全模式

       如果备份方式为完全模式,采用下列恢复方法:

 

imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y file=exp.dmp log=imp.log

 

 

4. 参数说明

4.1. ignore参数

       Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。

       ignore=yOracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。

      ignore=nOracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。 ­

 

4.2. indexes参数

       在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。

 

4.3 字符集转换

       对于单字节字符集(例如US7ASCII,恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);

       对于多字节字符集(例如ZHS16CGB231280),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。

 

5.  IMP 常见问题及解决方法

5.1  数据库对象已经存在

      一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等数据库对象已经存在, 按缺省的imp参数, 则会导入失败如果用了参数ignore=y, 会把exp文件内的数据内容导入如果表有唯一关键字的约束条件, 不合条件将不被导入如果表没有唯一关键字的约束条件, 将引起记录重复

 

5.2  数据库对象有主外键约束

      不符合主外键约束时, 数据会导入失败,

      解决办法:

         先导入主表, 再导入依存表

     disable目标导入对象的主外键约束, 导入数据后, enable它们

 

5.3  权限不够

       如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限

 

5.4  导入大表( 大于80M ) , 存储分配失败

      默认的EXP, compress = Y, 也就是把所有的数据压缩在一个数据块上.

      导入时, 如果不存在连续一个大数据块, 则会导入失败. 导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.

 

5.5  impexp使用的字符集不同

      如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息导入完成后再改回来.

 

5.6  impexp版本不能往上兼容

       可以从低版本导入高版本,但不能从高版本导入到低版本。

       如果遇到迁移因版本不同的问题,可以用低版本的export 导出,到导入到低版本。

 

 

. 示例

 

4.1 oracle创建表空间,创建用户

 

//创建临时表空间

create temporary tablespace test_temp

tempfile ‘/u01/app/oracle/oradata/orcl/test_temp01.Dbf'

size 32m autoextend on next 32m maxsize 2048m

extent management local;

 

//创建数据表空间

create tablespace test_data logging

datafile '/u01/app/oracle/oradata/orcl/test_data01.dbf' ­

size 32m autoextend on

next 32m maxsize 2048m

extent management local;

 

//创建用户并指定表空间

create user username identified by password

default tablespace test_data

temporary tablespace test_temp;

 

//给用户授予权限 ­

grant connect,resource to username;

 

先创建一个用户和表空间,用户名david,密码david.在这个表空间下创建一个表:tianle。随便插入些数据。代码如下:

 

SQL> create tablespace test_data

  3  datafile '/u01/app/oracle/oradata/orcl/test_data01.dbf'

  4  size 5m;

Tablespace created.

 

SQL> create user david identified by david default tablespace test_data;

SQL> grant connect,resource to david;

SQL> conn david/david

SQL> create table tianle(id number, content varchar2(100));

 

SQL> set wrap off

SQL> column id format a20;

SQL> column content format a50;

 

 

4.2 表模式备份 恢复

备份:

[oracle@roy orcl]$ exp david/david rows=y indexes=n compress=n buffer=65536 file=exp_tianle_090101.dmp log=exp_tianle_090101.log tables=(tianle);

恢复:

[oracle@roy orcl]$ imp david/david fromuser=david touser=david rows=y indexes=n commit=y   buffer=65536 file=exp_tianle_090101.dmp log=imp_tianle_090101.log tables=(tianle); ­

 

4.3 用户模式备份与恢复

备份:

[oracle@roy orcl]$ exp david/david owner=david rows=y indexes=n compress=n buffer=65536 file=exp_david__090101.dmp log=exp_david_090101.log; ­

 

恢复:

[oracle@roy orcl]$ imp david/david fromuser=david touser=david rows=y indexes=n commit=y buffer=65536 file=exp_tianle_090101.dmp log=exp_tianle_090101.log; ­

 

4.4 完全模式备份与恢复

备份:

[oracle@roy orcl]$ exp david/david rows=y indexes=n compress=n buffer=65536 full=y file=exp_fulldatabase_090101.dmp log=exp_fulldatabase_090101.log; ­

 

恢复

[oracle@roy orcl]$ imp david/david rows=y indexes=n commit=y  full=y ignore=y buffer=65536 file=/tmp/exp_fulldatabase_090101.dmp log=/tmp/imp.log;

 

 

 

 

 

-------------------------------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716();   DBA2 群:62697977()   DBA3 群:62697850()  

DBA 超级群:63306533();  DBA4 群: 83829929  DBA5群: 142216823   

聊天 群:40132017   聊天2群:69087192

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

 

转载于:https://www.cnblogs.com/spring3mvc/archive/2009/10/23/2414979.html

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

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

相关文章

JAXB –新手的观点,第1部分

我知道你们很多人已经在想什么了,所以让我们摆脱它:“ JAXB? 如XML? 来吧,所有很棒的孩子都在使用JSON。” 关于XML与JSON的争论以及许多促成它的论据都已被很好地记录在案。 我不会花很多时间在这里重新整理它们。 我…

初识C语言(五)

自定义函数 C语言提供了大量的库函数(右侧资料下载中有),比如stdio.h提供输出函数,但是还是满足不了我们开发中的一些逻辑,所以这个时候需要自己定义函数,自定义函数的一般形式: 注意&#xff1…

bzoj2916: [Poi1997]Monochromatic Triangles 思路

bzoj2916: [Poi1997]Monochromatic Triangles 链接 bzoj 思路 总方案\(C_{n}^{3}-异色三角形\) 异色三角形有个特点。 会出现两个点有两条不同色的边。 然后统计就行了。 代码 #include <bits/stdc.h> #define ll long long using namespace std; const int _5e37; int n…

nodeJS实现简单网页爬虫功能

前面的话 本文将使用nodeJS实现一个简单的网页爬虫功能 网页源码 使用http.get()方法获取网页源码&#xff0c;以hao123网站的头条页面为例 http://tuijian.hao123.com/hotrank var http require(http);http.get(http://tuijian.hao123.com/hotrank,function(res){var data ;…

不能上网原因(查)

实验室不能上网原因记录&#xff1a;如果不是你电脑原因&#xff0c;很可能就是路由器和dns设置的问题。。把dns设置为寝室校园网专用dns试试可能就好了。。 网页打不开&#xff0c;浏览器打不开&#xff0c;这是上网时候广大网友经常碰见的问题&#xff0c;本文将针对网页打不…

JavaFX技巧6:使用透明颜色

为用户界面元素选择正确的颜色始终是一个很大的挑战&#xff0c;但是当您开发可重用的框架控件时&#xff0c;开发人员就无法控制使用它们的应用程序的外观和感觉&#xff0c;这甚至更具挑战性。 尽管您可能总是将元素添加到默认的灰色背景之上&#xff0c;但是嵌入控件的开发人…

bzoj2287【POJ Challenge】消失之物 缺一01背包

bzoj2287【POJ Challenge】消失之物 缺一01背包 链接 bzoj 思路 分治solve(l,r,arr)表示缺少物品\([l,r]\)的dp数组arr。 然后solve(l,mid,arr)用右边的物品更新&#xff0c;solve(mid1,r,arr)同理。 \(f(n)2*f(\frac{n}{2})(r-l1)*m\) 复杂度为\(O(nmlog{n})\) 缺点最短路也是…

38.QT-QAxObject快速写入EXCEL示例

参考链接: https://blog.csdn.net/czyt1988/article/details/52121360 http://blog.sina.com.cn/s/blog_a6fb6cc90101gv2p.html 1. QAxObject介绍 在QT中,有个自带的QAxObject类,可以直接操作EXCEL 除此之外,当我们操作某个文件夹下的EXCEL的时候,都会在该文件夹下出现一个隐藏…

EA常见画图(类图、包图、构件图、状态图、顺序图、活动图)

EA常见活动图&#xff0c;状态图画法 类图:111&#xff08;1&#xff09;给关系添加注释&#xff08;2&#xff09;设置关系线样式 包图&#xff1a;&#xff08;1&#xff09;创建包图&#xff08;2&#xff09;在包中添加子包&#xff1a;&#xff08;3&#xff09;在包中添加…

比萨问题–建造者与装饰者

问题陈述 我们需要为一家披萨公司构建软件&#xff0c;该公司想要准备各种类型的披萨&#xff0c;例如鸡肉披萨&#xff0c;扁平面包&#xff0c;意大利辣香肠披萨和额外的奶酪&#xff0c;并在上面放些配料。 让我们尝试看看哪种设计模式适合该问题说明以及在哪种情况下。 传…

系统启动

1.开机2.bios加电自检power on self test 由于此时显卡还未初始化&#xff0c;只能靠声音辨别错误3.将boot sector读入0000&#xff1a;7c00处4.检查0000&#xff1a;7def是否等于0xaa555.跳转到0000&#xff1a;7c00处执行MBR程序6.MBR将自己复制到0000&#xff1a;0600处执行…

bzoj3589 动态树 求链并 容斥

bzoj3589 动态树 链接 bzoj 思路 求链并。 发现只有最多5条链子&#xff0c;可以容斥。 链交求法&#xff1a;链顶是两条链顶深度大的那个&#xff0c;链底是两个链底的\(lca\) 如果链底深度小于链顶&#xff0c;就说明两条链没有交集。 复杂度\(m*2^klog^2n\) 还有一种做法。 …

NodeJS学习目录

前面的话 几年前&#xff0c;对于学习NodeJS可能还有所迟疑&#xff0c;怕分散了前端学习的精力。但到了现在&#xff0c;如果不学习nodeJS&#xff0c;前端的学习却可能无法再有所进展。技术的进步就是这么残酷。对新技术观望的时候&#xff0c;该技术已经大行其道了 小火柴将…

最佳加法表达式

题意&#xff1a;有一个由1..9组成的数字串.问如果将m个加号插入到这个数字串中,在各种可能形成的表达式中&#xff0c;值最小的那个表达式的值是多少。输入&#xff1a;5 31 2 3 4 5输出&#xff1a;24 1 #include<iostream>2 #include<algorithm>3 using namespa…

我最喜欢的IntelliJ IDEA功能

我已经是IntelliJ IDEA的长期用户&#xff08;和客户&#xff09;。 我想我是在2005年或2006年&#xff08;版本5.0&#xff09;左右开始使用它的。 那时我是Eclipse用户。 我的一些同事向我推荐了它&#xff0c;起初我没有被说服&#xff0c;但是在尝试之后我印象深刻。 现在…

[转载]PHP 计算时间差

我们常常在网站上看到某篇文章发表于“3天前”&#xff0c;“5个月前”&#xff0c;“4年前”。下面这个函数就提供了计算这个时间差的功能。 <?php/*** 时间差计算** param Timestamp $time* return String Time Elapsed* author Shelley Shyan* copyright http://phparch…

cd1101d 树形dp

cd1101d 简单dp 链接 codeforces 思路 所有数的质因数存下来&#xff0c;最多6个。 然后\(f[i][j][0/1]\)表示i子树内链gcd为j的i是否为链头。 暴力转移就行了 代码 #include <bits/stdc.h> using namespace std; const int _2e57,N2e5; int n,pri[_],vis[_],cnt; vector…

深入理解闭包系列第五篇——闭包的10种形式

前面的话 根据闭包的定义&#xff0c;我们知道&#xff0c;无论通过何种手段&#xff0c;只要将内部函数传递到所在的词法作用域以外&#xff0c;它都会持有对原始作用域的引用&#xff0c;无论在何处执行这个函数都会使用闭包。接下来&#xff0c;本文将详细介绍闭包的10种形式…

selenium 常见问题

启动selenium时报错如下异常&#xff1a; selenium.common.exceptions.WebDriverException: Message: geckodriver executable needs to be in PATH. 解决方式&#xff1a;需要下载geckodriver&#xff0c;并放在path的环境变量下&#xff0c;下载地址&#xff1a;https://gith…

通过示例了解挥发

我们已经花了几个月的时间来稳定Plumbr中的锁定检测功能 。 在此期间&#xff0c;我们遇到了许多棘手的并发问题。 许多问题是独特的&#xff0c;但是一种特殊类型的问题一直反复出现。 您可能已经猜到了–滥用volatile关键字。 我们已经发现并解决了许多问题&#xff0c;其中…