백업 템플릿 스크립트

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

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

스크립트 위치

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

  • 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 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