用了很久的EXP和IMP了,每次都得查看文档或者baidu之,是时候来个加深记忆了.
这种历史悠久的命令一般有以下四种用途:
1,导入导出表结构,rows=n;
2,导入导出少量数据,太大了速度确实不能忍;
3,跨平台迁移数据;
4,传输表空间技术,目前没尝试过.
查看帮助使用命令exp help=y,imp help=y;
一般的exp就使用2种方式,一个是导出schema下某些表,另外一个就是到处整个schema.
exp userid/passwd file=exp.dmp log=exp.log direct=y
exp userid/passwd file=exp.dmp log=exp.log direct=y tables=(a,b,c)
其他一些常用的exp参数
buffer 导出的缓冲区 仅针对常规导出 表行数*记录最大长度
constrains 默认Y 是否导出约束信息
rows 默认Y 是否导出数据 设置为N则只导出对象的结构定义
grants 默认Y 是否导出授权信息
!通过select sum(bytes)/1024/1024 M from user_segments基本可以估算导出文件的大小,数据仅供参考.
导入也就
imp userid/passwd fromuser=userid1 touser=userid2 file=exp.dmp log=imp.log commit=y buffer=10000000 ignore=y constraints=y
如果是同用户导入就不需要fromuser和touser了直接导入即可.
buffer 导入缓冲设置
constraints 默认是Y 导入约束
fromuser touser 搭配使用从一个用户导入到另外一个用户, 需要imp_full_database的权限;
ignore 默认N 如果希望先导入结构后导出数据应该指定为Y,确保出现错误后可以继续导入;
commit 默认为N 一般导入都是一张表提交一次,如果表太大,可以设定为Y,则imp根本buffer大小进行提交;