Oracle8 提供的imp/exp是常用的数据库备份工具程序,但是由于32位addressing的限制,Oracle 8/8i的Installationguide明确指出imp,exp,SQL*Loader三个Utilities工具软件操作的文件大小不能超过2GB,但是随着数据库数据量的增大,很容易让备份文件大小超过2GB,如果正常使用imp/exp呢?一种方法是将数据作为多个文件export出来形成.dmp文件,还有一种方法是利用Unix提供的mknod命令创建FIFO,并启动compress在后台压缩,并同时运行imp(或者exp)程序:
exp:
#!/bin/sh
mknod yourfile.dmp p
compress yourfile.dmp.Z &
exp usrename/password file=yourfile.dmp buffer=40960000 tables=(...)
imp:
#!/bin/sh
mknod yourfile.dmp p
uncompress yourfile.dmp &
imp usrename/password file=yourfile.dmp buffer=40960000 tables=(...)
上述方法在HP_UX 11.0 + Oracle 8.0.5.2.1和Sun Solaris 2.6+Oracle 8.1.5上 测试通过