Mengelola database SQL di Azure VM menggunakan Azure CLI
Antarmuka tingkat panggilan Azure digunakan untuk membuat dan mengelola sumber daya Azure dari Baris Perintah atau melalui skrip. Artikel ini menjelaskan cara mengelola database SQL yang dicadangkan di Azure VM menggunakan Azure CLI. Anda juga dapat melakukan tindakan tersebut menggunakan portal Azure.
Dalam artikel ini, Anda akan mempelajari cara:
- Memantau pekerjaan pencadangan dan pemulihan
- Melindungi database baru yang ditambahkan ke instans SQL Server
- Mengubah kebijakan
- Menghentikan perlindungan
- Melanjutkan perlindungan
Jika Anda telah menggunakan Mencadangkan database SQL di Azure menggunakan CLI untuk mencadangkan database SQL, maka Anda menggunakan sumber daya berikut:
- Grup sumber daya bernama SQLResourceGroup
- Vault bernama SQLVault
- Kontainer yang dilindungi bernama VMAppContainer;Compute;SQLResourceGroup;testSQLVM
- Database/item yang dicadangkan bernama sqldatabase;mssqlserver;master
- Sumber daya di wilayah westus2
Azure CLI memudahkan proses pengelolaan database SQL yang berjalan di Azure VM, yang dicadangkan menggunakan Azure Backup. Bagian berikut menjelaskan setiap operasi manajemen.
Catatan
Lihat matriks dukungan pencadangan SQL untuk mengetahui lebih lanjut tentang konfigurasi dan skenario yang didukung.
Memantau pekerjaan pencadangan dan pemulihan
Gunakan perintah az backup job list untuk memantau pekerjaan yang selesai atau sedang berjalan (pencadangan atau pemulihan). CLI juga memungkinkan Anda untuk menangguhkan pekerjaan yang sedang berjalan atau tunggu sampai pekerjaan selesai.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
Output-nya muncul sebagai berikut:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
Mengubah kebijakan
Untuk mengubah kebijakan yang mendasari konfigurasi pencadangan SQL, gunakan perintah az backup policy set. Parameter nama dalam perintah ini mengacu pada item cadangan yang kebijakannya ingin Anda ubah. Di sini, ganti kebijakan database SQL sqldatabase;mssqlserver;master dengan kebijakan baru newSQLPolicy. Anda dapat membuat kebijakan baru menggunakan perintah az backup policy create.
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
Output-nya muncul sebagai berikut:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
Membuat kebijakan cadangan diferensial
Untuk membuat kebijakan cadangan diferensial, gunakan perintah az backup policy create dengan parameter berikut:
- --backup-management-type: Beban Kerja Azure.
- --workload-type: SQL DataBase.
- --name: Nama kebijakan.
- --policy: File JSON dengan detail yang sesuai untuk jadwal dan retensi.
- --resource-group: Grup sumber daya vault.
- --vault-name: Nama vault/
Contoh:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Sampel JSON (sqlpolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
Setelah kebijakan berhasil dibuat, output dari perintah menunjukkan JSON kebijakan yang Anda berikan sebagai parameter saat menjalankan perintah.
Anda dapat mengubah bagian kebijakan berikut untuk menentukan frekuensi dan retensi cadangan yang diperlukan untuk cadangan diferensial.
Contohnya:
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Contoh:
Jika Anda ingin melakukan pencadangan diferensial hanya pada hari Sabtu dan menyimpannya selama 60 hari, lakukan perubahan kebijakan berikut:
- Perbarui jumlah retentionDuration menjadi 60 hari.
- Tentukan hanya hari Sabtu sebagai ScheduleRunDays.
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Melindungi database baru yang ditambahkan ke instans SQL Server
Mendaftarkan instans SQL Server dengan vault Layanan Pemulihan otomatis menemukan semua database dalam instans ini.
Namun, jika nanti Anda menambahkan database baru ke instans SQL Server, gunakan perintah az backup protected-item initialize. Perintah ini menemukan database baru yang ditambahkan.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Kemudian gunakan cmdlet az backup protectable-item list untuk mencantumkan semua database yang telah ditemukan pada instans SQL Server Anda. Meskipun demikian, daftar ini mengecualikan database yang pencadangannya telah dikonfigurasi. Setelah database yang akan dicadangkan ditemukan, lihat Mengaktifkan pencadangan pada database SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
Database baru yang ingin Anda cadangkan ditampilkan dalam daftar ini, yang muncul sebagai berikut:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Menghentikan perlindungan untuk database SQL
Anda dapat menghentikan perlindungan database SQL dengan proses berikut:
- Hentikan semua pekerjaan pencadangan di masa mendatang dan hapus semua titik pemulihan.
- Hentikan semua pekerjaan pencadangan di masa mendatang dan biarkan semua titik pemulihan.
Jika Anda memilih untuk meninggalkan titik pemulihan, perhatikan detail berikut:
- Semua titik pemulihan tetap utuh selamanya, dan semua pemangkasan berhenti pada menghentikan perlindungan dengan menyimpan data.
- Anda akan dikenakan biaya untuk instans yang dilindungi dan penyimpanan yang digunakan.
- Jika Anda menghapus sumber data tanpa menghentikan pencadangan, pencadangan baru akan gagal.
Proses untuk menghentikan perlindungan dijelaskan di bawah ini.
Hentikan perlindungan dengan menyimpan data
Untuk menghentikan perlindungan dengan menyimpan data, gunakan perintah az backup protection disable.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
Output-nya muncul sebagai berikut:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Untuk memeriksa status operasi ini, gunakan perintah az backup job show.
Hentikan perlindungan tanpa menyimpan data
Untuk menghentikan perlindungan tanpa menyimpan data, gunakan perintah az backup protection disable.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
Output-nya muncul sebagai berikut:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Untuk memeriksa status operasi ini, gunakan perintah az backup job show.
Melanjutkan perlindungan
Saat Anda menghentikan perlindungan untuk database SQL dengan menyimpan data, Anda dapat melanjutkan perlindungan nanti. Jika Anda tidak menyimpan data yang dicadangkan, Anda tidak akan dapat melanjutkan perlindungan.
Untuk melanjutkan perlindungan, gunakan perintah az backup protection resume.
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
Output-nya muncul sebagai berikut:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Untuk memeriksa status operasi ini, gunakan perintah az backup job show.