Fitur pratinjau alat Azure Application Consistent Snapshot

Catatan

PRATINJAU DISEDIAKAN "APA ADANYA," "DENGAN SEMUA KESALAHAN," DAN "SEBAGAIMANA TERSEDIA," DAN DIKECUALIKAN DARI PERJANJIAN TINGKAT LAYANAN DAN REF GARANSI TERBATAS: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

Artikel ini menyediakan panduan tentang penyiapan dan penggunaan fitur baru dalam pratinjau untuk AzAcSnap v5.1. Fitur baru ini dapat digunakan dengan Azure NetApp Files, Azure BareMetal, dan sekarang Disk Terkelola Azure. Panduan ini harus dibaca bersama dengan dokumentasi untuk versi AzAcSnap yang tersedia secara umum di aka.ms/azacsnap.

Lima fitur pratinjau baru yang disediakan dengan AzAcSnap v5.1 adalah:

  • Dukungan Oracle Database.
  • Koeksistensi backint.
  • Disk Terkelola Azure.
  • Kemampuan RunBefore dan RunAfter.
  • Dukungan Azure Key Vault untuk menyimpan Perwakilan Layanan.

Penambahan kecil untuk --volume opsi:

  • Semua rekam jepret volume.

Memberikan tanggapan

Umpan balik tentang AzAcSnap, termasuk pratinjau ini, dapat disediakan secara online.

Mendapatkan alat rekam jepret Pratinjau AzAcSnap

Dapatkan versi terbaru Alat Penginstal Pratinjau AzAcSnap dari Microsoft.

File penginstalan mandiri memiliki file checksum MD5 terkait untuk memeriksa integritas unduhan.

Pertama-tama unduh alat penginstal. Ikuti langkah-langkah dalam dokumentasi memulai utama untuk menyelesaikan penginstalan AzAcSnap. Kembali ke dokumen ini untuk detail tentang menggunakan fitur pratinjau.

Oracle Database

Platform dan sistem operasi yang didukung

Catatan

Dukungan untuk Oracle adalah fitur Pratinjau.
Konten bagian ini melengkapi apa itu halaman situs web alat Azure Application Consistent Snapshot .

Platform database baru dan sistem operasi yang didukung dengan rilis pratinjau ini.

Aktifkan komunikasi dengan database

Catatan

Dukungan untuk Oracle adalah fitur Pratinjau.
Konten bagian ini melengkapi halaman situs web Instal alat Azure Application Consistent Snapshot .

Bagian ini menjelaskan cara mengaktifkan komunikasi dengan penyimpanan. Pastikan back-end penyimpanan yang Anda gunakan dipilih dengan benar.

Alat rekam jepret berkomunikasi dengan database Oracle dan memerlukan pengguna dengan izin yang sesuai untuk mengaktifkan/menonaktifkan mode pencadangan. Setelah menempatkan database dalam mode pencadangan, azacsnap akan meminta database Oracle untuk mendapatkan daftar file, yang memiliki mode pencadangan sebagai aktif. Daftar file ini keluaran ke dalam file eksternal, yang berada di lokasi dan nama dasar yang sama dengan file log, tetapi dengan ekstensi ".protected-tables" (nama file output yang dirinci dalam file log AzAcSnap).

Contoh berikut menunjukkan penyiapan pengguna database Oracle, penggunaan mkstore untuk membuat Dompet Oracle, dan file konfigurasi yang sqlplus diperlukan untuk komunikasi ke database Oracle.

