如果导出的表不属于当前连接用户,需要注意两点:
* 执行导出的用户必须拥有EXP_FULL_DATABASE 角色对应的权限,或拥有DBA角色。
* 在TABLES参数中指定表名时,必须以SCHEMA.TABLE的格式指定,如果不指定SCHEMA名称的话,默认导出连接用户下的同名表,如果没有该表就会报错。
1、示例:通过system用户下导出scott下的两个表:
2、如果是导出某几个SCHEMA中的对象,同理也是需要EXP_FULL_DATABASE权限,或DBA角色,以下是在system用户下导出scott和ming两个用户的对象
建立参数文件parameter2.dat:
exp调用上述参数文件:
成功导出上述两用户对象
注意:上述参数OWNER主要用来指定需导出的schema列表,如有多个schema用,号分隔即可。
3、全库导出操作,这个就需要DBA角色或者EXP_FULL_DATABASE角色也可以,同时只需把前面相关表与用户模式的参数更改为full=y即可,其它操作相同:
所谓全库导出,只是逻辑上的全库,只导出了与用户数据相关的对象,对于一些与用户数据无关的对象,oracle并不会去处理它。
4、exp还有专门提供以下参数来控制是否导出授权(grants)、索引(indexes)、约束(constraints)、触发器(triggers),默认都为Y,导出,如不需要导出指定上述参数为N即可:
以上在执行全导出过程中,不导出授权、索引、约束等 。
5、导出的数据太大,超出操作系统限定大小。
可以通过限定导出的dmp文件大小来处理,使用参数filesize:
以下操作一样,exp在执行过程中,用户指定的文件如果用完则需提示用户手动输入文件名才可继续,如果不输入即停在那里了,如下:
那么如何知道导出的数据有多大,这样好进行设置多少个导出的dmp文件呢?通过系统查看文件大小。这个可以,但不一定准确,以下方法可以准确查询对象所占的空间大小:
SQL> select sum(bytes) /1024 /1024 M from user_segments;
M
----------
638
后续……关于优化exp命令的执行效率
本文转自pimg200551CTO博客,原文链接:http://blog.51cto.com/pimg2005/850996 ,如需转载请自行联系原作者