当前有这样一个需求:
问题背景:
有一台服务器A,安装了oracle服务器端,开启了一个ftp服务。
每天1点,都有另一台服务器B向A的ftp的文件夹内上传一个oracle数据库的dmp数据文件的gz压缩文件。
问题:
如何定时每次在服务器A上这个dmp的gz压缩文件传输完成后(比如定时每天2点),将gz文件先解压缩,后导入服务器A的数据库中。
注:因为dmp备份是完全备份,所以要优先考虑将服务器A上的原数据清空,然后再imp导入。目前该操作都是手动完成,请问有没有办法能每日自动完成。

解决方案 »

  1.   

    crontab。
    把要做的工作写在一个shell文件里,通过crontab定时启动作业。
      

  2.   

    参考:shell脚本:
    [oracle@test tmp]$ more /tmp/sql.sh
    #!/bin/sh                                  
    sqlplus test/[email protected] << EOF  
    @/tmp/truncdata.sql                        
    exit;                                      
    EOF                                        
    tar -zxvf t2.dmp.gz
    imp test/test file=t2.dmp full=y ignore=y log=t2.log
              
    sql脚本                                         
    [oracle@test tmp]$ more /tmp/trunc_data.sql 
    truncate table t2;定时任务
    #crontab -e
    * 1 * * * /tmp/sql.sh