Contoh perintah berikut menyiapkan pengguna (AZACSNAP) di database Oracle, mengubah alamat IP, nama pengguna, dan kata sandi yang sesuai:

  1. Dari penginstalan database Oracle

    su – oracle
    sqlplus / AS SYSDBA
    
    SQL*Plus: Release 12.1.0.2.0 Production on Mon Feb 1 01:34:05 2021
    Copyright (c) 1982, 2014, Oracle. All rights reserved.
    Connected to:
    Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
    SQL>
    
  2. Buat pengguna

    Contoh ini membuat pengguna AZACSNAP.

    SQL> CREATE USER azacsnap IDENTIFIED BY password;
    
    User created.
    
  3. Berikan izin pengguna - Contoh ini menetapkan izin untuk pengguna AZACSNAP untuk memungkinkan menempatkan database dalam mode cadangan.

    SQL> GRANT CREATE SESSION TO azacsnap;
    
    Grant succeeded.
    
    SQL> GRANT SYSBACKUP TO azacsnap;
    
    Grant succeeded.
    
    SQL> connect azacsnap/password
    
    Connected.
    
    SQL> quit
    
  4. OPSIONAL - Mencegah kata sandi pengguna kedaluwarsa

    Mungkin perlu untuk menonaktifkan kedaluwarsa kata sandi bagi pengguna, tanpa perubahan ini kata sandi pengguna dapat kedaluwarsa sehingga mencegah rekam jepret diambil dengan benar.

    Catatan

    Periksa kebijakan perusahaan sebelum melakukan perubahan ini.

    Contoh ini mendapatkan kedaluwarsa kata sandi untuk pengguna AZACSNAP:

    SQL> SELECT username, account_status,expiry_date,profile FROM dba_users WHERE username='AZACSNAP';
    
    USERNAME              ACCOUNT_STATUS                 EXPIRY_DA PROFILE
    --------------------- ------------------------------ --------- ------------------------------
    AZACSNAP              OPEN                           DD-MMM-YY DEFAULT
    

    Ada beberapa metode untuk menonaktifkan kedaluwarsa kata sandi di database Oracle, lihat administrator database Anda untuk mendapatkan panduan. Salah satu contohnya adalah dengan memodifikasi profil pengguna DEFAULT sehingga waktu hidup kata sandi tidak terbatas sebagai berikut:

    SQL> ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME unlimited;
    

    Setelah melakukan perubahan ini, seharusnya tidak ada tanggal kedaluwarsa kata sandi untuk pengguna dengan profil DEFAULT.

    SQL> SELECT username, account_status,expiry_date,profile FROM dba_users WHERE username='AZACSNAP';
    
    USERNAME              ACCOUNT_STATUS                 EXPIRY_DA PROFILE
    --------------------- ------------------------------ --------- ------------------------------
    AZACSNAP              OPEN                                     DEFAULT
    
  5. Oracle Dompet menyediakan metode untuk mengelola kredensial database di beberapa domain. Kemampuan ini dicapai dengan menggunakan string koneksi database dalam definisi sumber data, yang diselesaikan dengan entri di dompet. Ketika digunakan dengan benar, Oracle Dompet membuat memiliki kata sandi dalam konfigurasi sumber data yang tidak perlu.

    Ini memungkinkan untuk menggunakan file administratif Oracle Transparent Network Substrate (TNS) dengan alias string koneksi, sehingga menyembunyikan detail string koneksi database. Jika informasi koneksi berubah, ini adalah masalah mengubah tnsnames.ora file alih-alih definisi sumber data yang berpotensi banyak.

    Siapkan Oracle Dompet (ubah kata sandi) Contoh ini menggunakan perintah mkstore dari shell Linux untuk menyiapkan dompet Oracle. Perintah ini dijalankan di server database Oracle menggunakan kredensial pengguna unik untuk menghindari dampak apa pun pada database yang sedang berjalan. Dalam contoh ini, pengguna baru (azacsnap) dibuat, dan variabel lingkungan mereka dikonfigurasi dengan tepat.

    Penting

    Pastikan untuk membuat pengguna unik untuk menghasilkan Dompet Oracle untuk menghindari dampak apa pun pada database yang sedang berjalan.

    1. Jalankan perintah berikut ini di Oracle Database Server.

    2. Dapatkan variabel lingkungan Oracle yang akan digunakan dalam penyiapan. Jalankan perintah berikut sebagai root pengguna di Oracle Database Server.

      su - oracle -c 'echo $ORACLE_SID'
      
      oratest1
      
      su - oracle -c 'echo $ORACLE_HOME'
      
      /u01/app/oracle/product/19.0.0/dbhome_1
      
    3. Buat pengguna Linux untuk menghasilkan Dompet Oracle dan file terkait *.ora menggunakan output dari langkah sebelumnya.

      Catatan

      Dalam contoh ini kita menggunakan bash shell. Jika Anda menggunakan shell yang berbeda (misalnya, csh), pastikan variabel lingkungan telah diatur dengan benar.

      useradd -m azacsnap
      echo "export ORACLE_SID=oratest1" >> /home/azacsnap/.bash_profile
      echo "export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1" >> /home/azacsnap/.bash_profile
      echo "export TNS_ADMIN=/home/azacsnap" >> /home/azacsnap/.bash_profile
      echo "export PATH=\$PATH:\$ORACLE_HOME/bin" >> /home/azacsnap/.bash_profile
      
    4. Sebagai pengguna Linux baru (azacsnap), buat dompet dan *.ora file.

      su untuk pengguna yang dibuat di langkah sebelumnya.

      sudo su - azacsnap
      

      Buat Dompet Oracle.

      mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -create
      
      Oracle Secret Store Tool Release 19.0.0.0.0 - Production
      Version 19.3.0.0.0
      Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
      
      Enter password: <wallet_password>
      Enter password again: <wallet_password>
      

      Tambahkan info masuk string sambungkan ke Dompet Oracle. Dalam contoh perintah berikut: AZACSNAP adalah ConnectString yang akan digunakan oleh AzAcSnap; azacsnap adalah Pengguna Oracle Database; AzPasswd1 adalah kata sandi database Pengguna Oracle.

      mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -createCredential AZACSNAP azacsnap AzPasswd1
      
      Oracle Secret Store Tool Release 19.0.0.0.0 - Production
      Version 19.3.0.0.0
      Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
      
      Enter wallet password: <wallet_password>
      

      Membuat file tnsnames-ora. Dalam contoh perintah berikut: HOST harus diatur ke alamat IP Oracle Database Server; SID harus diatur ke Oracle Database SID.

      echo "# Connection string
      AZACSNAP=\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))(CONNECT_DATA=(SID=oratest1)))\"
      " > $TNS_ADMIN/tnsnames.ora
      

      Membuat file sqlnet.ora.

      echo "SQLNET.WALLET_OVERRIDE = TRUE
      WALLET_LOCATION=(
          SOURCE=(METHOD=FILE)
          (METHOD_DATA=(DIRECTORY=\$TNS_ADMIN/.oracle_wallet))
      ) " > $TNS_ADMIN/sqlnet.ora
      

      Uji Dompet Oracle.

      sqlplus /@AZACSNAP as SYSBACKUP
      
      SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 12 00:25:32 2022
      Version 19.3.0.0.0
      
      Copyright (c) 1982, 2019, Oracle.  All rights reserved.
      
      
      Connected to:
      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
      Version 19.3.0.0.0
      
      SELECT MACHINE FROM V$SESSION WHERE SID=1;
      
      MACHINE
      ----------------------------------------------------------------
      oradb-19c
      
      quit
      
      Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
      Version 19.3.0.0.0
      

      Buat arsip file ZIP dari Dompet dan *.ora file Oracle.

      cd $TNS_ADMIN
      zip -r wallet.zip sqlnet.ora tnsnames.ora .oracle_wallet
      
        adding: sqlnet.ora (deflated 9%)
        adding: tnsnames.ora (deflated 7%)
        adding: .oracle_wallet/ (stored 0%)
        adding: .oracle_wallet/ewallet.p12.lck (stored 0%)
        adding: .oracle_wallet/ewallet.p12 (deflated 1%)
        adding: .oracle_wallet/cwallet.sso.lck (stored 0%)
        adding: .oracle_wallet/cwallet.sso (deflated 1%)
      
    5. Salin file ZIP ke sistem target (misalnya, komputer virtual terpusat yang menjalankan AzAcSnap).

      Penting

      Jika menyebarkan ke komputer virtual terpusat, maka klien instan Oracle harus diinstal dan disiapkan sehingga pengguna AzAcSnap dapat menjalankan sqlplus perintah. Oracle Instant Client dapat diunduh dari https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html. Agar SQL*Plus berjalan dengan benar, unduh paket yang diperlukan (misalnya, Paket Ringan Dasar) dan paket alat SQL*Plus opsional.

    6. Selesaikan langkah-langkah berikut pada sistem yang menjalankan AzAcSnap.

    7. Sebarkan file ZIP yang disalin dari langkah sebelumnya.

      Penting

      Langkah ini mengasumsikan pengguna yang menjalankan AzAcSnap, secara default azacsnap, sudah dibuat menggunakan alat penginstal AzAcSnap.

      Catatan

      Dimungkinkan untuk memanfaatkan TNS_ADMIN variabel shell untuk memungkinkan beberapa target Oracle dengan mengatur nilai variabel shell unik untuk setiap sistem Oracle sesuai kebutuhan.

      export TNS_ADMIN=$HOME/ORACLE19c
      mkdir $TNS_ADMIN
      cd $TNS_ADMIN
      unzip ~/wallet.zip
      
      Archive:  wallet.zip
        inflating: sqlnet.ora
        inflating: tnsnames.ora
         creating: .oracle_wallet/
       extracting: .oracle_wallet/ewallet.p12.lck
        inflating: .oracle_wallet/ewallet.p12
       extracting: .oracle_wallet/cwallet.sso.lck
        inflating: .oracle_wallet/cwallet.sso
      

      Periksa apakah berkas telah diekstrak dengan benar.

      ls
      
      sqlnet.ora  tnsnames.ora  wallet.zip
      

      Dengan asumsi semua langkah sebelumnya telah diselesaikan dengan benar, maka seharusnya dimungkinkan untuk menyambungkan ke database menggunakan string sambungkan /@AZACSNAP .

      sqlplus /@AZACSNAP as SYSBACKUP
      
      SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jan 12 13:39:36 2022
      Version 21.1.0.0.0
      
      Copyright (c) 1982, 2020, Oracle.  All rights reserved.
      
      
      Connected to:
      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
      Version 19.3.0.0.0
      
      ```sql
      SQL> quit
      
      Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
      Version 19.3.0.0.0
      

      Penting

      Variabel $TNS_ADMIN shell menentukan tempat menemukan Dompet dan *.ora file Oracle, sehingga harus diatur sebelum dijalankan azacsnap untuk memastikan operasi yang benar.

    8. Uji penyiapan dengan AzAcSnap

      Setelah mengonfigurasi AzAcSnap (misalnya, azacsnap -c configure --configuration new) dengan string koneksi Oracle (misalnya, /@AZACSNAP), seharusnya dimungkinkan untuk terhubung ke database Oracle.

      $TNS_ADMIN Periksa variabel yang diatur untuk sistem target Oracle yang benar

      ls -al $TNS_ADMIN
      
      total 16
      drwxrwxr-x.  3 orasnap orasnap   84 Jan 12 13:39 .
      drwx------. 18 orasnap sapsys  4096 Jan 12 13:39 ..
      drwx------.  2 orasnap orasnap   90 Jan 12 13:23 .oracle_wallet
      -rw-rw-r--.  1 orasnap orasnap  125 Jan 12 13:39 sqlnet.ora
      -rw-rw-r--.  1 orasnap orasnap  128 Jan 12 13:24 tnsnames.ora
      -rw-r--r--.  1 root    root    2569 Jan 12 13:28 wallet.zip
      

      Jalankan azacsnap perintah uji

      cd ~/bin
      azacsnap -c test --test oracle --configfile ORACLE.json
      
      BEGIN : Test process started for 'oracle'
      BEGIN : Oracle DB tests
      PASSED: Successful connectivity to Oracle DB version 1903000000
      END   : Test process complete for 'oracle'
      

      Penting

      Variabel $TNS_ADMIN harus disiapkan dengan benar agar azacsnap berjalan dengan benar, baik dengan menambahkan ke file pengguna .bash_profile , atau dengan mengekspornya sebelum setiap eksekusi (misalnya, export TNS_ADMIN="/home/orasnap/ORACLE19c" ; cd /home/orasnap/bin ; ./azacsnap --configfile ORACLE19c.json -c backup --volume data --prefix hourly-ora19c --retention 12)

Mengonfigurasi database

Bagian ini menjelaskan cara mengonfigurasi database.

Perubahan berikut harus diterapkan ke Oracle Database untuk memungkinkan pemantauan oleh administrator database.

  1. Menyiapkan pengelogan pemberitahuan Oracle

    Gunakan perintah Oracle SQL berikut saat tersambung ke database sebagai SYSDBA untuk membuat prosedur tersimpan di bawah akun database Oracle SYSBACKUP default. Perintah SQL ini memungkinkan AzAcSnap untuk menghasilkan pesan ke output standar menggunakan prosedur PUT_LINE dalam paket DBMS_OUTPUT, dan juga ke file database alert.log Oracle (menggunakan prosedur KSDWRT dalam paket DBMS_SYSTEM).

    sqlplus / As SYSDBA
    
    GRANT EXECUTE ON DBMS_SYSTEM TO SYSBACKUP;
    CREATE PROCEDURE sysbackup.azmessage(in_msg IN VARCHAR2)
    AS
        v_timestamp VARCHAR2(32);
    BEGIN
        SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
            INTO v_timestamp FROM DUAL;
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.ALERT_FILE, in_msg);
    END azmessage;
    /
    SHOW ERRORS
    QUIT
    

Mengonfigurasi AzAcSnap

Bagian ini menjelaskan cara mengonfigurasi AzAcSnap untuk database yang ditentukan.

Catatan

Dukungan untuk Oracle adalah fitur Pratinjau.
Konten bagian ini melengkapi halaman situs web Mengonfigurasi alat Rekam Jepret Konsisten Aplikasi Azure .

Detail nilai yang diperlukan

Bagian berikut menyediakan panduan detail tentang berbagai nilai yang diperlukan untuk file konfigurasi.

Nilai Oracle Database untuk konfigurasi

Saat menambahkan database Oracle ke konfigurasi, nilai berikut diperlukan:

  • Alamat Server Oracle DB = Nama host server database atau alamat IP.
  • SID = ID Sistem database.
  • Oracle Koneksi String = String Koneksi yang digunakan oleh untuk menyambungkan sqlplus ke Oracle dan mengaktifkan/menonaktifkan mode pencadangan.

Koeksistensi backint

Catatan

Dukungan untuk koeksistensi dengan antarmuka Backint SAP Hana adalah fitur Pratinjau.
Konten bagian ini melengkapi halaman situs web Mengonfigurasi alat Rekam Jepret Konsisten Aplikasi Azure .

layanan Azure Backup menyediakan alat pencadangan alternatif untuk SAP Hana, di mana database dan cadangan log dialirkan ke Azure Backup Service. Beberapa pelanggan ingin menggabungkan cadangan berbasis backint streaming dengan cadangan berbasis reguler rekam jepret. Namun, cadangan berbasis backint memblokir metode pencadangan lainnya, seperti menggunakan cadangan berbasis file atau cadangan berbasis rekam jepret penyimpanan (misalnya, AzAcSnap). Panduan disediakan di situs Azure Backup tentang cara Menjalankan SAP Hana cadangan klien asli ke disk lokal pada database dengan Azure Backup diaktifkan.

Proses yang dijelaskan dalam dokumentasi Azure Backup telah diimplementasikan dengan AzAcSnap untuk melakukan langkah-langkah berikut secara otomatis:

  1. paksa flush cadangan log ke backint.
  2. tunggu hingga pencadangan berjalan selesai.
  3. nonaktifkan cadangan berbasis backint.
  4. menempatkan SAP Hana ke dalam status konsisten untuk pencadangan.
  5. mengambil cadangan berbasis rekam jepret penyimpanan.
  6. SAP Hana rilis.
  7. aktifkan kembali cadangan berbasis backint.

Secara default opsi ini dinonaktifkan, tetapi dapat diaktifkan dengan menjalankan azacsnap -c configure –configuration edit dan menjawab 'y' (ya) ke pertanyaan "Apakah Anda memerlukan AzAcSnap untuk secara otomatis menonaktifkan/mengaktifkan backint selama rekam jepret? (y/n) [n]". Mengedit konfigurasi seperti yang dijelaskan akan mengatur nilai autoDisableEnableBackint ke true dalam file konfigurasi JSON (misalnya, azacsnap.json). Anda juga dapat mengubah nilai ini dengan mengedit file konfigurasi secara langsung.

Lihat cuplikan parsial file konfigurasi ini untuk melihat di mana nilai ini ditempatkan dan format yang benar:

  "database": [
    {
      "hana": {
        "serverAddress": "127.0.0.1",
        "sid": "P40",
        "instanceNumber": "00",
        "hdbUserStoreName": "AZACSNAP",
        "savePointAbortWaitSeconds": 600,
        "autoDisableEnableBackint": true,

Disk Terkelola Azure

Catatan

Dukungan untuk Azure Managed Disk sebagai back-end penyimpanan adalah fitur Pratinjau.
Konten bagian ini melengkapi halaman situs web Mengonfigurasi alat Rekam Jepret Konsisten Aplikasi Azure .

Microsoft menyediakan banyak opsi penyimpanan untuk menyebarkan database seperti SAP Hana. Banyak dari opsi ini dirinci pada jenis Azure Storage untuk halaman web beban kerja SAP. Selain itu, ada solusi sadar biaya dengan penyimpanan premium Azure.

AzAcSnap dapat mengambil rekam jepret database yang konsisten dengan aplikasi ketika disebarkan pada jenis arsitektur ini (yaitu, VM dengan Disk Terkelola). Namun, pengaturan untuk platform ini sedikit lebih rumit seperti dalam skenario ini kita perlu memblokir I/O ke titik pemasangan (menggunakan xfs_freeze) sebelum mengambil rekam jepret Disk Terkelola dalam Volume Logis yang dipasang.

Penting

Sistem Linux harus tersedia xfs_freeze untuk memblokir I/O disk.

Perhatian

Berhati-hatilah untuk mengonfigurasi AzAcSnap dengan titik pemasangan (sistem file) yang benar karena xfs_freeze memblokir I/O ke perangkat yang ditentukan oleh titik pemasangan Disk Terkelola Azure. Ini secara tidak sengaja dapat memblokir aplikasi yang sedang berjalan hingga azacsnap selesai berjalan.

Arsitektur pada tingkat tinggi:

  1. Disk Terkelola Azure yang dilampirkan ke VM menggunakan portal Azure.
  2. Volume Logis dibuat dari Disk Terkelola ini.
  3. Volume Logis dipasang ke direktori Linux.
  4. Perwakilan Layanan harus dibuat dengan cara yang sama seperti untuk Azure NetApp Files dalam penginstalan AzAcSnap.
  5. Menginstal dan Mengonfigurasi AzAcSnap.

    Catatan

    Konfigurator memiliki opsi baru untuk menentukan titik pemasangan untuk Volume Logis. Parameter ini diteruskan ke xfs_freeze untuk memblokir I/O (ini terjadi setelah database dimasukkan ke mode cadangan). Setelah cache I/O dihapus (tergantung pada parameter fs.xfs.xfssyncd_centisecskernel Linux ).

  6. Instal dan Konfigurasikan xfs_freeze untuk dijalankan sebagai pengguna yang tidak memiliki hak istimewa:
    1. Buat file yang dapat dieksekusi yang disebut $HOME/bin/xfs_freeze dengan konten berikut.

      #!/bin/sh
      /usr/bin/sudo /usr/sbin/xfs_freeze $1 $2
      
    2. Buat file sudoers yang disebut /etc/sudoers.d/azacsnap untuk memungkinkan pengguna azacsnap berjalan xfs_freeze dengan konten berikut:

      #
      # What: azacsnap
      # Why: Allow the azacsnap user to run "specific" commands with elevated privileges.
      #
      # User_Alias = SAP HANA Backup administrator user.
      User_Alias      AZACSNAP = azacsnap
      #
      AZACSNAP ALL=(ALL) NOPASSWD: /usr/sbin/xfs_freeze
      
    3. Uji pengguna azacsnap dapat membekukan dan mencairkan I/O ke titik pemasangan target dengan menjalankan yang berikut sebagai pengguna azacsnap.

      Catatan

      Dalam contoh ini kita menjalankan setiap perintah dua kali untuk menunjukkannya berfungsi pertama kali karena tidak ada perintah untuk mengonfirmasi apakah xfs_freeze telah membekukan I/O.

      Bekukan I/O.

      su - azacsnap
      xfs_freeze -f /hana/data
      xfs_freeze -f /hana/data
      
      xfs_freeze: cannot freeze filesystem at /hana/data: Device or resource busy
      

      Cairkan I/O.

      su - azacsnap
      xfs_freeze -u /hana/data
      xfs_freeze -u /hana/data
      
      xfs_freeze: cannot unfreeze filesystem mounted at /hana/data: Invalid argument
      

Contoh file konfigurasi

Berikut adalah contoh file konfigurasi, perhatikan hierarki untuk dataVolume, mountpoint, azureManagedDisks:

{
  "version": "5.1 Preview",
  "logPath": "./logs",
  "securityPath": "./security",
  "comments": [],
  "database": [
    {
      "hana": {
        "serverAddress": "127.0.0.1",
        "sid": "P40",
        "instanceNumber": "00",
        "hdbUserStoreName": "AZACSNAP",
        "savePointAbortWaitSeconds": 600,
        "autoDisableEnableBackint": false,
        "hliStorage": [],
        "anfStorage": [],
        "amdStorage": [
          {
            "dataVolume": [
              {
                "mountPoint": "/hana/data",
                "azureManagedDisks": [
                  {
                    "resourceId": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.Compute/disks/<disk01>",
                    "authFile": "azureauth.json"
                  },
                  {
                    "resourceId": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.Compute/disks/<disk02>",
                    "authFile": "azureauth.json"
                  }
                ]
              }
            ],
            "otherVolume": []
          }
        ]
      },
      "oracle": null
    }
  ]
}

Tata letak penyimpanan komputer virtual

Hierarki penyimpanan terlihat seperti contoh berikut untuk SAP Hana:

  • SAP Hana File data database:

    /hana/data/mnt00001
    
  • Titik pemasangan:

    /dev/mapper/hanadata-hanadata on /hana/data type xfs 
    
  • Volume Logika

    lvdisplay
    
    --- Logical volume ---
    LV Path                /dev/hanadata/hanadata
    LV Name                hanadata
    VG Name                hanadata
    
  • Grup Volume

    vgdisplay
    
    --- Volume group ---
    VG Name               hanadata
    System ID
    Format                lvm2
    Metadata Areas        2
    Metadata Sequence No  2
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                1
    Open LV               1
    Max PV                0
    Cur PV                2
    Act PV                2
    VG Size               1023.99 GiB
    
  • Volume Fisik (Disk Terkelola Azure terlampir)

    pvdisplay
    
    --- Physical volume ---
    PV Name               /dev/sdd
    VG Name               hanadata
    PV Size               512.00 GiB / not usable 4.00 MiB
    Allocatable           yes (but full)
    PE Size               4.00 MiB
    Total PE              131071
    Free PE               0
    Allocated PE          131071
    PV UUID               K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX
    --- Physical volume ---
    PV Name               /dev/sdc
    VG Name               hanadata
    PV Size               512.00 GiB / not usable 4.00 MiB
    Allocatable           yes (but full)
    PE Size               4.00 MiB
    Total PE              131071
    Free PE               0
    Allocated PE          131071
    PV UUID               RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV
    

Menginstal dan menyiapkan Azure VM dan Azure Managed Disks dengan cara ini mengikuti panduan Microsoft untuk membuat garis-garis LVM dari Disk Terkelola pada VM.

Dengan Azure VM yang disiapkan sebagaimana ditentukan, AzAcSnap dapat mengambil rekam jepret dari Disk Terkelola Azure. Operasi rekam jepret mirip dengan yang untuk back-end penyimpanan lain yang didukung oleh AzAcSnap (misalnya, Azure NetApp Files, Instans Besar Azure (Bare Metal)). Karena AzAcSnap berkomunikasi dengan azure Resource Manager untuk mengambil rekam jepret, AzAcSnap juga memerlukan Perwakilan Layanan dengan izin yang benar untuk mengambil rekam jepret disk terkelola.

Kemampuan ini memungkinkan pelanggan untuk menguji/menguji coba AzAcSnap pada sistem yang lebih kecil dan meningkatkan skala ke Azure NetApp Files dan/atau Instans Besar Azure (Bare Metal).

Fungsionalitas perintah yang didukung azacsnap dengan Azure Managed Disks adalah 'configure', 'test', 'backup', 'delete', 'details', tapi belum 'restore'.

Memulihkan dari rekam jepret Disk Terkelola Azure

Meskipun azacsnap saat ini tidak -c restore memiliki opsi untuk Disk Terkelola Azure, dimungkinkan untuk memulihkan secara manual sebagai berikut:

  1. Membuat disk dari rekam jepret melalui portal Azure.

    Catatan

    Pastikan untuk membuat disk di Zona Ketersediaan yang sama dengan VM target.

  2. Koneksi disk ke VM melalui portal Azure.

  3. Masuk ke VM sebagai root pengguna dan pindai disk yang baru terpasang menggunakan dmesg atau pvscan:

    1. Menggunakan dmesg:

      dmesg | tail -n30
      
      [2510054.252801] scsi 5:0:0:2: Direct-Access     Msft     Virtual Disk     1.0  PQ:0 ANSI: 5
      [2510054.262358] scsi 5:0:0:2: Attached scsi generic sg4 type 0
      [2510054.268514] sd 5:0:0:2: [sde] 1073741824 512-byte logical blocks: (550 GB/512 GiB)
      [2510054.272583] sd 5:0:0:2: [sde] 4096-byte physical blocks
      [2510054.275465] sd 5:0:0:2: [sde] Write Protect is off
      [2510054.277915] sd 5:0:0:2: [sde] Mode Sense: 0f 00 10 00
      [2510054.278566] sd 5:0:0:2: [sde] Write cache: disabled, read cache: enabled, supports DPO and FUA
      [2510054.314269] sd 5:0:0:2: [sde] Attached SCSI disk
      [2510054.573135] scsi 5:0:0:3: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
      [2510054.579931] scsi 5:0:0:3: Attached scsi generic sg5 type 0
      [2510054.584505] sd 5:0:0:3: [sdf] 1073741824 512-byte logical blocks: (550 GB/512 GiB)
      [2510054.589293] sd 5:0:0:3: [sdf] 4096-byte physical blocks
      [2510054.592237] sd 5:0:0:3: [sdf] Write Protect is off
      [2510054.594735] sd 5:0:0:3: [sdf] Mode Sense: 0f 00 10 00
      [2510054.594839] sd 5:0:0:3: [sdf] Write cache: disabled, read cache: enabled, supports DPO and FUA
      [2510054.627310] sd 5:0:0:3: [sdf] Attached SCSI disk
      
    2. Menggunakan pvscan:

      saphana:~ # pvscan
      
      WARNING: scan found duplicate PVID RNCylWF3OGG93c1XL3W6pwM0XB2mYFGV on /dev/sde
      WARNING: scan found duplicate PVID K3yhxN2713lk4kc3PcxOJQsCkD8ZE6YX on /dev/sdf
      WARNING: Not using device /dev/sde for PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV.
      WARNING: Not using device /dev/sdf for PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX.
      WARNING: PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV prefers device /dev/sdc because device is used by LV.
      WARNING: PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX prefers device /dev/sdd because device is used by LV.
      PV /dev/sdd   VG hanadata        lvm2 [512.00 GiB / 0    free]
      PV /dev/sdc   VG hanadata        lvm2 [512.00 GiB / 0    free]
      Total: 2 [1023.99 GiB] / in use: 2 [1023.99 GiB] / in no VG: 0 [0   ]
      
  4. Impor Klon Grup Volume dari disk menggunakan vgimportclone sebagai root pengguna:

    vgimportclone --basevgname hanadata_adhoc /dev/sde /dev/sdf
    
    WARNING: scan found duplicate PVID RNCylWF3OGG93c1XL3W6pwM0XB2mYFGV on /dev/sde
    WARNING: scan found duplicate PVID K3yhxN2713lk4kc3PcxOJQsCkD8ZE6YX on /dev/sdf
    WARNING: Not using device /dev/sde for PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV.
    WARNING: Not using device /dev/sdf for PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX.
    WARNING: PV RNCylW-F3OG-G93c-1XL3-W6pw-M0XB-2mYFGV prefers device /dev/sdc because device is used by LV.
    WARNING: PV K3yhxN-2713-lk4k-c3Pc-xOJQ-sCkD-8ZE6YX prefers device /dev/sdd because device is used by LV.
    
  5. Aktifkan Volume Logis menggunakan pvscan dan vgchange sebagai root pengguna:

    pvscan --cache
    
    pvscan[23761] PV /dev/sdc online.
    pvscan[23761] PV /dev/sdd online.
    pvscan[23761] PV /dev/sde online.
    pvscan[23761] PV /dev/sdf online.
    
    vgchange -ay hanadata_adhoc
    
    1 logical volume(s) in volume group "hanadata_adhoc" now active
    
  6. Pasang volume logis sebagai root pengguna:

    Penting

    mount -o rw,nouuid Gunakan opsi, jika tidak, pemasangan volume akan gagal karena UUID duplikat pada VM.

    mount -o rw,nouuid /dev/hanadata_adhoc/hanadata /mnt/hanadata_adhoc
    
  7. Kemudian akses data:

    ls /mnt/hanadata_adhoc/
    
    software  write-test.txt
    

Kemampuan RunBefore dan RunAfter

Catatan

Dukungan untuk azacsnap menjalankan perintah shell sebelum dan sesudah azacsnap dijalankan adalah fitur Pratinjau.
Konten bagian ini melengkapi apa itu halaman situs web alat Azure Application Consistent Snapshot .

Kemampuan baru bagi AzAcSnap untuk menjalankan perintah eksternal sebelum atau sesudah eksekusi utamanya.

--runbefore akan menjalankan perintah shell sebelum eksekusi utama azacsnap dan menyediakan beberapa parameter baris perintah azacsnap ke lingkungan shell. Secara default, azacsnap akan menunggu hingga 30 detik hingga perintah shell eksternal selesai sebelum membunuh proses dan kembali ke eksekusi normal azacsnap. Penundaan ini dapat ditimpa dengan menambahkan angka untuk menunggu dalam detik % setelah karakter (misalnya, --runbefore "mycommand.sh%60" akan menunggu hingga 60 detik mycommand.sh hingga selesai).

--runafter akan menjalankan perintah shell setelah eksekusi utama azacsnap dan menyediakan beberapa parameter baris perintah azacsnap ke lingkungan shell. Secara default, azacsnap akan menunggu hingga 30 detik hingga perintah shell eksternal selesai sebelum membunuh proses dan kembali ke eksekusi normal azacsnap. Ini dapat ditimpa dengan menambahkan angka untuk menunggu dalam detik setelah % karakter (misalnya, --runafter "mycommand.sh%60" akan menunggu hingga 60 detik mycommand.sh hingga selesai).

Daftar variabel lingkungan berikut dihasilkan oleh azacsnap dan diteruskan ke shell yang di-fork untuk menjalankan perintah yang disediakan sebagai parameter ke --runbefore dan --runafter:

  • $azCommand = opsi perintah diteruskan ke -c (misalnya, pencadangan, pengujian, dll.).
  • $azConfigFileName = nama file konfigurasi.
  • $azPrefix = nilai --prefix.
  • $azRetention = nilai --retensi.
  • $azSid = nilai --dbsid.
  • $azSnapshotName = nama rekam jepret yang dihasilkan oleh azacsnap.

Catatan

Hanya ada nilai untuk $azSnapshotName dalam --runafter opsi .

Contoh penggunaan

Contoh penggunaan untuk fitur baru ini adalah mengunggah rekam jepret ke Azure Blob untuk tujuan pengarsipan menggunakan alat azcopy (Menyalin atau memindahkan data ke Azure Storage dengan menggunakan AzCopy).

Entri crontab berikut adalah satu baris dan berjalan azacsnap pada lima tengah malam lalu. Perhatikan panggilan untuk snapshot-to-blob.sh meneruskan nama rekam jepret dan awalan rekam jepret:

5 0 * * *         ( . ~/.bash_profile ; cd /home/azacsnap/bin ; ./azacsnap -c backup --volume data --prefix daily --retention 1 --configfile HANA.json --trim --ssl openssl --runafter 'env ; ./snapshot-to-blob.sh $azSnapshotName $azPrefix')

Contoh skrip shell ini memiliki stanza khusus di akhir untuk mencegah AzAcSnap membunuh perintah eksternal karena batas waktu yang dijelaskan sebelumnya. Ini memungkinkan perintah jangka panjang, seperti mengunggah file besar dengan azcopy, dijalankan tanpa dihentikan sebelum waktunya.

Rekam jepret perlu dipasang pada sistem yang melakukan penyalinan, dengan hak istimewa baca-saja minimum. Lokasi dasar titik pemasangan untuk rekam jepret harus disediakan untuk sourceDir variabel dalam skrip.

cat snapshot-to-blob.sh
#!/bin/bash
# Utility to upload-to/list Azure Blob store.
#   If run as snapshot-to-blob.sh will upload a gzipped tarball of the snapshot.
#   If run as list-blobs.sh will list uploaded blobs.
#     e.g. `ln -s snapshot-to-blob.sh list-blobs.sh`


# _START_ Change these
SAS_KEY_FILE="${HOME}/bin/blob-credentials.saskey"
# the snapshots need to be mounted locally for copying, put source directory here
SOURCE_DIR="/mnt/saphana1/hana_data_PR1/.snapshot"
# _END_ Change these


# _START_ AzCopy Settings
#Overrides where the job plan files (used for progress tracking and resuming) are stored, to avoid filling up a disk.
export AZCOPY_JOB_PLAN_LOCATION="${HOME}/.azcopy/plans/"
#Overrides where the log files are stored, to avoid filling up a disk.
export AZCOPY_LOG_LOCATION="${HOME}/.azcopy/logs/"
#If set, to anything, on-screen output will include counts of chunks by state
export AZCOPY_SHOW_PERF_STATES=true
# _END_ AzCopy Settings


# do not change any of the following


# Make sure we got some command line args
if [ "$(basename "$0")" = "snapshot-to-blob.sh" ] && ([ "$1" = "" ] || [ "$2" = "" ]); then
  echo "Usage: $0 <SNAPSHOT_NAME> <PREFIX>"
  exit 1
fi

# Make sure we can read the SAS key credential file.
if [ -r "${SAS_KEY_FILE}" ]; then
  source "${SAS_KEY_FILE}"
else
  echo "Credential file '${SAS_KEY_FILE}' not found, exiting!"
fi


# Assign the rest of the Global variables.
SNAPSHOT_NAME=$1
PREFIX=$2
BLOB_STORE="$(echo "${PORTAL_GENERATED_SAS}" | cut -f1 -d'?')"
BLOB_SAS_KEY="$(echo "${PORTAL_GENERATED_SAS}" | cut -f2 -d'?')"
ARCHIVE_LOG="logs/$(basename "$0").log"

# Archive naming (daily.1, daily.2, etc...)
DAY_OF_WEEK=$(date "+%u")
MONTH_OF_YEAR=$(date "+%m")
ARCHIVE_BLOB_TGZ="${PREFIX}.${DAY_OF_WEEK}.tgz"

#######################################
# Write to the log.
# Globals:
#   None
# Arguments:
#   LOG_MSG
#######################################
write_log(){
  LOG_MSG=$1
  date=$(date "+[%d/%h/%Y:%H:%M:%S %z]")
  echo "$date ${LOG_MSG}" >> "${ARCHIVE_LOG}"
}


#######################################
# Run and Log the command.
# Globals:
#   None
# Arguments:
#   CMD_TO_RUN
#######################################
run_cmd(){
  CMD_TO_RUN="${1}"
  write_log "[RUNCMD] ${CMD_TO_RUN}"
  bash -c "${CMD_TO_RUN}"
}


#######################################
# Check snapshot exists and then background the upload to Blob store.
# Globals:
#   SOURCE_DIR
#   SNAPSHOT_NAME
#   ARCHIVE_LOG
# Arguments:
#   None
#######################################
snapshot_to_blob(){
  # Check SOURCE_DIR and SNAPSHOT_NAME exist
  if [ ! -d "${SOURCE_DIR}/${SNAPSHOT_NAME}" ]; then
    echo "${SOURCE_DIR}/${SNAPSHOT_NAME} not found, exiting!" | tee -a "${ARCHIVE_LOG}"
    exit 1
  fi
  # background ourselves so AzAcSnap exits cleanly
  echo "Backgrounding '$0 $@' to prevent blocking azacsnap"
  echo "write_logging to ${ARCHIVE_LOG}"
  {
    trap '' HUP
    # the script
    upload_to_blob
    list_blob >> "${ARCHIVE_LOG}"
  } < /dev/null > /dev/null 2>&1 &
}


#######################################
# Upload to Blob store.
# Globals:
#   SOURCE_DIR
#   SNAPSHOT_NAME
#   ARCHIVE_BLOB_TGZ
#   BLOB_STORE
#   BLOB_SAS_KEY
#   ARCHIVE_LOG
# Arguments:
#   None
#######################################
upload_to_blob(){
  # Copy snapshot to blob store
  echo "Starting upload of ${SNAPSHOT_NAME} to ${BLOB_STORE}/${ARCHIVE_BLOB_TGZ}" >> "${ARCHIVE_LOG}"
  run_cmd "azcopy env ; cd ${SOURCE_DIR}/${SNAPSHOT_NAME} && tar zcvf - * | azcopy cp \"${BLOB_STORE}/${ARCHIVE_BLOB_TGZ}?${BLOB_SAS_KEY}\" --from-to PipeBlob && cd -"
  echo "Completed upload of ${SNAPSHOT_NAME} ${BLOB_STORE}/${ARCHIVE_BLOB_TGZ}" >> "${ARCHIVE_LOG}"

  # Complete
  echo "Finished ($0 ${SNAPSHOT_NAME} ${PREFIX}) @ $(date "+%d-%h-%Y %H:%M")" >> "${ARCHIVE_LOG}"
  echo "--------------------------------------------------------------------------------" >> "${ARCHIVE_LOG}"
  # col 12345678901234567890123456789012345678901234567890123456789012345678901234567890
}


#######################################
# List contents of Blob store.
# Globals:
#   BLOB_STORE
#   BLOB_SAS_KEY
# Arguments:
#   None
#######################################
list_blob(){
  LOG_MSG="Current list of files stored in ${BLOB_STORE}"
  write_log "${LOG_MSG}"
  echo "${LOG_MSG}"
  run_cmd "azcopy list \"${BLOB_STORE}?${BLOB_SAS_KEY}\"  --properties LastModifiedTime "
}


# Log when script started.
write_log "Started ($0 ${SNAPSHOT_NAME} ${PREFIX}) @ $(date "+%d-%h-%Y %H:%M")"


# Check what this was called as ($0) and run accordingly.
case "$(basename "$0")" in
  "snapshot-to-blob.sh" )
    snapshot_to_blob
    ;;
  "list-blobs.sh" )
    list_blob
    ;;
  *)
    echo "Command '$0' not recognised!"
    ;;
esac

saskeyFile berisi contoh SaS Key berikut (konten diubah untuk keamanan):

cat blob-credentials.saskey
# we need a generated SAS key, get this from the portal with read,add,create,write,list permissions
PORTAL_GENERATED_SAS="https://<targetstorageaccount>.blob.core.windows.net/<blob-store>?sp=racwl&st=2021-06-10T21:10:38Z&se=2021-06-11T05:10:38Z&spr=https&sv=2020-02-10&sr=c&sig=<key-material>"

Azure Key Vault

Dari AzAcSnap v5.1, Anda dapat menyimpan Perwakilan Layanan dengan aman sebagai Rahasia di Azure Key Vault. Menggunakan fitur ini memungkinkan pemusatan kredensial Perwakilan Layanan di mana administrator alternatif dapat menyiapkan Rahasia untuk digunakan AzAcSnap.

Langkah-langkah yang harus diikuti untuk menyiapkan Azure Key Vault dan menyimpan Perwakilan Layanan dalam Rahasia adalah sebagai berikut:

  1. Dalam sesi Azure Cloud Shell, pastikan Anda masuk di langganan tempat Anda ingin membuat azure Key Vault:

    az account show
    
  2. Jika langganan tidak benar, gunakan perintah berikut untuk mengatur Cloud Shell ke langganan yang benar:

    az account set -s <subscription name or id>
    
  3. Buat Azure Key Vault

    az keyvault create --name "<AzureKeyVaultName>" -g <ResourceGroupName>
    
  4. Buat hubungan kepercayaan dan tetapkan kebijakan untuk komputer virtual untuk mendapatkan Rahasia

    1. Tampilkan Identitas komputer virtual AzAcSnap

      Jika komputer virtual sudah memiliki identitas yang dibuat, ambil sebagai berikut:

      az vm identity show --name "<VMName>" --resource-group "<ResourceGroup>"
      

      "principalId" dalam output digunakan sebagai --object-id nilai saat mengatur Kebijakan dengan az keyvault set-policy.

      {
        "principalId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
        "tenantId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
        "type": "SystemAssigned, UserAssigned",
        "userAssignedIdentities": { 
          "/subscriptions/99z999zz-99z9-99zz-99zz-9z9zz999zz99/resourceGroups/AzSecPackAutoConfigRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/AzSecPackAutoConfigUA-eastus2": {
            "clientId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
            "principalId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99"
          }
        }
      }
      
    2. Mengatur Identitas komputer virtual AzAcSnap (jika perlu)

      Jika VM tidak memiliki identitas, buat sebagai berikut:

      az vm identity assign --name "<VMName>" --resource-group "<ResourceGroup>"
      

      "systemAssignedIdentity" dalam output digunakan sebagai --object-id nilai saat mengatur Kebijakan dengan az keyvault set-policy.

      {
        "systemAssignedIdentity": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
        "userAssignedIdentities": {
          "/subscriptions/99z999zz-99z9-99zz-99zz-  9z9zz999zz99/resourceGroups/AzSecPackAutoConfigRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/AzSecPackAutoConfigUA-eastus2": {
            "clientId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
            "principalId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99"
          }
        }
      }
      
    3. Tetapkan kebijakan yang sesuai untuk komputer virtual agar dapat mengambil Rahasia dari Key Vault.

      az keyvault set-policy --name "<AzureKeyVaultName>" --object-id "<VMIdentity>" --secret-permissions get
      
  5. Membuat Rahasia azure Key Vault

    Buat rahasia, yang akan menyimpan informasi kredensial Perwakilan Layanan.

    Dimungkinkan untuk menempelkan konten Perwakilan Layanan. Dalam Cloud Shell Bash di bawah satu karakter apostrof dimasukkan setelah nilai lalu tekan [Enter] tombol, lalu tempelkan konten Perwakilan Layanan, tutup konten dengan menambahkan satu apostrof lain dan tekan tombol[Enter].
    Perintah ini harus membuat Rahasia dan menyimpannya di Azure Key Vault.

    Tip

    Jika Anda memiliki Perwakilan Layanan terpisah per penginstalan "<NameOfSecret>" , mungkin SID, atau beberapa pengidentifikasi unik lain yang sesuai.

    Contoh berikut adalah untuk menggunakan Cloud Shell Bash:

    az keyvault secret set --name "<NameOfSecret>" --vault-name "<AzureKeyVaultName>" --value '
    {
      "clientId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
      "clientSecret": "<ClientSecret>",
      "subscriptionId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
      "tenantId": "99z999zz-99z9-99zz-99zz-9z9zz999zz99",
      "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
      "resourceManagerEndpointUrl": "https://management.azure.com/",
      "activeDirectoryGraphResourceId": "https://graph.windows.net/",
      "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
      "galleryEndpointUrl": "https://gallery.azure.com/",
      "managementEndpointUrl": "https://management.core.windows.net/"
    }'
    

    Contoh berikut adalah untuk menggunakan Cloud Shell PowerShell:

    Peringatan

    Di PowerShell tanda kutip ganda harus diloloskan dengan tanda kutip ganda tambahan, sehingga satu kutipan ganda (") menjadi dua tanda kutip ganda ("").

    az keyvault secret set --name "<NameOfSecret>" --vault-name "<AzureKeyVaultName>" --value '
    {
      ""clientId"": ""99z999zz-99z9-99zz-99zz-9z9zz999zz99"",
      ""clientSecret"": ""<ClientSecret>"",
      ""subscriptionId"": ""99z999zz-99z9-99zz-99zz-9z9zz999zz99"",
      ""tenantId"": ""99z999zz-99z9-99zz-99zz-9z9zz999zz99"",
      ""activeDirectoryEndpointUrl"": ""https://login.microsoftonline.com"",
      ""resourceManagerEndpointUrl"": ""https://management.azure.com/"",
      ""activeDirectoryGraphResourceId"": ""https://graph.windows.net/"",
      ""sqlManagementEndpointUrl"": ""https://management.core.windows.net:8443/"",
      ""galleryEndpointUrl"": ""https://gallery.azure.com/"",
      ""managementEndpointUrl"": ""https://management.core.windows.net/""
    }'
    

    Output perintah az keyvault secret set akan memiliki nilai URI untuk digunakan sebagai "authFile" entri dalam file konfigurasi JSON AzAcSnap. URI adalah nilai di "id" bawah ini (misalnya, "https://<AzureKeyVaultName>.vault.azure.net/secrets/<NameOfSecret>/z9999999z9999999z9999999").

    {
      "attributes": {
        "created": "2022-02-23T20:21:01+00:00",
        "enabled": true,
        "expires": null,
        "notBefore": null,
        "recoveryLevel": "Recoverable+Purgeable",
        "updated": "2022-02-23T20:21:01+00:00"
      },
      "contentType": null,
      "id": "https://<AzureKeyVaultName>.vault.azure.net/secrets/<NameOfSecret>/z9999999z9999999z9999999",
      "kid": null,
      "managed": null,
      "name": "AzureAuth",
      "tags": {
        "file-encoding": "utf-8"
      },
      "value": "\n{\n  \"clientId\": \"99z999zz-99z9-99zz-99zz-9z9zz999zz99\",\n  \"clientSecret\": \"<ClientSecret>\",\n  \"subscriptionId\": \"99z999zz-99z9-99zz-99zz-9z9zz999zz99\",\n  \"tenantId\": \"99z999zz-99z9-99zz-99zz-9z9zz999zz99\",\n  \"activeDirectoryEndpointUrl\": \"https://login.microsoftonline.com\",\n  \"resourceManagerEndpointUrl\": \"https://management.azure.com/\",\n  \"activeDirectoryGraphResourceId\": \"https://graph.windows.net/\",\n  \"sqlManagementEndpointUrl\": \"https://management.core.windows.net:8443/\",\n  \"galleryEndpointUrl\": \"https://gallery.azure.com/\",\n  \"managementEndpointUrl\": \"https://management.core.windows.net/\"\n}"
    }
    
  6. Memperbarui file konfigurasi JSON AzAcSnap

    Ganti nilai untuk entri authFile dengan nilai ID Rahasia. Melakukan perubahan ini dapat dilakukan dengan mengedit file menggunakan alat seperti vi, atau dengan menggunakan azacsnap -c configure --configuration edit opsi .

    1. Nilai Lama
    "authFile": "azureauth.json"
    
    1. Nilai Baru
    "authFile": "https://<AzureKeyVaultName>.vault.azure.net/secrets/<NameOfSecret>/z9999999z9999999z9999999"
    

Semua Rekam Jepret Volume

Nilai opsional baru untuk --volume memungkinkan semua volume menjadi rekam jepret sebagai grup. Opsi ini memungkinkan semua rekam jepret memiliki nama rekam jepret yang sama, yang berguna jika melakukan -c restore kloning atau memulihkan sistem ke tanggal/waktu tertentu.

Menjalankan perintah azacsnap -c backup --volume all --retention 5 --prefix all-volumes AzAcSnap akan mengambil cadangan rekam jepret, dengan semua rekam jepret memiliki nama yang sama dengan awalan all-volumes dan maksimum lima rekam jepret dengan awalan per volume tersebut.

Pemrosesan ditangani dalam urutan yang diuraikan sebagai berikut:

  1. Data Rekam Jepret Volume (sama dengan opsi normal --volume data )
    1. masukkan database ke dalam mode pencadangan.
    2. ambil rekam jepret Volume yang tercantum dalam stanza file "dataVolume" konfigurasi.
    3. keluarkan database dari mode pencadangan.
    4. melakukan manajemen rekam jepret.
  2. Lain Rekam Jepret Volume (sama dengan opsi normal --volume other )
    1. ambil rekam jepret Volume yang tercantum dalam stanza file "otherVolume" konfigurasi.
    2. melakukan manajemen rekam jepret.

Langkah berikutnya