이 페이지에서는 백업 템플릿에 스크립트를 추가하는 방법을 설명합니다. 백업 작업 중에 스크립트가 실행되는 여러 단계를 설명합니다.
스크립트를 작성하고 실행하여 백업 작업 시작 시, 백업 작업 중 또는 백업 작업 완료 후에 작업을 수행할 수 있습니다. 이를 사전 및 사후 스크립트라고도 합니다.
스크립트 위치
보호가 필요한 파일 시스템 또는 데이터베이스가 실행 중인 에이전트 설치 중에 스크립트 폴더가 자동으로 생성됩니다. 스크립트를 실행하려면 다음 폴더에 스크립트를 배치해야 합니다.
- Windows 호스트:
\Program Files\Google Cloud Backup and DR\scripts - Linux 호스트:
/act/scripts및 스크립트를 실행 파일로 설정 (chmod 755 *.sh)
스크립트 단계
스크립트는 다음 단계에서 실행됩니다. 스크립트가 실행되지 않으면 스크립트 폴더에 있는지 확인합니다.
- 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