cron에서 rman 실행 중 문제 발생

cron에서 rman 실행 중 문제 발생

cron에서 예약한 스크립트에 문제가 있습니다. cron에는 다음 줄이 있습니다.

33 09 * * 1-5 oracle /data1/backup/scripts-test/rman.sh > /data1/backup/log.txt 2> /data1/backup/log_err.txt

보시다시피, rman 스크립트를 실행하려면 oracle 사용자를 사용해야 합니다. RMAN.SH는 다음과 같습니다:

#!/bin/bash
ORACLE_HOME="/data1/app/oracle/product/12.1.0.2/db_1"
ORACLE_SID="eelxtest"
PATH=$ORACLE_HOME/bin:$PATH
now="$(date)"
logloc="/data1/backup/scripts-test/log"
rmanscript="/data1/backup/scripts-test"
jboss="/usr/JBossEAP/jboss-eap-6.4/bin"
ip="x.x.x.x"
ServerGroup="EELX-Server-Group-Test"
logfile="$logloc/$(date '+%Y-%m-%d')_log.txt"
echo "============================================" | tee -a "$logfile"
date | tee -a "$logfile"
echo "STEP1 closing JBoss Server Group" | tee -a "$logfile"
$jboss/jboss-cli.sh --controller=$ip --connect /server-group=$ServerGroup:stop-servers | tee -a "$logfile"
echo "STEP2 oracle backup. See rman log." | tee -a "$logfile"
**$ORACLE_HOME/bin/rman msglog /data1/backup/scripts-test/log/$(date '+%Y-%m-%d')_rman.log cmdfile=$rmanscript/rman_backup.cmd**
echo "STEP3 starting jboss Server Group" | tee -a "$logfile"
$jboss/jboss-cli.sh --controller=$ip --connect /server-group=$ServerGroup:start-servers | tee -a "$logfile"]

rman_backup.cmd예:

connect target /
shutdown immediate;
startup mount;
run
{
allocate channel ch1 device type disk;
backup as compressed backupset full database format '/data1/extDirectories/xxx/yyy/oracle/test/%T_eelxtest_full_%u.bkp';
backup format '/data1/extDirectories/xxx/yyy/oracle/test/%T_archivelog_eelxtest_%u.bkp' >>(archivelog all delete input);
backup spfile;
backup current controlfile format '/data1/extDirectories/xxx/yyy/oracle/test/%T_ora_ctl_file_eelxtest_%u.bkp';
release channel ch1;
}
sql 'alter database open'

cron의 작업 결과는 다음과 같습니다.

Message file RMAN<lang>.msb not found
Verify that ORACLE_HOME is set properly

ORACLE_HOME그래서 저는 oracle과 root의 두 구성 파일을 확인했습니다 . 해당 파일은 다음 위치에 있습니다..bash_config 파일. 또한 rman이 전혀 시작되지 않기 때문에 rman 추적이나 로그에는 언급된 내용이 없습니다.

도와주세요.

답변1

도마,

아마도 다음을 통해 ORACLE_HOME 변수를 내보내야 할 것입니다.

export ORACLE_HOME

스크립트에서 선언한 후: rman.sh

관련 정보