Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure CLI, Komut Satırı'ndan veya betikler aracılığıyla Azure kaynakları oluşturmak ve yönetmek için kullanılır. Bu makalede, Azure CLI kullanarak Azure VM'de yedeklenmiş bir SQL veritabanının nasıl yönetileceğini açıklanmaktadır. Bu eylemleri Azure portalını kullanarak da gerçekleştirebilirsiniz.
Uyarı
SQL veritabanınızı yedeklemek için CLI kullanarak Azure'da bir SQL veritabanını yedeklemeyi kullandıysanız aşağıdaki kaynakları kullanıyorsunuz demektir:
- SQLResourceGroup adlı bir kaynak grubu
- SQLVault adlı bir kasa
- VMAppContainer, Hesaplama, SQLResourceGroup, testSQLVM adlı korumalı kapsayıcı
- yedeklenen sqldatabase;mssqlserver;master adlı veritabanı/öğe
- westus2 bölgesindeki kaynaklar
Azure CLI, Azure Backup kullanılarak yedeklenen bir Azure VM üzerinde çalışan bir SQL veritabanını yönetme sürecini kolaylaştırır. Aşağıdaki bölümlerde yönetim işlemlerinin her biri açıklanmaktadır.
Bugün desteklediğimiz yedekleme ve geri yükleme senaryolarını görüntülemek için destek matrisine bakın. Sık sorulan sorular için sık sorulan sorulara bakın.
Yedekleme ve geri yükleme işlerini izleme
Tamamlanan veya çalışmakta olan işleri (yedekleme veya geri yükleme) izlemek için az backup job list komutunu kullanın. CLI, çalışmakta olan bir işi askıya almanızı veya bir iş tamamlanana kadar beklemenizi de sağlar.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
Çıkış şu şekilde görünür:
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
İlkeyi değiştirme
SQL yedekleme yapılandırmasını temel alan ilkeyi değiştirmek için az backup policy set komutunu kullanın. Bu komuttaki name parametresi, ilkesini değiştirmek istediğiniz yedekleme öğesine başvurur. Burada, SQL veritabanı sqldatabase; mssqlserver; master ilkesini newSQLPolicy ile değiştirin. az backup policy create komutunu kullanarak yeni ilkeler oluşturabilirsiniz.
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name "VMAppContainer;Compute;SQLResourceGroup;testSQLVM" \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master
Çıkış şu şekilde görünür:
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
Artımlı yedekleme politikası oluşturma
Değişiklik yedekleme ilkesi oluşturmak için aşağıdaki parametrelerle az backup policy create komutunu kullanın:
- --backup-management-type: Azure İş Yükü.
- --workload-type: SQL Veri Tabanı.
- --name: İlkenin adı.
- --policy: Zamanlama ve saklama için uygun ayrıntıları içeren JSON dosyası.
- --resource-group: Kasanın kaynak grubu.
- --vault-name: Kasanın adı/
Örnek:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Örnek 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"
}
İlke başarıyla oluşturulduktan sonra, komutun çıktısı komutu yürütürken parametre olarak iletmiş olduğunuz ilke JSON'unu gösterir.
Farklı yedekler için gerekli yedekleme sıklığını ve saklama süresini belirtmek üzere ilkenin aşağıdaki bölümünü değiştirebilirsiniz.
Örneğin:
{
"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
}
}
Örnek:
Değişiklik yedeklemelerinin yalnızca Cumartesi günü olmasını ve 60 gün boyunca saklanmasını istiyorsanız, ilkede aşağıdaki değişiklikleri yapın:
- retentionDuration sayısını 60 güne güncelleştirin.
- ScheduleRunDays olarak yalnızca Cumartesi değerini belirtin.
{
"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
}
}
SQL örneğine eklenen yeni veritabanlarını koruma
Kurtarma Hizmetleri kasasına bir SQL örneğinin kaydedilmesi , bu örnekteki tüm veritabanlarını otomatik olarak bulur.
Ancak sql örneğine daha sonra yeni veritabanları eklediyseniz az backup protectable-item initialize komutunu kullanın. Bu komut eklenen yeni veritabanlarını bulur.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name "VMAppContainer;Compute;SQLResourceGroup;testSQLVM" \
--workload-type SQLDataBase
Sonra, SQL örneğinizde keşfedilen tüm veritabanlarını listelemek için az backup protectable-item list cmdlet'ini kullanın. Koruma durumlarını kontrol edin veya filtreleyin. Yedeklemek istediğiniz veritabanını bulduğunuzda, SQL veritabanında yedeklemeyi etkinleştirme bölümüne bakın.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
Yedeklemek istediğiniz yeni veritabanı şu listede gösterilir:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
SQL veritabanı için korumayı durdurma
Aşağıdaki işlemlerde SQL veritabanını korumayı durdurabilirsiniz:
- Gelecekteki tüm yedekleme işlerini durdurun ve tüm kurtarma noktalarını silin.
- Gelecekteki tüm yedekleme işlerini durdurun ve kurtarma noktalarını olduğu gibi bırakın.
Kurtarma noktalarından ayrılmayı seçerseniz şu ayrıntıları aklınızda bulundurun:
- Tüm kurtarma noktaları sonsuza kadar değişmeden kalır ve tüm ayıklamalar, verileri koruyarak durur.
- Korumalı örnek ve tüketilen depolama alanı için ücretlendirilirsiniz.
- Yedeklemeleri durdurmadan bir veri kaynağını silerseniz yeni yedeklemeler başarısız olur.
Korumayı durdurma işlemleri aşağıda ayrıntılı olarak yer almaktadır.
Verileri bekleterek korumayı durdurun
Verileri koruyarak korumayı durdurmak için az backup protection disable' komutunu kullanın.
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
Çıkış şu şekilde görünür:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Bu işlemin durumunu doğrulamak için az backup job show komutunu kullanın.
Verileri saklamadan korumayı durdurma
Verileri tutmadan korumayı durdurmak için az backup protection disable komutunu kullanın.
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
Çıkış şu şekilde görünür:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Bu işlemin durumunu doğrulamak için az backup job show komutunu kullanın.
Korumayı sürdürme
Sql veritabanı için korumayı veri saklama ile durdurduğunuzda, korumayı daha sonra sürdürebilirsiniz. Yedeklenen verileri saklamazsanız korumayı sürdüremezsiniz.
Korumayı sürdürmek için az backup protection resume komutunu kullanın.
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name "VMAppContainer;Compute;SQLResourceGroup;testSQLVM" \
--policy-name SQLPolicy \
--item-name "<native-database-item-name>" \
--output table
Çıkış şu şekilde görünür:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Bu işlemin durumunu doğrulamak için az backup job show komutunu kullanın.
SQL örneği anlık görüntü yedeklerini yönet
Aşağıdaki anlık komutlar PowerShell shell sözdizimi kullanır, Bash değil. Yer tutucuları değiştirin ve bu makalede gösterilen anlık görüntü seçeneklerini destekleyen bir Azure CLI sürümünü kullanın. Sadece amaçlanan işlemi çalıştırın.
retain-data ve delete-data örnekleri alternatiftir.
Vault ve korunan örneği seçin
Ortak argümanlar için kasanın abonelik ve kaynak grubunu kullanın:
$vaultSubscription = "<vault-subscription-id>"
$vaultRg = "<vault-rg>"
$vaultName = "<vault-name>"
$vaultArgs = @("--subscription", $vaultSubscription, "--resource-group", $vaultRg, "--vault-name", $vaultName)
az backup vault show --subscription $vaultSubscription --resource-group $vaultRg --name $vaultName
az backup container list @vaultArgs --backup-management-type AzureWorkload `
--query "[].{Name:name,VM:properties.friendlyName}" --output table
$containerName = "<native-source-container-name>"
$sourceArgs = $vaultArgs + @("--container-name", $containerName, "--backup-management-type", "AzureWorkload")
Çıktıdan tam konteyner adını kopyalayın. Vault'taki tüm anlık görüntü korumalı örnekleri listeleyin ve ardından listeyi seçilen konteynere göre sınırlayın:
az backup item list @vaultArgs --backup-management-type AzureWorkload `
--workload-type SQLInstance --output json
az backup item list @sourceArgs --workload-type SQLInstance --output json
$instanceItemName = "<native-protected-instance-item-name>"
az backup item show @sourceArgs --workload-type SQLInstance `
--name $instanceItemName --output json
$instanceArgs = $sourceArgs + @("--item-name", $instanceItemName, "--workload-type", "SQLInstance")
Servis tarafından döndürülen yerel isimleri kullanın, konteyner veya öğe isimleri oluşturmak yerine. Politika oluşturma ve veritabanı seçimi için bkz. SQL örneği anlık görüntü yedeklemesi yapılandırması.
Anlık görüntü işlemlerini izleme
İş durumunu denetlemek için, yedekleme, geri yükleme veya koruma işleminin döndürdüğü iş adını kullanın.
az backup job show @vaultArgs --name "<job-name>" --output json
Korumayı durdurma ve verileri koruma
Seçilen öğenin yedeklerini durdurmadan önce istenen örnek olduğunu doğrulayın:
az backup protection disable @instanceArgs --delete-backup-data false
Bu işlem, mevcut yedek verileri korurken yedeklemeyi durdurur. Devam etmeden önce onay isteğini gözden geçirin.
Korumayı durdurma ve verileri silme
Warning
Aşağıda, yedek verileri saklamak yerine kullanılan yıkıcı bir alternatif sunulmaktadır. Silme talebinde bulunmadan önce seçilen instance’i ve ona ait veritabanlarını doğrulayın. Vault değiştirilmezliği ve yumuşak silme ayarları silme davranışını etkileyebilir.
az backup protection disable @instanceArgs --delete-backup-data true
VM konteynerinin kaydını kaldır
Konteynerin kaydını yalnızca tüm korunan öğeleri artık korunmadıktan ve hiçbir yedek verisi kalmadıktan sonra kaldırın. Bu işlem, sadece tek bir örnek veya veritabanı için değil, tüm VM uygulama konteyneri için geçerlidir.
az backup container unregister @vaultArgs --container-name $containerName `
--backup-management-type AzureWorkload
Snapshot recovery point sorguları ve yapılandırmaları için SQL örnek anlık görüntülerini geri yükleme bkz.
Sonraki adımlar
- Azure portalını kullanarak Azure VM üzerinde çalışan bir SQL veritabanını yedeklemeyi öğrenin.
- Azure portalını kullanarak Azure VM'de çalışan yedeklenmiş sql veritabanını yönetmeyi öğrenin.