RT,请大神们帮看下。我写的这个,不自动备份是不是少了点什么东西?[oracle@ap9 ~]$ crontab -l
* 0 1,15 * * /was/oracle/oradata/rman_0.sh>/dev/null 2>&1
* 0 */3 * * /was/oracle/oradata/rman_1.sh>dev/null 2>&1
[oracle@ap9 ~]$ #su - oracle
export ORACLE_SID=jlgayxjk
rman target/
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level=0 database;
release channel c1;
release channel c2;
release channel c3;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete;RMAN> show all;using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/was/oracle/oradata/rman/jlgayxjk_bak_%U_%T';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/product/10.2.0/db_1/dbs/snapcf_jlgayxjk.f'; # default

解决方案 »

  1.   

    -- 贴一个备份脚本给你吧:#!/bin/bash
    # incremental level 0 backup scriptsource /home/oracle/.bash_profilecurrent_day=`date +%Y%m%d`
    full_day=102_full_$current_day
    mkdir /data/oracle/ora_backup/$full_day
    echo '-------------------------------------------------------------------------'
    echo "-- Begin Full Backup of DB 10.103.23.102 DateTime: `date` --"
    echo '-------------------------------------------------------------------------'
    rman target  / <<EOF
    run
    {
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/data/oracle/ora_backup/$full_day/PID-%F';
    CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
    crosscheck backup;
    delete noprompt obsolete;
    delete noprompt expired backup;
    allocate channel dev1 type disk maxpiecesize=30720M;
    allocate channel dev2 type disk maxpiecesize=30720M;
    allocate channel dev3 type disk maxpiecesize=30720M;
    allocate channel dev4 type disk maxpiecesize=30720M;
    backup as compressed backupset incremental level 0 tag='db0'
    format '/data/oracle/ora_backup/$full_day/%n_%T_%U' database;
    sql 'alter system archive log current';
    backup archivelog all format '/data/oracle/ora_backup/$full_day/arc_%n_%T_%U' delete all input;
    release channel dev1;
    release channel dev2;
    release channel dev3;
    release channel dev4;
    }
    EOF
    echo '------------------------------------------------------------------------'
    echo "--  End Full Backup of DB 10.103.23.102 DateTime: `date`  --"
    echo '------------------------------------------------------------------------'
    scp -l 51200 -r /data/oracle/ora_backup/$full_day [email protected]:/data/oracle/ora_backup102 &
    wait
    echo '------------------------------------------------------------------------'
    echo "-- End of Send file to 10.103.23.103 DateTime: `date` --"
    echo '------------------------------------------------------------------------'
    echo ''
    echo ''
      

  2.   

    你这是增量0级备份,一般来说,要备份数据文件、控制文件、归档日志、网络配置文件、spfile等等。设置备份周期比如周末晚0级备份,全量备份一周一次,周二1级增量备份,定期删除陈旧备份……
      

  3.   


    我知道,现在嗯问题是, 单执行 脚本可以了, 但是crontab不执行
      

  4.   

    是不是crontab跟linux环境有关系
      

  5.   

    我记得前几天有个人问个相同的问题:http://bbs.csdn.net/topics/390499382?page=1#post-394876813
    要设置oracle用户环境变量
      

  6.   

    1)脚本中涉及文件路径时写全局路径;
    2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
    cat start_cbp.sh
    #!/bin/sh
    source /etc/profile
    export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
    /usr/local/jboss-4.0.5/bin/run.sh -c mev &
    3)当手动执行脚本OK,但是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸,并可以尝试在crontab中直接引入环境变量解决问题。如:
    0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh
      

  7.   

    在你的脚本中,把rman的路径写全crontab是不认环境变量的
      

  8.   

    source /home/oracle/.bash_profile
    加上这一个应该就可以了
      

  9.   

    环境变量没有加载上。
    crontab中不会自动加载环境变量。
    需要你在脚本中手动加载环境变量。
      

  10.   

     对了,就是这个问题,我也想用您说的这种方法备份数据,但是不知道怎么写脚本,能否发个教本给我,万分感谢!邮箱 [email protected].