2016-10-13 23 views
0

친구! 서버의 Data Guard 구성에는 물리적 스탠바이 데이터베이스가있는 많은 기본 데이터베이스가 있습니다. 단일 서버의 각 기본 데이터베이스와 단일 서버의 각 물리적 대기 EM12c에서는 기본 데이터베이스 백업을 위해 스케줄러 작업을 구성했습니다. 불행히도 서버가 실제로 사용 중이면 에이전트는 백업 실행을 일시 중지하고 스케줄에 따라 백업하지 않습니다.DBMS_SCHEDULER 작업을 통해 Oracle 물리적 대기를 백업하십시오.

그래서 우리는 EM12c에서 백업 작업을 비활성화했으며 절차 DBMS_SCHEDULER.CREATE_JOB을 사용하여 물리적 대기에서 백업을 수행하려고했습니다.

Physical Standby는 기본 데이터베이스의 읽기 전용 데이터베이스 및 블록 단위 복사본이므로 Primary에서 예약 작업을 만들어 대기로 적용해야합니다.

그래서 질문은 : 가능합니까? 그리고 예, 그렇다면 스크립트에서 이것을 어떻게 실현할 수 있을까요 ?? 이 같은

뭔가 : 그것은 가능하지 않으면

check database_role 
if role='PHYSICAL STANDBY' 
then execute backup script 
else nothing to do.. 

,이 작업 해결을위한 최상의하는 솔루션입니다? 각 서버에 단일 스크립트로 cron 작업을 만들지 않고이 문제를 해결할 수있는 방법이 있습니까? 복구 카탈로그 데이터베이스에서 하나의 전역 스크립트를 사용할 수 있습니까?

Kris는 실제 대기 데이터베이스에서 예약 된 작업을 실행할 수 없다고 말했습니다. 그래서 crontab을 사용하여 리눅스 스크립트를 예약 할 것입니다. 내 리눅스 스크립트입니다 :

#! /usr/bin/bash 

LOG_PATH=/home/oracle/scripts/logs; export LOG_PATH 
TASK_NAME=backup_database_inc0; export TASK_NAME 
CUR_DATE=`date +%Y.%m.%d-%H:%M`; export CUR_DATE 
LOGFILE=$LOG_PATH/$TASK_NAME.$CUR_DATE.log; export LOGFILE 

    rman target/catalog rmancat/<pswd>@rmancat script 'backup_database' log $LOGFILE 

    if [ $? -eq 0 ] 
    then 
     mail -s "$ORACLE_UNQNAME Backup Status: SUCCESS" [email protected]< $LOGFILE 
     exit 0 
    else 
     mail -s "$ORACLE_UNQNAME Backup Status: FAILED" [email protected]< $LOGFILE 
     exit 1 

내 복구 카탈로그 백업 글로벌 스크립트를 호출하는 각 호스트에 리눅스 파일을 생성하지 않습니다. 모든 호스트에서 중앙 집중식 백업 실행 스케줄을 구성 할 수 있습니까? 한 호스트에서 모든 데이터베이스 호스트로 ssh를 구성하고 백업을 위해 내 리눅스 스크립트를 실행할 수 있습니까?

미리 답변 해 주셔서 감사합니다.

+0

실제 대기 데이터베이스는 스케줄러 작업을 실행하지 않습니다. RMAN 스크립트는 대개 OS 스케줄러에서 예약됩니다 ... 그러나 복구 카탈로그에서 전역 스크립트를 저장하고 호출 할 수 있습니다. 저장 스크립트 사용에 대한 문서를 참조하십시오. https://docs.oracle.com/ database/121/BRADV/rcmcatdb.htm # BRADV89669 –

+0

안녕하세요, Kris. 답장을 보내 주셔서 감사합니다. 필자는 물리적 대기 데이터베이스에서 예약 된 작업을 실행할 수 없음을 알고 있습니다. 나는 crontab로 나의 리눅스 스크립트를 스케쥴 할 것이고, 나는 새로운 질문을 가지고있다.) 나는 질문 본문에 그것을 쓸 것이다. – Sergey

+0

나는 나의 질문을 해결했다! 나중에 조금 대답 해주세요. – Sergey

답변

0

백업 작업을 실행하려면 Enterprise Manager를 사용하는 것이 좋습니다. EM은 rman 카탈로그 및 각 인스턴스와 잘 통합되므로 rman execute global script 명령 만 설정할 수 있습니다. 다른 모든 것은 EM에 의해 수행됩니다.

전환 작업 중에 아무 것도 변경하지 않고 EM 작업 스케줄러를 통해 대기업에서만 실행되도록 예약 된 작업이 있습니다.

작업을 계단식으로 연결하기 만하면됩니다. 따라서 대상이 대기 상태인지 확인한 다음 해당 단계가 성공하면 백업을 실행하고 있습니다. 그렇지 않은 경우 다음 단계가 실행되지 않습니다.

이렇게하면 모니터링이 글로벌 데이터베이스 모니터링과 통합됩니다. OS 레벨에서 쉘 스크립트 내에서 오류 캐치를 설정할 필요가 없습니다.