Bagikan melalui


Menjalankan Pemulihan titik waktu

Gunakan pemulihan titik waktu (PITR) untuk membuat database sebagai salinan database lain dari beberapa waktu di masa lalu yang berada dalam periode retensi. Artikel ini menjelaskan cara melakukan pemulihan titik waktu database di SQL Managed Instance yang diaktifkan oleh Azure Arc.

Pemulihan titik waktu bisa memulihkan database:

  • Dari database yang sudah ada
  • Ke database baru pada SQL Managed Instance yang sama yang diaktifkan oleh Azure Arc

Anda dapat memulihkan database ke titik waktu dalam pengaturan retensi pra-konfigurasi. Anda dapat memeriksa pengaturan retensi untuk SQL Managed Instance yang diaktifkan oleh Azure Arc sebagai berikut:

Untuk mode terhubung Langsung:

az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup

Untuk mode terhubung Tidak Langsung:

az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s

Saat ini, pemulihan titik waktu dapat memulihkan database:

  • Dari database yang ada pada instans
  • Ke database baru pada instans yang sama

Pencadangan Otomatis

SQL Managed Instance yang diaktifkan oleh Azure Arc mengaktifkan fitur pencadangan otomatis bawaan. Setiap kali Anda membuat atau memulihkan database baru, SQL Managed Instance yang diaktifkan oleh Azure Arc segera memulai pencadangan penuh dan menjadwalkan pencadangan log diferensial dan transaksi secara otomatis. Instans terkelola SQL menyimpan cadangan ini di kelas penyimpanan yang ditentukan selama penyebaran.

Pemulihan titik waktu memungkinkan database dipulihkan ke titik waktu tertentu, dalam periode retensi. Untuk memulihkan database ke titik waktu tertentu, layanan data dengan dukungan Azure Arc menerapkan file cadangan dalam urutan tertentu. Contohnya:

  1. Pencadangan penuh
  2. Pencadangan diferensial
  3. Satu atau beberapa cadangan log

Pemulihan titik waktu

Saat ini, pencadangan penuh dilakukan seminggu sekali, pencadangan diferensial dilakukan setiap 12 jam, dan pencadangan log transaksi setiap 5 menit.

Periode Retensi

Periode retensi default untuk SQL Managed Instance baru yang diaktifkan oleh Azure Arc adalah tujuh hari, dan dapat disesuaikan dengan nilai 0, atau 1-35 hari. Periode retensi dapat diatur selama penyebaran instans terkelola SQL dengan menetapkan properti --retention-days. File cadangan yang lebih lama dari periode retensi yang dikonfigurasi akan dihapus secara otomatis.

Membuat database dari titik waktu menggunakan az CLI

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s

Anda juga dapat menggunakan opsi --dry-run untuk memvalidasi operasi pemulihan tanpa benar-benar memulihkan database.

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run

Membuat database dari titik waktu menggunakan kubectl

  1. Untuk menjalankan pemulihan titik waktu dengan alat native Kubernetes, Anda dapat menggunakan kubectl. Buat file yaml spesifikasi tugas. Contohnya:

    apiVersion: tasks.sql.arcdata.microsoft.com/v1
    kind: SqlManagedInstanceRestoreTask                 
    metadata:                                       
      name: myrestoretask20220304
      namespace: test                              
    spec:                                           
      source:                                       
        name: miarc1                                
        database: testdb                            
      restorePoint: "2021-10-12T18:35:33Z"          
      destination:                                  
        name: miarc1                           
        database: testdb-pitr
      dryRun: false  
    
  2. Edit properti sebagai berikut:

    1. name: String unik untuk setiap sumber daya kustom (CR). Diperlukan oleh Kubernetes.
    2. namespace: Namespace Layanan Kubernetes tempat instans berada.
    3. source: ... name: Nama instans sumber.
    4. source: ... database: Nama database sumber tempat pemulihan akan diterapkan.
    5. restorePoint: Titik akhir waktu untuk operasi pemulihan dalam tanggalwaktu UTC.
    6. destination: ... name: Nama destinasi instans terkelola SQL yang didukung Arc. Saat ini, pemulihan titik waktu hanya didukung dalam instans terkelola SQL Arc. Ini harus sama dengan instans terkelola SQL sumber.
    7. destination: ... database: Nama database baru tempat pemulihan akan diterapkan.
  3. Buat tugas untuk memulai pemulihan titik waktu. Contoh berikut memulai tugas yang ditentukan dalam myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Periksa status tugas pemulihan sebagai berikut:

    kubectl get sqlmirestoretask -n <namespace>
    

Status tugas pemulihan akan diperbarui setiap 10 detik berdasarkan progres PITR. Status berkembang dari Waiting ke Restoring ke Completed atau Failed.

