代码如下
exp gyccb/sys compress=n buffer=51200 file=noo$today'_1'.dmp,noo$today'_2'.dmp,noo$today'_3'.dmp,noo$today'_4'.dmp,noo$today'_5'.dmp,noo$today'_6'.dmp log=noo$today.log filesize=25600mb设定备份出来每25G一个dmp文件,现在因为空间问题,实际剩余空间只有80G左右,实际备份出dmp文件共计120G左右
现在能不能当备份出noo$today'_1'.dmp时,就进行compress压缩?然后在备份剩下的,或者同时进行也可以,请高手指教一下因为怎么办,谢谢了!

解决方案 »

  1.   

    可以不可以一直执行compress noo$today'_1'.dmp呢?知道执行过一次就停止?如果可以这样应该怎么写语句?
      

  2.   


    好像做不到你要求的这样的哟,除非做两个shell命令,一个导出,一个做一个循环,不停的监控生产文件的后一个文件的状态,一旦后面文件生成就压缩当前一个文件。
      

  3.   

    我想问一下我另外做一个shell如果我设定1分钟检测一次,他在压缩compress noo$today'_1'.dmp时过了1分钟还会执行吗?
    会不会有什么不好的结果?
      

  4.   


    我觉得你这个检测的方式不好,如果是我,我会检测下一个文件的状态,比如对于什么时候压缩第一个文件,我的检测点,是不停的检测第二个文件是否存在,如果存在就开始压缩第一个文件,压缩结束后就删除源文件,依次类推,对于最后一个文件,就是exp执行完以后,pause个几秒,就可以开始了。
      

  5.   


    谢谢,就是导出1的时候就检测2是否存在吧?这个我知道了还有一个问题,compress的速度比较慢啊,会不会出现1还没有压缩好,空间就满了,exp报错停止的情况啊,这种情况怎么解决?导出的买个文件的时候中间是否可以暂停N秒?谢谢了
      

  6.   

    和你导出的时间应该在同一个量级,而且压缩时间肯定是比exp的时间要短的。所以,如果是你这样的磁盘情况,有80g空闲,导出120g应该是够用的。一般dmp可以平均压缩到1/3到1/5这样的大侠。
      

  7.   

    谢谢了,时间倒是不知道,压缩下来是3-5G,以前也是这样备份的,只是最近空间有点紧张,过段时间就可以加储存了,谢谢inthirties了,呵呵
      

  8.   

    shell我写好了,大哥帮我看看有什么问题没有today=`date +"%Y%m%d"`
    echo $todayif [-f noo$today'_2'.dmp]
    then compress noo$today'_1'.dmp
    fi
    if [-f noo$today'_3'.dmp]
    then compress noo$today'_2'.dmp
    fi
    if [-f noo$today'_4'.dmp]
    then compress noo$today'_3'.dmp
    fi就这样,最后,完了,我再写个compress *.dmp?是不是这样就可以了
      

  9.   

    exp  
    oracle 11g  有 expdp 导出时同时可以压缩。exp 没有这项功能。以前看到别人 用 linux 脚本 , 把文件备到  linux 管道, 管道 另一边同时压缩。网上找了一下 找到了。
    http://blog.csdn.net/caok/archive/2008/12/18/3549956.aspx从这个页里找 12.通过unix/Linux PIPE管道加快exp/imp速度