1. exp/imp简介
exp/imp是oracle提供的一个对数据库进行逻辑备份的客户端工具。利用这个工具可以把数据库按表空间、用户或某些表保存到操作系统下的一个二进制文件里。这个二进制文件与平台无关,利用这个特性可以完成数据的跨平台的迁移。exp/imp可以看做是一个select--create--insert的过程。exp时select出要导出的数据和相关的ddl,imp时执行这个“脚本”(ddl和insert)。
2.exp/imp导入导出的模式
exp/imp一共有四种模式:FULL、USER、TABLES、TABLESPACES
FULL:必须具有EXP_FULL_DATABASE的权限,导出数据库中所有用户的对象,sys用户的对象不会被导出,因此属于sys用户的一些触发器将会丢失,导入后需要手工创建。
USER:具有create session的用户,即可对属于自己的schame进行导出。user模式将导出该模式下的所有对象及对象权限(不包括系统权限)等。
TABLES:导出指定的表(表明可用通配符%)。
TABLESPACES:主要用于transport tablespaces,必须以sysdba权限才能进行。
3.exp/imp主要参数介绍
exp:
BUFFER:指定缓冲区的大小,即一次fetch获取的最大行数,以字节为单位,默认是4096。buffer参数只在常规路径导出生效,直接路径导出不生效。
FILE:指定导出的文件名称,结合FILESIZE参数(导出文件的大小)可以指定多个数据文件名称,这样可以实现一边exp,一遍imp。
COMPRESS:不是指对导出的数据进行压缩。是指在导入时,创建表时指定initial_extent的大小,默认是Y。参数取Y时,导入时initial_extent的大小为导出时表的表大小;参数取N时,导入时initial——extent的大小即为导出表的initial_extent的大小。
COMPRESS 取Y,实验如下:
SQL> select segment_name,initial_ext