Buat database dari titik waktu tertentu menggunakan Azure Data Studio

Anda juga dapat memulihkan database ke titik waktu dari Azure Data Studio sebagai berikut:

  1. Luncurkan Azure Data studio
  2. Pastikan Anda memiliki ekstensi Arc yang diperlukan seperti yang dijelaskan dalam Alat.
  3. Menyambungkan ke pengontrol data Azure Arc
  4. Perluas simpul pengontrol data, klik kanan pada instans dan pilih Kelola. Azure Data Studio meluncurkan dasbor instans terkelola SQL.
  5. Klik tab Cadangan di dasbor
  6. Anda akan melihat daftar database pada instans terkelola SQL dan jendela waktu pemulihan Paling Awal dan Terbaru, dan ikon untuk memulai Pemulihan
  7. Klik ikon database yang ingin Anda pulihkan. Azure Data Studio meluncurkan blade ke sisi kanan
  8. Berikan input yang diperlukan di blade dan klik Pulihkan

Memantau kemajuan

Saat pemulihan dimulai, tugas dibuat di kluster Kubernetes yang menjalankan operasi pemulihan aktual dari pencadangan penuh, diferensial, dan log. Progres aktivitas ini dapat dipantau dari kluster Kubernetes Anda sebagai berikut:

kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc

Anda bisa mendapatkan lebih banyak detail tugas dengan menjalankan kubectl describe pada tugas. Contohnya:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

Konfigurasikan periode Retensi

Periode Retensi untuk SQL Managed Instance yang diaktifkan oleh Azure Arc dapat dikonfigurasi ulang dari pengaturan aslinya sebagai berikut:

Peringatan

Jika Anda mengurangi periode retensi saat ini, Anda akan kehilangan kemampuan untuk melakukan pemulihan ke titik waktu yang lebih lama dari periode retensi baru. Cadangan yang tidak lagi diperlukan untuk menyediakan PITR dalam periode retensi baru akan dihapus. Jika mengurangi periode retensi saat ini, Anda tidak langsung mendapatkan kemampuan untuk melakukan pemulihan ke titik waktu yang lebih lama dari periode retensi baru. Anda mendapatkan kemampuan tersebut seiring waktu, karena sistem mulai mempertahankan cadangan lebih lama.

--retention-period dapat diubah untuk SQL Managed Instance-Azure Arc sebagai berikut. Perintah di bawah ini berlaku untuk mode tersambung direct dan indirect .

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days <retentiondays>

Contohnya:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 10

Nonaktifkan pencadangan otomatis

Anda dapat menonaktifkan cadangan otomatis bawaan untuk instans tertentu dari SQL Managed Instance yang diaktifkan oleh Azure Arc dengan mengatur --retention-days properti ke 0, sebagai berikut. Perintah di bawah ini berlaku untuk direct mode dan indirect .

Peringatan

Jika Anda menonaktifkan Pencadangan Otomatis untuk SQL Managed Instance yang diaktifkan oleh Azure Arc, maka Setiap Pencadangan Otomatis yang dikonfigurasi akan dihapus dan Anda kehilangan kemampuan untuk melakukan pemulihan point-in-time. Anda dapat mengubah properti retention-days untuk memulai kembali pencadangan otomatis jika diperlukan.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days 0

Contohnya:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 0

Cadangan pemantauan

Cadangan disimpan di folder /var/opt/mssql/backups/archived/<dbname>/<datetime>, di mana <dbname> adalah nama database dan <datetime> akan menjadi tanda waktu dalam format UTC, untuk permulaan dari setiap pencadangan penuh. Setiap kali pencadangan penuh dimulai, folder baru akan dibuat dengan pencadangan penuh dan semua diferensial berikutnya dan cadangan log transaksi di dalam folder itu. Pencadangan penuh terbaru dan diferensial berikutnya dan cadangan log transaksi disimpan di folder /var/opt/mssql/backups/current/<dbname><datetime>.

Batasan

Pemulihan titik waktu ke SQL Managed Instance yang diaktifkan oleh Azure Arc memiliki batasan berikut:

  • Pemulihan titik waktu adalah fitur tingkat database, bukan fitur tingkat instans. Anda tidak dapat memulihkan seluruh instans dengan pemulihan Point-in-time.
  • Anda hanya dapat memulihkan ke SQL Managed Instance yang sama yang diaktifkan oleh Azure Arc dari tempat cadangan diambil.

Pelajari selengkapnya tentang Fitur dan Kemampuan SQL Managed Instance yang diaktifkan oleh Azure Arc

Mulai dengan membuat Pengontrol Data

Membuat SQL Managed Instance yang diaktifkan oleh Azure Arc