이 페이지에서는 백업 템플릿에 스크립트를 추가하는 방법을 설명합니다. 백업 작업 중에 스크립트가 실행되는 다양한 단계를 설명합니다.
스크립트를 작성하고 실행하여 백업 작업이 시작될 때, 진행되는 동안 또는 완료된 후에 작업을 실행할 수 있습니다. 이를 사전 스크립트 및 사후 스크립트라고도 합니다.
스크립트 위치
보호가 필요한 파일 시스템 또는 데이터베이스가 실행되는 에이전트 설치 중에 스크립트 폴더가 자동으로 생성됩니다. 스크립트를 실행하려면 다음 폴더에 스크립트를 배치해야 합니다.
- Windows 호스트:
\Program Files\Google Cloud Backup and DR\scripts - Linux 호스트:
/act/scripts및 스크립트를 실행 가능하도록 설정 (chmod 755 *.sh)
스크립트 단계
스크립트는 다음 단계에서 실행됩니다. 스크립트가 실행되지 않으면 scripts 폴더에 있는지 확인하세요.
- INIT: 이 단계는 백업/복구 어플라이언스가 에이전트에 연결될 때 시작됩니다. 이 단계에서는 작업이 초기화되고 사용자 인증 정보가 확인됩니다.
- PRE: 이 단계는 작업의 주요 작업 직전에 시작됩니다. 스냅샷의 경우 이 단계는 애플리케이션이 고정되기 전에 시작됩니다. 마운트 유형 작업의 경우 기기가 호스트에 매핑된 후이지만 에이전트 기반 작업(예: 재검색, 가져오기, 파일 시스템 마운트)이 시작되기 전입니다.
- POST: 이 단계는 작업의 주요 작업이 완료된 직후에 시작됩니다. 백업 유형 작업의 경우 애플리케이션이 고정 해제된 후입니다. 마운트 유형 작업의 경우 이 단계는 모든 가져오기, 마운트 또는 애플리케이션 온라인 전환 작업이 완료된 후에 시작됩니다.
- FINAL: 이 단계는 작업의 끝입니다. 스크립트에서 작업이 실패하도록 하는 0이 아닌 코드를 반환하지 않는 한 작업이 완료됩니다.
- ABORT: 이 단계에서는 작업이 실패할 때 중단된 작업을 처리합니다.
예: 스크립트
다음 예에서는 백업 작업 프로세스의 다양한 단계에서 호스트 측 스크립트를 실행하는 방법을 보여줍니다. 날짜 또는 시간, 앱 이름(파일 시스템 또는 데이터베이스 이름), 작업 유형, 작업 이름, 로그 보관 기간(일), 처리 중인 백업 작업 단계를 나타내는 텍스트를 출력하는 스크립트가 5개 있습니다.
```sh
$ cat /act/scripts/init.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:INIT" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:INIT" >> /tmp/backup_status.log
fi
$ cat /act/scripts/pre.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:PRE" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:PRE" >> /tmp/backup_status.log
fi
$ cat /act/scripts/post.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:POST" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:POST" >> /tmp/backup_status.log
fi
$ cat /act/scripts/fini.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:FINAL" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:FINAL" >> /tmp/backup_status.log
fi
$ cat /act/scripts/abort.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:ABORT" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:ABORT" >> /tmp/backup_status.log
fi
```
위 예에서 ACT_JOBTYPE = logbackup는 실행 중인 작업이 전체 데이터베이스 백업 작업이 아닌 로그 백업 작업임을 나타냅니다.
선택한 로그 출력을 달성하기 위해 5단계를 모두 실행하지 않아도 될 수 있습니다. init 및 final 단계만 사용하여 백업 프로세스의 시작과 끝을 나타낼 수 있습니다.
서비스 중지 또는 다른 명령 실행과 같은 다른 작업을 실행하도록 스크립트를 맞춤설정할 수도 있습니다.
백업 템플릿에 스크립트 추가
다음 안내에 따라 백업 템플릿에 스크립트를 추가합니다.
- 백업 계획을 클릭하고 드롭다운 목록에서 템플릿을 선택합니다.
- OnVault 정책이 포함된 템플릿을 선택합니다. 선택한 백업 템플릿과 함께 템플릿 페이지가 열립니다.
- 템플릿 페이지의 정책 영역에서 스냅샷 옆에 있는 +추가를 클릭합니다.
- 고급 정책 설정을 클릭합니다.
스크립트 이름으로 스크롤한 다음 다음 스크립트를 복사하여 붙여넣습니다.
path=init.sh:phase=init;path=pre.sh:phase=pre;path=post.sh:phase=post;path=fini.sh:phase=final:timeout=300;path=abort.sh:phase=abort변경사항 저장을 클릭합니다.
-
출력은 서로 다른 두 데이터베이스에 대해 표시됩니다. 하나는 로그 백업 작업이고 하나는 증분 스냅샷입니다.
$ cat /tmp/backup_status.log Wed Nov 22 06:11:49 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT Wed Nov 22 06:13:52 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL Wed Nov 22 06:18:00 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT Wed Nov 22 06:20:15 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:FINAL
로그 파일에 환경 변수 전달
ACT_ 접두사가 붙은 다음 목록의 환경 변수를 사용하여 작업의 환경 정보를 스크립트로 내보낼 수 있습니다.
모든 환경 변수가 모든 작업 유형에 적용되는 것은 아닙니다.
ACT_APPID: 애플리케이션의 데이터베이스 ID입니다.ACT_APPNAME: 애플리케이션의 이름입니다.ACT_HOSTNAME: 이 작업의 타겟인 호스트의 이름입니다.ACT_JOBNAME: 작업의 이름입니다.ACT_JOBTYPE: 작업 클래스의 텍스트 버전입니다.ACT_LOGSMART_TYPE: 유일하게 유효한 값은 'db'입니다. 데이터베이스 로그를 캡처하려면 이 값이 있어야 합니다.ACT_OPTIONS: 이 작업에 적용되는 정책 옵션ACT_PHASE: 작업 단계를 설명하는 텍스트 문자열입니다.ACT_POLICY: 이 작업과 관련된 정책의 이름입니다.ACT_POLICYOPT_logbackupretention: 로그 백업 작업의 보관 기간(일)입니다. 데이터베이스 로그 백업 작업에만 표시됩니다.ACT_PROFILE: 프로필의 이름입니다.ACT_SCRIPT_TMOUT: 위첨자 제한 시간입니다. 제한 시간 값 (기본값 60초) 내에 응답이 수신되지 않으면 스크립트가 실패합니다.ACT_SOURCEHOST: 이 애플리케이션의 소스였던 호스트의 이름입니다.ACT_TEMPLATE: 작업과 관련된 템플릿의 이름입니다.ACT_TIMEOUT: 스크립트의 정의된 길이(초)입니다. 스크립트가 제한 시간 내에 완료되지 않으면 작업이 실패합니다.ACT_VOLUMES: 일반 애플리케이션의 경우 백업용으로 구성된 볼륨 목록입니다. 사용할 수 있는 환경 변수를 알아보려면 스크립트에 다음 줄을 추가하세요.echo printenv >> /tmp/backup_status.log