Aracılığıyla paylaş


Azure CLI kullanarak Azure VM'de SQL veritabanlarını yedekleme

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 VM'deki bir SQL veritabanını yedekleme ve Azure CLI kullanarak isteğe bağlı yedeklemeleri tetikleme açıklanmaktadır. Bu eylemleri Azure portalını kullanarak da gerçekleştirebilirsiniz.

Bu makalede, Azure VM'de zaten yüklü bir SQL veritabanınız olduğu varsayılır. (Azure CLI kullanarak da vm oluşturabilirsiniz).

Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:

  • Kurtarma Hizmetleri deposu oluştur
  • SQL server'ı kaydet ve üzerinde veritabanlarını keşfet
  • SQL veritabanında yedeklemeyi etkinleştirme
  • İsteğe bağlı yedekleme başlatma

Azure VM'de SQL için şu anda desteklenen senaryolara bakın.

Önkoşullar

Kurtarma Hizmetleri deposu oluştur

Kurtarma Hizmetleri kasası, Azure VM'leri veya Azure VM'lerinde çalışan iş yükleri (örneğin, SQL veya HANA veritabanları) gibi her korumalı kaynağın yedekleme verilerini depolayan mantıksal bir kapsayıcıdır. Koruma altındaki bir kaynak için yedekleme işi çalıştığında Kurtarma Hizmetleri kasasında bir kurtarma noktası oluşturulur. Daha sonra bu kurtarma noktalarından birini kullanarak verileri dilediğiniz zaman geri yükleyebilirsiniz.

az backup vault create komutuyla bir Kurtarma Hizmetleri kasası oluşturun. Korumak istediğiniz VM'nin kaynak grubunu ve konumunu kullanın. Azure CLI kullanarak Windows VM ve Linux VM oluşturmayı öğrenin.

Bu makale için şunları kullanacağız:

  • SQLResourceGroup adlı bir kaynak grubu
  • testSQLVM adlı bir VM
  • westus2 konumundaki kaynaklar.

SQLVault adlı bir kasa oluşturmak için aşağıdaki komutu çalıştırın.

az backup vault create --resource-group SQLResourceGroup \
    --name SQLVault \
    --location westus2

Varsayılan olarak, Kurtarma Hizmetleri Kasası coğrafi yedekli depolama olarak ayarlanmıştır. Geo-Redundant depolama alanı, birincil bölgeden yüzlerce mil uzakta olsa bile yedekleme verilerinizin ikincil bir Azure bölgesine çoğaltılmasını sağlar. Depolama yedekliliği ayarının değiştirilmesi gerekiyorsa az backup vault backup-properties set komutunu kullanın.

az backup vault backup-properties set \
    --name SQLVault  \
    --resource-group SQLResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

Kasanın başarıyla oluşturulup oluşturulmadığını doğrulamak için az backup vault list komutunu kullanın. Yanıt şu şekilde görünür:

Location   Name             ResourceGroup
---------  ---------------  -------------  
westus2    SQLVault     	SQLResourceGroup

SQL Server'ı kaydetme ve koruma

SQL Server'ı Kurtarma Hizmetleri kasasına kaydetmek için az backup container register komutunu kullanın. VMResourceId , SQL'i yüklemek için oluşturduğunuz VM'nin kaynak kimliğidir.

az backup container register --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
    --backup-management-type AzureWorkload \
    --resource-id VMResourceId

Uyarı

VM kasayla aynı kaynak grubunda yoksa SQLResourceGroup , kasanın oluşturulduğu kaynak grubunu kullanır.

SQL sunucusunu kaydetmek, tüm geçerli veritabanlarını otomatik olarak bulur. Ancak, gelecekte eklenebilecek yeni veritabanlarını bulmak için Kayıtlı SQL sunucusuna eklenen yeni veritabanlarını bulma bölümüne bakın.

SQL örneğinin kasanıza başarıyla kaydedilip kaydedilmediğini doğrulamak için az backup container list komutunu kullanın. Yanıt şu şekilde görünür:

Name                                                    Friendly Name    Resource Group        Type           Registration Status
------------------------------------------------------  --------------   --------------------  ---------      ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM   	testSQLVM        SQLResourceGroup  		AzureWorkload  Registered

Uyarı

Yukarıdaki çıktıdaki sütun adı kapsayıcı adına başvurur. Bu kapsayıcı adı, yedeklemeleri etkinleştirmek ve tetiklemeleri için sonraki bölümlerde kullanılır. Örneğin, VMAppContainer; Hesaplamak; SQLResourceGroup; testSQLVM.

