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
* 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
# 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 ''
我知道,现在嗯问题是, 单执行 脚本可以了, 但是crontab不执行
要设置oracle用户环境变量
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
加上这一个应该就可以了
crontab中不会自动加载环境变量。
需要你在脚本中手动加载环境变量。