Oracle导入导出程序Exp的使用.docx

上传人:b****4 文档编号:3913143 上传时间:2023-05-06 格式:DOCX 页数:14 大小:22.19KB
下载 相关 举报
Oracle导入导出程序Exp的使用.docx_第1页
第1页 / 共14页
Oracle导入导出程序Exp的使用.docx_第2页
第2页 / 共14页
Oracle导入导出程序Exp的使用.docx_第3页
第3页 / 共14页
Oracle导入导出程序Exp的使用.docx_第4页
第4页 / 共14页
Oracle导入导出程序Exp的使用.docx_第5页
第5页 / 共14页
Oracle导入导出程序Exp的使用.docx_第6页
第6页 / 共14页
Oracle导入导出程序Exp的使用.docx_第7页
第7页 / 共14页
Oracle导入导出程序Exp的使用.docx_第8页
第8页 / 共14页
Oracle导入导出程序Exp的使用.docx_第9页
第9页 / 共14页
Oracle导入导出程序Exp的使用.docx_第10页
第10页 / 共14页
Oracle导入导出程序Exp的使用.docx_第11页
第11页 / 共14页
Oracle导入导出程序Exp的使用.docx_第12页
第12页 / 共14页
Oracle导入导出程序Exp的使用.docx_第13页
第13页 / 共14页
Oracle导入导出程序Exp的使用.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Oracle导入导出程序Exp的使用.docx

《Oracle导入导出程序Exp的使用.docx》由会员分享,可在线阅读,更多相关《Oracle导入导出程序Exp的使用.docx(14页珍藏版)》请在冰点文库上搜索。

Oracle导入导出程序Exp的使用.docx

Oracle导入导出程序Exp的使用

Oracle导出程序Exp的使用2006-07-1513:

49|(分类:

默认分类)

Oracle导出程序Exp的使用

  Oracle的导出实用程序(Exportutility)允许从数据库提取数据,并且将数据写入操作系统文件。

exp使用的基本格式:

exp[username[/password[@service]]],以下例举exp常用用法。

1.获取帮助

 exphelp=y

2.导出一个完整数据库

 expsystem/managerfile=bible_dblog=dible_dbfull=y

3.导出数据库定义而不导出数据

 expsystem/managerfile=bible_dblog=dible_dbfull=yrows=n

4.导出一个或一组指定用户所属的全部表、索引和其他对象

 expsystem/managerfile=seaparklog=seaparkowner=seapark

 expsystem/managerfile=seaparklog=seaparkowner=(seapark,amy,amyc,harold)

注意:

在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。

解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。

 SETLINESIZE132

 SETPAGESIZE0

 SETTRIMSPOOLON

 SPOOLc:

\seapark.syn

 SELECT'Createpublicsynonym'||synonym_name

 ||'for'||table_owner||'.'||table_name||';'

 FROMdba_synonyms

 WHEREtable_owner='SEAPARK'ANDowner='PUBLIC';

 SPOOLOFF

5.导出一个或多个指定表

 expseapark/seaparkfile=tanklog=tanktables=tank

 expsystem/managerfile=tanklog=tanktables=seapark.tank

 expsystem/managerfile=tanklog=tanktables=(seapark.tank,amy.artist)

6.估计导出文件的大小

全部表总字节数:

SELECTsum(bytes)

FROMdba_segments

WHEREsegment_type='TABLE';

seapark用户所属表的总字节数:

SELECTsum(bytes)

FROMdba_segments

WHEREowner='SEAPARK'

ANDsegment_type='TABLE';

seapark用户下的aquatic_animal表的字节数:

SELECTsum(bytes)

FROMdba_segments

WHEREowner='SEAPARK'

ANDsegment_type='TABLE'

ANDsegment_name='AQUATIC_ANIMAL';

7.导出表数据的子集(oracle8i以上)

NT系统:

expsystem/managerquery='Wheresalad_type=''FRUIT'''tables=amy.salad_type

 file=fruitlog=fruit

UNIX系统:

expsystem/managerquery=\"Wheresalad_type=\'FRUIT\'\"tables=amy.salad_type

 file=fruitlog=fruit

8.用多个文件分割一个导出文件

 expsystem/manager

 file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

 log=paycheck,filesize=1Gtables=hr.paycheck

9.使用参数文件

 expsystem/managerparfile=bible_tables.par

bible_tables.par参数文件:

 #ExportthesampletablesusedfortheOracle8iDatabaseAdministrator'sBible.

 file=bible_tables

 log=bible_tables

 tables=(

 amy.artist

 amy.books

 seapark.checkup

 seapark.items

 )

10.增量导出

•  “完全”增量导出(complete),即备份整个数据库

expsystem/managerinctype=completefile=990702.dmp

•  “增量型”增量导出(incremental),即备份上一次备份后改变的数据

expsystem/managerinctype=incrementalfile=990702.dmp

•  “累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据

expsystem/managerinctype=cumulativefile=990702.dmp

附:

常用参数说明

参数  说明

file  指定导出文件名。

默认值是file=expdat.dmp。

