imp/exp专门用来进行联机热备份(逻辑备份),dump一个文件,具体命令帮助可通过imp help=y或exp help=y命令来查看。
笔者需要将生产系统上的某个用户下的所有对象都复制到测试库上,所以决定采用exp/imp来实施。首先编写导入导出的参数文件:
-------------D:/Harvest/data/exp_vm.txt
USERID=vm/jsvm@jsdcbak
OWNER=VM
INDEXES=Y
ROWS=Y
CONSTRAINTS=Y
GRANTS=Y
TRIGGERS=Y
COMPRESS=Y
buffer=81920
LOG=D:/Harvest/data/vm_full_20070605.log
file=D:/Harvest/data/vm_full_20070605.dmp
-------------D:/Harvest/data/imp_vm.txt
USERID=vm/jsvm@jsdcbak
FROMUSER=VM
TOUSER=VM
INDEXES=Y
ROWS=Y
CONSTRAINTS=Y
GRANTS=Y
buffer=81920
LOG=D:/Harvest/data/vm_full_20070605.log
file=D:/Harvest/data/vm_full_20070605.dmp
然后在生产系统上执行exp parfile=D:/Harvest/data/exp_vm.txt,生成dump文件,拷贝到测试库所在机器上,执行imp parfile=D:/Harvest/data/imp_vm.txt。整个过程比较简单,唯独要注意的一点是,导入前需要把已经存在的那些对象(表、视图、存储过程等)先删除,否则那些存在的对象无法导入(因为imp时,会先调用CREATE语句创建对象)。