导出
导出分三种
导出表、导出方案(用户)、导出数据库
导入导出不需要进入sqlplus,都需要从cmd进到所安装的oracle目录的bin文件夹下
例如:D:appAdministratorproduct11.2.0dbhome_1BIN
主要目的是我们要用到里面的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;