이 페이지에서는 백업 템플릿에 스크립트를 추가하는 방법을 설명합니다. 백업 작업 중에 스크립트가 실행하는 다양한 단계를 설명합니다.
스크립트를 작성하고 실행하여 백업 작업 시작 시, 작업 중 또는 작업 완료 후에 작업을 실행할 수 있습니다. 이를 사전 및 사후 스크립트라고도 합니다.
스크립트 위치
보호가 필요한 파일 시스템 또는 데이터베이스가 실행되는 에이전트 설치 중에 스크립트 폴더가 자동으로 생성됩니다. 스크립트를 실행하려면 다음 폴더에 배치해야 합니다.
- 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 2023년 11월 22일 수요일 06:11:49(UTC) Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT 2023년 11월 22일 수요일 06:13:52(UTC) Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE 2023년 11월 22일 수요일 06:15:01(UTC) Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST 2023년 11월 22일 수요일 06:15:01(UTC) Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL 2023년 11월 22일 수요일 06:18:00(UTC) Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT 2023년 11월 22일 수요일 06:20:15(UTC) Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE 2023년 11월 22일 수요일 06:22:06(UTC) Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST 2023년 11월 22일 수요일 06:22:06(UTC) 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