Oracle的EXP/IMP过时了

过去习惯了用Oracle的EXP/IMP来做数据库备份还原,然而时过境迁,到了Oracle 11g,这两个命令不再有用了。最主要的问题是EXP不能导出没有数据的空表的结构,这导致用IMP还原回去时空表丢失了。原因在于Oracle 11g推出所谓"deferred segment creation"的功能,就是说没有数据就不分配存贮段,而EXP命令只导出那些列在dba_segments中的表,空表就不会列在该视图中。若非要让空表列在该视图中就要强制分配存贮段,可以使用以下命令:

 

ALTER TABLE <empy table> ALLOCATE EXTENT;

 

 

 显然是用该方法备份整个数据库是十分艰巨的差事。从Oracle 10g可以Oracle推荐使用新数据导入导出程序,EXPDP/IMPDP。这两个新的程序与前一代显著的区别是数据备份文件存放在服务器端,备份文件存放的目录需要在Oracle中维护,如:

 

create or replace directory backupdir as '/dr01/backup';

然后可以用backupdir来代表实际的目录位置。

expdp qad/qad schemas=qad directory=backupdir logfile=exp.log dumpfile=exp.dmp

 (待续...)

 

你可能感兴趣的:(数据结构,oracle)