默认的文件扩展名是.dmp

filesize  允许使用多个文件分布式导出数据。

默认值为filesize=0,表示所有的数据被写入一个文件。

可以选filesize=1024(1K,1M,1G)

full  full=y时,表示整个数据库将被导出。

默认值为full=n

help  控制帮助屏幕的显示。

它的参数是help=y;没有help=n选项

inctype  指定增量导出选项

1.complete:

完全

2.incremental:

增量(导出上次任何导出后改变的所有数据库对象)

3.cumulative:

累计(导出上次cumulative,complete导出后改变的所有数据库对象)

indexes  指定索引是否被导出。

默认值为indexes=y。

如果不希望索引被导出,用indexes=n

log  指定收集导出信息(包括任何错误信息)的逻辑文件名。

默认的文件扩展名是.log

owner  允许为指定用户或一列用户导出数据和对象

parfile  允许从一个文件读取导出参数

query  指定从一个或更多的表中导出行的一个子集。

它的参数值在where语句中,并且被应用于select语句,在这里export不导出每一个表

rows  控制表数据是否被导出。

默认值为rows=y,表示数据被导出。

rows=n表示只想导出表定义,而不想导出表的数据

tables  允许导入一个指定的表或一列表

 

EXP导出选项

关键字

内容

USERID

运行导出命令的帐号的用户名/口令

BUFFEER

用来取数据行的缓冲区的大小

FILE

导出转储文件的名字

EXP导出选项

关键字

内容

USERID

运行导出命令的帐号的用户名/口令

BUFFEER

用来取数据行的缓冲区的大小

FILE

导出转储文件的名字

COMPRESS

导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句

GRANTS

导出时否要导出数据库对象上的授权

INDEXES

是否要导出表上的索引

ROWS

是否应导出行。

如它为‘N’,那么在导出文件中仅生成数据库对象的DDL

CONSSTRAINTS

是否导出表旧的约定条件

FULL

如设为‘Y’,那么将执行一个整个数据库导出操作

OWNER

要导出的一系列数据库帐号,然后执行这些帐号的USER导出操作

TABLES

要导出的一系列表;执行这些表的TABLE导出操作

RECORDLENGTH

转储导出文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导出文件

INCTYPE

正在执行的导出操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)

RECORD

在增量导出类型中的一个标记,标明是否将日志存储到数据字典中日志导出的表中

PARFILE

要传递给导出的参数文件的名字。

这个文件将包含所有参数的入口项

ANALYZE

标明是否将移对象的统计信息写入导出转储文件中

CONSISTENT

标明是否保留所有导出对象的读取一致复制

LOG

导出日志将要写入的文件的名字

MLS

标明是否要导出MLS标号

MLS_LABEL

规定了MLS标号的格式

IMP导入选项

关键字

内容

USERID

运行导入命令的帐号的用户名/口令

BUFFEER

用来取数据行的缓冲区的大小

FILE

导入转储文件的名字

SHOW

规定文件内容是否被显示,而不是被执行

EGNORE

标明在执行‘CREATE’命令时,是否忽略遇到的错误。

如果正在导入的对象已经存在时,应使用这个参数

FULL

如设为‘Y’,那么将执行一个整个数据库导入操作

FROMUSER

在FULL=N的情况下,才有参数。

它是一系列的数据库帐号,其对象应从导出转储文件中读取

TOUSER

一系列数据库帐号,导出转储文件扣的对象将要导入这些帐号

GRANTS

导入时否要导入数据库对象上的授权

INDEXES

是否要导入表上的索引

ROWS

是否应导入行。

如它为‘N’,那么在导入文件中执行数据库对象的DDL

TABLES

要导入的一系列表

RECORDLENGTH

转储导入文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导入文件

INCTYPE

正在执行的导入操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)

PARFILE

要传递给导入的参数文件的名字。

这个文件将包含所有参数的入口项

ANALYZE

标明是否将移对象的统计信息写入导入转储文件中

LOG

导入日志将要写入的文件的名字

MLS

标明是否要导入MLS标号

INDEXFILE

不执行导入动作,只生成建索引的文本

贰:

一.导出工具exp

1.它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

  exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

  

  它有三种模式:

      a.  用户模式:

导出用户所有对象以及对象中的数据;

      b.  表模式:

导出用户所有表或者指定的表;

      c.  整个数据库:

导出数据库中所有对象。

2.导出工具exp交互式命令行方式的使用的例子

$exp[email=test/test123@appdb]test/test123@appdb[/email]

Enterarrayfetchbuffersize:

4096>回车

Exportfile:

expdat.dmp>m.dmp  生成导出的文件名

(1)E(ntiredatabase),

(2)U(sers),or(3)T(ables):

(2)U>3

Exporttabledata(yes/no):

yes>回车

Compressextents(yes/no):

yes>回车

ExportdoneinZHS16GBKcharactersetandZHS16GBKNCHARcharacterset

AbouttoexportspecifiedtablesviaConventionalPath...

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>cmamenu  要导出的表名

..exportingtable                        CMAMENU      4336rowsexported

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>要导出的表名n

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>回车

