(13)oracle导出、导入

    导出

导出分三种

导出表、导出方案(用户)、导出数据库

导入导出不需要进入sqlplus,都需要从cmd进到所安装的oracle目录的bin文件夹下

例如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN

主要目的是我们要用到里面的exp.exe应用程序

 exp其实是export缩写

一、导出表 

导出表分为导出自己的表和导出其他方案的表

1、导出本用户的表

exp userid=用户名/密码@实例名 tables=(表名) file=d:\abc.dmp(@实例名可以不写,只有在一个数据库中有多个实例时才用到,下面都是此道理不在赘述)

例如:exp userid=user/password tables=(T_MD_PROCESS) file=d:\abc.dmp;

导出成功后会在D盘生成一个abc.dmp的文件

 

需要导出多个表时在()中用空格或者逗号分隔

exp userid=user/password tables=(T_MD_PROCESS,T_MD_DATA_DICT) file=d:\abc.dmp;

exp userid=user/password tables=(T_MD_PROCESS T_MD_DATA_DICT) file=d:\abc.dmp;

 

2、导出其他用户的表

导出其他用户的表需要dba权限或者exp_full_database的权限

表明写成xx用户的xx表,其他和导出自己的表都相同

例如

有三个用户 A、B、C

C有dba权限,输入C用户账号密码在分别从A、B各自导出一张表合成abc.dmp

      exp userid=user/password tables=(A.T_MD_PROCESS B.T_MD_DATA_DICT) file=d:\abc.dmp;

 3、导出表结构

有时只需要这个表的结构,不需要里面的内容,只要在后面加上 rows=n

exp userid=user/password tables=(T_MD_PROCESS) file=d:\abc.dmp rows=n ;

4、导出数据量比较大的表时

当表的数据量特别大时例如几万条数据,在后面加上direct=y 导出速度会非常的快。(需要数据库的字符集和客户端字符集完全一致,否则会报错)

exp userid=user/password tables=(T_MD_PROCESS) file=d:\abc.dmp direct=y ;

具体原因参考 http://www.itpub.net/361441,2.html

 

二、导出方案(用户)

使用export工具导出一个或者多个方案中的所有对象(表、索引、约束..)和数据,并存放到文件中

和到表一样只是把tables换成owner

1、导出自己的方案

exp userid=user/password owner=用户名 file=d:\abc.dmp;

 

 

2、导出别人的方案

需要dba权限或者exp_full_database的权限

exp userid=user/password owner=(用户名1,用户名2) file=d:\abc.dmp;

 

三、导出数据库

需要dba权限或者exp_full_database的权限

exp userid=user/password full=y  inctype=complete file=d:\abc.dmp;

导出成功终止,出现警告的意思是???

待研究

 

导入

导入和导出类似,需要用到的程序是imp

一、导入表

1、导入自己的表

 imp userid=user/password tables=(T_MD_PROCESS) file=d:\abc.dmp;

2、导入表到其他用户

同导出

3、导入表结构

同导出

4、导入数据

同导出

 

二、导入方案

1、导入自身的方案

同导出

2、导入其他用户方案

需要dba权限

imp userid=user/password  file=d:\abc.dmp fromuser=用户名 touser=用户名;

三、导入数据库

imp userid=user/password full=y file=d:\abc.dmp;

 

posted @ 2016-11-20 08:55  富坚老贼  阅读(136)  评论(0编辑  收藏  举报