用EXP命令可以手动执行备份操作那如果需要每天晚上12点备份数据库呢?要怎么设置?是不是也可以像SQL SERVER那样建一个作业?

解决方案 »

  1.   

    有很多种方案,可以有第三方的,也可以自己定义。 你的是什么平台的: windows 上面可以写个 bat 文件,用   task 任务调度就可以了,linux,unix 可以写个 shell,,,, 用 crontab 调度如果公司有专业的任务管理服务器,也可以放在上面运行。。可以根据实际情况实施。
      

  2.   


    #!/bin/sh
    ORACLE_HOME=/home/oracle/10.2.0.1.0
    ORACLE_SID=whajdb
    ORACLE_BACKUPDIR=/home/oracle/back
    #D=`date +%y%m%d`
    #export D
    #D=$(date +%y%m%d)
    Today=`date +%F`
    TodayFolder=$ORACLE_BACKUPDIR/${Today:0:4}${Today:5:2}${Today:8:2}
    export ORACLE_HOME ORACLE_SID ORACLE_BACKUPDIR Today TodayFolder
    mkdir $TodayFolder
    sqlplus sys/oracle@$ORACLE_SID as sysdba <<-EOF
    alter database backup controlfile to '$TodayFolder/Cf_$ORACLE_SID.$Today.ctl';
    CREATE OR REPLACE DIRECTORY BACK_DIR AS '${ORACLE_BACKUPDIR}';
    EXIT 0
    EOF$ORACLE_HOME/bin/expdp system/oracle@$ORACLE_SID DUMPFILE=global.$Today.DMP DIRECTORY=BACK_DIR SCHEMAS=(global) LOGFILE=global.$Today.LOG >/dev/nullmv $ORACLE_BACKUPDIR/global.$Today.DMP $TodayFolder/
    mv $ORACLE_BACKUPDIR/global.$Today.LOG $TodayFolder/之前用过的一个备份脚本。在Linux中用crontab提交到定时执行的守护进程中去。
      

  3.   

    有个建议,不知道怎么样:
    可以再Oracle中创建一个JOB来实现每天晚上12点定时备份:
    将你备份的SQL脚本语句,用procedure封装起来,用JOB 每天晚上12点定时执行procedure,得到备份的目的