어플라이언스 관리 콘솔에서 백업 템플릿에 스크립트 추가

이 페이지에서는 백업 템플릿에 스크립트를 추가하는 방법을 설명합니다. 백업 작업 중에 스크립트가 실행되는 다양한 단계를 설명합니다.

스크립트를 작성하고 실행하여 백업 작업이 시작될 때, 진행되는 동안 또는 완료된 후에 작업을 실행할 수 있습니다. 이를 사전 스크립트 및 사후 스크립트라고도 합니다.

스크립트 위치

보호가 필요한 파일 시스템 또는 데이터베이스가 실행되는 에이전트 설치 중에 스크립트 폴더가 자동으로 생성됩니다. 스크립트를 실행하려면 다음 폴더에 스크립트를 배치해야 합니다.

  • 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 단계만 사용하여 백업 프로세스의 시작과 끝을 나타낼 수 있습니다.

서비스 중지 또는 다른 명령 실행과 같은 다른 작업을 실행하도록 스크립트를 맞춤설정할 수도 있습니다.

백업 템플릿에 스크립트 추가

다음 안내에 따라 백업 템플릿에 스크립트를 추가합니다.

  1. 백업 계획을 클릭하고 드롭다운 목록에서 템플릿을 선택합니다.
  2. OnVault 정책이 포함된 템플릿을 선택합니다. 선택한 백업 템플릿과 함께 템플릿 페이지가 열립니다.
  3. 템플릿 페이지의 정책 영역에서 스냅샷 옆에 있는 +추가를 클릭합니다.
  4. 고급 정책 설정을 클릭합니다.
  5. 스크립트 이름으로 스크롤한 다음 다음 스크립트를 복사하여 붙여넣습니다.

    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
    
  6. 변경사항 저장을 클릭합니다.

  7. 주문형 작업 실행

    출력은 서로 다른 두 데이터베이스에 대해 표시됩니다. 하나는 로그 백업 작업이고 하나는 증분 스냅샷입니다.

    $ 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