Exportterminatedsuccessfullywithoutwarnings.

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

$expscott/tigertables=emp,deptfile=/directory/scott.dmpgrants=y

说明:

把scott用户里两个表emp,dept导出到文件/directory/scott.dmp

$expscott/tigertables=empquery=/"wherejob=/'salesman/'andsal/<1600/"file=/directory/scott2.dmp

说明:

在exp里面加上导出emp的查询条件job='salesman'andsal<1600

    

(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)

$expparfile=username.parfile=/directory1/username_1.dmp,/directory1/username_2.dmpfilesize=2000Mlog=/directory2/username_exp.log

参数文件username.par内容

userid=username/userpassword

buffer=8192000

compress=n

grants=y

说明:

username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改

    filesize指定生成的二进制备份文件的最大字节数

    

    (可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)

4.命令参数说明

关键字说明(默认)

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

USERID用户名/口令

FULL导出整个文件(N)

BUFFER数据缓冲区的大小

OWNER所有者用户名列表

FILE输出文件(EXPDAT.DMP)

TABLES表名列表

COMPRESS导入一个范围(Y)

RECORDLENGTHIO记录的长度

GRANTS导出权限(Y)

INCTYPE增量导出类型

INDEXES导出索引(Y)

RECORD跟踪增量导出(Y)

ROWS导出数据行(Y)

PARFILE参数文件名

CONSTRAINTS导出限制(Y)

CONSISTENT交叉表一致性

LOG屏幕输出的日志文件

STATISTICS分析对象(ESTIMATE)

DIRECT直接路径(N)

TRIGGERS导出触发器(Y)

FEEDBACK显示每x行(0)的进度

FILESIZE各转储文件的最大尺寸

QUERY选定导出表子集的子句  

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE导出可传输的表空间元数据(N)

TABLESPACES将传输的表空间列表

二.导入工具imp

1.它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

imp导入工具将EXP形成的二进制系统文件导入到数据库中.

  它有三种模式:

      a.  用户模式:

导出用户所有对象以及对象中的数据;

      b.  表模式:

导出用户所有表或者指定的表;

      c.  整个数据库:

导出数据库中所有对象。

      

  只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入

  

  imp步骤:

  

(1)createtable  

(2)insertdata  (3)createindex(4)createtriggers,constraints

2.导入工具imp交互式命令行方式的例子

$imp

Import:

Release8.1.6.0.0-Productionon星期五12月717:

01:

082001

(c)Copyright1999OracleCorporation.  Allrightsreserved.

用户名:

  test

口令:

****

连接到:

Oracle8iEnterpriseEditionRelease8.1.6.0.0-64bitProduction

WiththePartitioningoption

JServerRelease8.1.6.0.0-Production

导入文件:

expdat.dmp>/tmp/m.dmp

输入插入缓冲区大小(最小为8192)30720>

经由常规路径导出由EXPORT:

V08.01.06创建的文件

警告:

此对象由TEST导出,而不是当前用户

已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入

只列出导入文件的内容(yes/no):

no>

由于对象已存在,忽略创建错误(yes/no):

no>yes

导入权限(yes/no):

yes>

导入表数据(yes/no):

yes>

导入整个导出文件(yes/no):

no>yes

.正在将TEST的对象导入到SCOTT

..正在导入表                      "CMAMENU"      4336行被导入

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

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

$impsystem/managerfromuser=jonestables=(accts)

$impsystem/managerfromuser=scotttables=(emp,dept)

$impsystem/managerfromuser=scotttouser=joetables=emp

$impscott/tigerfile=expdat.dmpfull=y

$impscott/tigerfile=/mnt1/t1.dmpshow=nbuffer=2048000ignore=ncommit=ygrants=yfull=ylog=/oracle_backup/log/imp_scott.log

$impsystem/managerparfile=params.dat

params.dat内容

file=dba.dmpshow=nignore=ngrants=yfromuser=scotttables=(dept,emp)

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[email=username/password@connect_string]username/password@connect_string[/email]

说明:

connect_string是在/ORACLE_HOME/network/admin/tnsnames.ora

  定义的本地或者远端数据库的名称

5.命令参数说明

关键字说明(默认)  

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

USERID用户名/口令

FULL导入整个文件(N)

BUFFER数据缓冲区大小

FROMUSER所有人用户名列表

FILE输入文件(EXPDAT.DMP)

TOUSER用户名列表

SHOW只列出文件内容(N)

TABLES表名列表

IGNORE忽略创建错误(N)

RECORDLENGTHIO记录的长度

GRANTS导入权限(Y)

INCTYPE增量导入类型

INDEXES导入索引(Y)

COMMIT提交数组插入(N)

ROWS导入数据行(Y)

PARFILE参数文件名

LOG屏幕输出的日志文件

CONSTRAINTS导入限制(Y)

DESTROY覆盖表空间数据文件(N)

INDEXFILE将表/索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES跳过不可用索引的维护(N)

ANALYZE执行转储文件中的ANALYZE语句(Y)

r/>F

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2