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

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

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

스크립트 위치

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

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

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

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

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

  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