Menambahkan skrip ke template cadangan di konsol pengelolaan appliance

Halaman ini menjelaskan cara menambahkan skrip ke template cadangan. Bagian ini menjelaskan berbagai fase yang dijalankan skrip selama tugas pencadangan.

Anda dapat menulis skrip dan menjalankannya untuk melakukan tindakan di awal tugas pencadangan, selama tugas pencadangan, atau setelah tugas pencadangan selesai. Ini juga disebut skrip pra-dan pasca-pembaruan.

Lokasi skrip

Folder skrip dibuat secara otomatis selama penginstalan agen di tempat sistem file atau database yang perlu dilindungi berjalan. Anda harus menempatkan skrip di folder berikut untuk menjalankannya:

  • Untuk host Windows: \Program Files\Google Cloud Backup and DR\scripts
  • Untuk host Linux: /act/scripts dan tetapkan skrip agar dapat dieksekusi (chmod 755 *.sh)

Fase skrip

Skrip dijalankan dalam fase berikut. Jika skrip Anda tidak dieksekusi, periksa apakah skrip tersebut ada di folder skrip.

  • INIT: Fase ini dimulai saat perangkat cadangan/pemulihan terhubung ke agen. Pada fase ini, tugas diinisialisasi dan kredensial diverifikasi.
  • PRE: Fase ini dimulai tepat sebelum operasi utama tugas. Untuk snapshot, fase ini dimulai sebelum aplikasi dibekukan. Untuk tugas jenis pemasangan, ini terjadi setelah perangkat dipetakan ke host, tetapi sebelum operasi berbasis agen seperti pemindaian ulang, impor, dan pemasangan sistem file dimulai.
  • POST: Fase ini dimulai segera setelah operasi utama tugas selesai. Untuk tugas jenis pencadangan, ini terjadi setelah aplikasi dibuka. Untuk tugas jenis pemasangan, fase ini dimulai setelah semua operasi impor, pemasangan, atau mengaktifkan aplikasi selesai.
  • FINAL: Fase ini adalah akhir dari tugas. Kecuali jika skrip menampilkan kode non-nol yang menyebabkan tugas gagal, tugas akan selesai.
  • ABORT: Fase ini menangani tugas yang dibatalkan saat gagal.

Contoh: skrip

Contoh berikut menunjukkan cara menjalankan skrip sisi host pada berbagai fase proses tugas pencadangan. Skrip ini memiliki lima skrip yang menampilkan tanggal atau waktu, nama aplikasi (nama sistem file atau database), jenis pekerjaan, nama tugas, nilai retensi log dalam hari, dan teks untuk menunjukkan fase tugas pencadangan yang sedang diproses.

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

Pada contoh sebelumnya, ACT_JOBTYPE = logbackup menunjukkan bahwa tugas yang sedang dijalankan adalah tugas pencadangan log, bukan tugas pencadangan database penuh.

Anda mungkin tidak perlu menjalankan kelima fase untuk mendapatkan output log yang Anda pilih. Anda hanya dapat menggunakan fase init dan final untuk menunjukkan awal dan akhir proses pencadangan.

Anda juga dapat menyesuaikan skrip untuk melakukan tugas lain, seperti menghentikan layanan atau menjalankan perintah lain.

Menambahkan skrip ke template pencadangan

Gunakan petunjuk berikut untuk menambahkan skrip ke template cadangan.

  1. Klik Rencana cadangan, lalu pilih Template dari menu drop-down.
  2. Pilih template yang menyertakan kebijakan OnVault. Halaman Templates akan terbuka dengan template cadangan yang dipilih.
  3. Di area Policies pada halaman Templates, klik +Add di samping Snapshot.
  4. Klik Advanced Policy Settings.
  5. Scroll ke Script Name, lalu salin dan tempel skrip berikut:

    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. Klik Simpan Perubahan.

  7. Jalankan tugas on-demand.

    Output ditampilkan untuk dua database yang berbeda. Salah satunya adalah tugas pencadangan log, dan yang lainnya adalah snapshot inkremental.

    $ 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

Meneruskan variabel lingkungan ke dalam file log

Anda dapat mengekspor informasi lingkungan dari tugas ke skrip menggunakan variabel lingkungan dalam daftar berikut yang diawali dengan ACT_. Tidak semua variabel lingkungan akan berlaku untuk setiap jenis pekerjaan.

  • ACT_APPID: ID database aplikasi.
  • ACT_APPNAME: nama aplikasi.
  • ACT_HOSTNAME: nama host yang menjadi target tugas ini.
  • ACT_JOBNAME: nama tugas.
  • ACT_JOBTYPE: versi teks dari class tugas.
  • ACT_LOGSMART_TYPE: satu-satunya nilai yang valid adalah "db". Parameter ini harus ada agar log database dapat direkam.
  • ACT_OPTIONS: opsi kebijakan yang berlaku untuk tugas ini
  • ACT_PHASE: string teks yang menjelaskan fase tugas.
  • ACT_POLICY: nama kebijakan yang terkait dengan tugas ini.
  • ACT_POLICYOPT_logbackupretention: jumlah hari penyimpanan untuk tugas pencadangan log. Status ini hanya muncul di tugas pencadangan log database.
  • ACT_PROFILE: nama profil.
  • ACT_SCRIPT_TMOUT: waktu tunggu superskrip. Jika respons tidak diterima dalam nilai waktu tunggu (default 60 detik), skrip akan gagal.
  • ACT_SOURCEHOST: nama host yang menjadi sumber untuk aplikasi ini.
  • ACT_TEMPLATE: nama template yang terkait dengan tugas.
  • ACT_TIMEOUT: durasi skrip yang ditentukan, dalam detik. Jika skrip tidak selesai dalam periode waktu tunggu, tugas akan gagal.
  • ACT_VOLUMES: untuk aplikasi generik, daftar volume yang dikonfigurasi untuk pencadangan. Jika Anda memerlukan bantuan untuk mempelajari kemungkinan variabel lingkungan yang dapat Anda gunakan, tambahkan baris ini ke skrip Anda.

    echo printenv >> /tmp/backup_status.log