欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle数据库dmp文件Dos命令下导入导出

程序员文章站 2022-06-06 19:56:17
...

数据导出:

一.  导出工具exp

他是操作系统下一个可执行的文件,存放目录/Oracle_Home/bin.

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

 

他有三种模式:

a. 用户模式:导出用户所有对象以及对象中的数据.

b.表模式: 导出用户所有表或者指定表.

c.整个数据库: 导出数据库中所有对象.

例子(用户名system,密码manager):

1. 将数据库test完全导出,导出到D:tianma.dmp

          exp system/manager@test  file=d:\tianma.dmp full=y

2. 将数据库中的system用户与sys用户的表导出

exp system/manager@orcl file=d:\tianma.dmp owner=(system,sys)

3. 将数据库中的表student,class导出

exp system/manager@orcl file=d:\tianma.dmp tables(student,class)

4.将数据库中student表中filed字段以”00”打斗的数据导出

exp system/manager@test file=d:\tianma.dmp tables(student) query=”where filed like ‘00%’”

 

关键字       说明(默认)

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

UserId    用户名/口令

Full      导出整个文件(N)

Buffer  数据缓冲区的大小

Owner 所有者用户名列表

File    输出文件(ExpDat.dmp)

Tables    表名列表

Compress  导入一个范围(Y),实现压缩,相当于用winzip把dmp文件很好的压缩。

Recordlength IO   记录的长度

Grants   导出权限(Y)

Inctype   增量导出类型

Indexs   导出索引(Y)

Record 跟踪增量导出(Y)

Rows    导出数据行(Y)

Parfile   参数文件名

Constraints  导出约束(Y)

Consistent  交叉表一致性

Log  屏幕输出的 日志文件

Statistics  分析对象(Estimate)

Direct  直接路径(N)

Triggers  导出触发器(Y)

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

FileSize   各转出文件的最大尺寸

Query  选定导出表子集的子句

 

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

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

Tablespace      将传输的表空间列表

数据导入:

二.   导入工具 imp

他是操作系统下一个可执行的文件,存放目录/Oracle_Home/Bin

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

他有三种模式:

a. 用户模式: 导入用户所有对象以及对象中的数据库

b. 表模式: 导入用户所有表或者指定的表.

c. 整个数据库: 导入数据库中所有对象

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

例子(用户名admin,密码sa):

1. 将d:\tianma.dmp 中的数据导入 @orcl 数据库中

imp admin/sa@orcl file=d:\tianma.dmp.

imp admin/sa@orcl file=d:\tianma.dmp full=y  ignore=y

上面可能有点问题,以为有的表已经存在,然后他就报错,对该表就不进行倒入.在后面加上Ignore=y就可以了

2. 将d:\tianma.dmp中的表student导入

imp admin/sa@orcl file=d:\tianma.dmp tables(student)

3.导入params.dat,tianma.dmp内容

imp admin/sa  parfile=params.dat  file=tianma.dmp show=n  ignore=n  grants=y  fromuser=sott tables=(student,classs)

 

关键字 说明(默认)

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

UserId 用户名/口令

Full     导入整个文件(N)

Buffer 数据缓冲区的大小

Fromuser   所有人用户名列表

File    输入文件(ExpDat.dmp)

Touser  用户名列表

Show  只列出文件内容(N)

Tables   表名列表

Ignore    忽略创建错误(N)

RecordLength IO  记录的长度

Grants  导入权限(Y)

Inctype  增量导入类型

Indexs  导入索引(Y)

Commit    提交数组插入

Rows 导入数据行(Y)

Parfile   参数文件名

Constraints  导入约束(Y)

Log 屏幕输出的 日志文件

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

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

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

Analyze   执行转出文件中的Analyze语句

Toid_Novalidate 跳过指定类型Id的校验

FileSize  各转储文件的最大尺寸

Recalculate_Statistics 重新计算统计值(N)

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

         Transport_Tablespace 导入可传输的表空间元数据(N)

          TableSpace   将要传输的数据库的表空间

         DataFiles   将要传输的数据库的数据文件

          TTS_Ownsers  拥有可传输表空间集中数据的用户

注意:
 操作者要有足够的权限,权限不够它会提示。
 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
 
 
附录………
 Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
  先建立import9.par,
  然后,使用时命令如下:imp parfile=/filepath/import9.par
  例 import9.par 内容如下:
        FROMUSER=TGPMS        
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)           
        ROWS=Y
        INDEXES=Y
        GRANTS=Y
        CONSTRAINTS=Y
        BUFFER=409600
        file==/backup/ctgpc_20030623.dmp

Oracle数据库dmp文件Dos命令下导入导出 
            
    
    博客分类: Oracle|DB2|Mysql