Skrip ke template cadangan

Halaman ini menjelaskan cara menambahkan skrip ke template pencadangan. File ini menjelaskan berbagai fase yang dieksekusi skrip selama tugas pencadangan.

Anda dapat menulis skrip dan menjalankannya untuk melakukan tindakan di awal tugas pencadangan, selama tugas, atau setelah tugas selesai. Ini juga disebut skrip pre dan post.

Lokasi skrip

Folder skrip dibuat secara otomatis selama penginstalan agen tempat sistem file atau database yang memerlukan perlindungan 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 appliance pencadangan/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 dilakukan 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 dilakukan setelah aplikasi di-unfreeze. Untuk tugas jenis pemasangan, fase ini dimulai setelah semua operasi impor, pemasangan, atau mengaktifkan aplikasi online selesai.
  • FINAL: Tahap ini adalah akhir dari tugas. Tugas akan selesai, kecuali jika skrip menampilkan kode non-nol yang menyebabkan tugas gagal.
  • 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. File ini memiliki lima skrip yang menghasilkan output tanggal atau waktu, nama aplikasi (sistem file atau nama database), jenis tugas, 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 dijalankan adalah tugas pencadangan log, bukan tugas pencadangan database penuh.

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

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

Menambahkan skrip ke template pencadangan

Gunakan petunjuk berikut untuk menambahkan skrip ke template pencadangan.

  1. Klik Rencana cadangan, lalu pilih Template dari menu drop-down.
  2. Pilih template yang menyertakan kebijakan OnVault. Halaman Templates akan terbuka dengan template pencadangan yang dipilih.
  3. Di area Kebijakan pada halaman Template, klik +Tambahkan di samping Snapshot.
  4. Klik Setelan Kebijakan Lanjutan.
  5. Scroll ke Nama Skrip, 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. Menjalankan tugas on demand.

    Output ditampilkan untuk dua database yang berbeda. Satu adalah tugas pencadangan log, dan satu lagi adalah snapshot inkremental.

    $ cat /tmp/backup_status.log Rabu, 22 November 06.11.49 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT Rabu, 22 November 06.13.52 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE Rabu, 22 November 06.15.01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST Rabu, 22 November 06.15.01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL Rabu, 22 November 06.18.00 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT Rabu, 22 November 06.20.15 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE Rabu, 22 November 06.22.06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST Rabu, 22 November 06.22.06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:FINAL

Meneruskan variabel lingkungan ke 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 tugas.

  • ACT_APPID: ID database aplikasi.
  • ACT_APPNAME: nama aplikasi.
  • ACT_HOSTNAME: nama host yang merupakan target tugas ini.
  • ACT_JOBNAME: nama tugas.
  • ACT_JOBTYPE: versi teks class tugas.
  • ACT_LOGSMART_TYPE: satu-satunya nilai yang valid adalah "db". 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 retensi 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 merupakan 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 umum, daftar volume yang dikonfigurasi untuk pencadangan. Jika Anda memerlukan bantuan untuk mempelajari kemungkinan variabel lingkungan yang dapat digunakan, tambahkan baris ini ke skrip Anda.

    echo printenv >> /tmp/backup_status.log