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:
- Pencadangan penuh
- Pencadangan diferensial
- Satu atau beberapa cadangan log
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
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
Edit properti sebagai berikut:
name:
String unik untuk setiap sumber daya kustom (CR). Diperlukan oleh Kubernetes.namespace:
Namespace Layanan Kubernetes tempat instans berada.source: ... name:
Nama instans sumber.source: ... database:
Nama database sumber tempat pemulihan akan diterapkan.restorePoint:
Titik akhir waktu untuk operasi pemulihan dalam tanggalwaktu UTC.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.destination: ... database:
Nama database baru tempat pemulihan akan diterapkan.
Buat tugas untuk memulai pemulihan titik waktu. Contoh berikut memulai tugas yang ditentukan dalam
myrestoretask20220304.yaml
.kubectl apply -f myrestoretask20220304.yaml
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:
- Luncurkan Azure Data studio
- Pastikan Anda memiliki ekstensi Arc yang diperlukan seperti yang dijelaskan dalam Alat.
- Menyambungkan ke pengontrol data Azure Arc
- Perluas simpul pengontrol data, klik kanan pada instans dan pilih Kelola. Azure Data Studio meluncurkan dasbor instans terkelola SQL.
- Klik tab Cadangan di dasbor
- Anda akan melihat daftar database pada instans terkelola SQL dan jendela waktu pemulihan Paling Awal dan Terbaru, dan ikon untuk memulai Pemulihan
- Klik ikon database yang ingin Anda pulihkan. Azure Data Studio meluncurkan blade ke sisi kanan
- 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.