SQL veritabanında yedeklemeyi etkinleştirme

az backup protectable-item list komutu, önceki adımda kaydettiğiniz SQL örneğinde bulunan tüm veritabanlarını listeler.

az backup protectable-item list --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
	--backup-management-type AzureWorkload \
	--protectable-item-type SQLDataBase
    --output table

Yedeklemek istediğiniz veritabanını şu listede bulmalısınız:

Name                           		Protectable Item Type    ParentName    ServerName    	IsProtected
-----------------------------  		----------------------   ------------  -----------   	------------
sqldatabase;mssqlserver;master      SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;model       SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;msdb        SQLDataBase              MSSQLServer   testSQLVM        NotProtected  

Şimdi sqldatabase;mssqlserver;master veritabanı için yedeklemeyi yapılandırın.

Veritabanındaki yedeklemeleri tek tek yapılandırmak ve koruma altına almak için az backup protection enable-for-azurewl komutunu kullanın. Kullanmak istediğiniz ilkenin adını belirtin. CLI kullanarak ilke oluşturmak için az backup policy create komutunu kullanın. Bu makalede testSQLPolicy ilkesini kullandık.

az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqldatabase;mssqlserver;master"  \
    --protectable-item-type SQLDataBase \
    --server-name testSQLVM \
    --workload-type SQLDataBase \
    --output table

SQL AlwaysOn Kullanılabilirlik Grubunuz varsa ve kullanılabilirlik grubundaki korunabilir veri kaynağını belirlemek istiyorsanız aynı komutu kullanabilirsiniz. Burada, korunabilir öğe türü SQLAG'dir.

Yukarıdaki yedekleme yapılandırmasının tamam olup olmadığını doğrulamak için az backup job list komutunu kullanın. Çıkış şu şekilde görünür:

Name                                  Operation         Status     Item Name   Start Time UTC
------------------------------------  ---------------   ---------  ----------  -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup   Completed  master         2019-12-03T03:09:210831+00:00  

az backup job list komutu, yedeklemeyi kaydetme, yapılandırma ve yedekleme verilerini silme gibi diğer işlemlere ek olarak, korunan veritabanında çalıştırılan veya çalışmakta olan tüm yedekleme işlerini (zamanlanmış veya isteğe bağlı) listeler.

Uyarı

Azure Backup, Azure VM'de çalışan bir SQL veritabanını yedeklerken yaz saati değişiklikleri için otomatik olarak ayar yapmaz.

Politikayı gerektiği durumlarda manüel olarak değiştirin.

Otomatik korumayı etkinleştirme

Sorunsuz yedekleme yapılandırması için gelecekte eklenen tüm veritabanları belirli bir ilkeyle otomatik olarak korunabilir. Otomatik korumayı etkinleştirmek için az backup protection auto-enable-for-azurewl komutunu kullanın.

Yönerge gelecekteki tüm veritabanlarını yedeklemek olduğundan, işlem SQLInstance düzeyinde gerçekleştirilir.

az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqlinstance;mssqlserver"  \
    --protectable-item-type SQLInstance \
    --server-name testSQLVM \
    --workload-type MSSQL\
    --output table

İsteğe bağlı yedekleme başlatma

İsteğe bağlı yedekleme tetikleme için az backup protection backup-now komutunu kullanın.

Uyarı

Bu yedeklemenin saklama süresi, çalıştırdığınız isteğe bağlı yedekleme türüne göre belirlenir.

  • İsteğe bağlı tam yedeklemeleri en az 45 gün ve en fazla 99 yıl boyunca korur.
  • Yalnızca tam isteğe bağlı kopya saklama için herhangi bir değeri kabul eder.
  • Talep üzerine farklar, politika kapsamında ayarlanan zamanlanmış farkların tutulma ayarlarına göre yedeklemeyi korur.
  • İsteğe bağlı günlük, politikada belirtilen zamanlanmış günlüklerin saklama süresine göre yedekleri tutar.
az backup protection backup-now --resource-group SQLResourceGroup \
    --item-name sqldatabase;mssqlserver;master \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --backup-type Full
    --retain-until 01-01-2040
    --output table

Çıkış şu şekilde görünür:

Name                                  ResourceGroup
------------------------------------  -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3  sqlResourceGroup

Yanıt size iş adını sağlar. az backup job show komutunu kullanarak iş durumunu izlemek için bu iş adını kullanabilirsiniz.

Sonraki Adımlar