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ı yapmayı öğreneceksiniz:

  • Kurtarma Hizmetleri kasası oluşturma
  • SQL server'ı kaydetme ve üzerinde veritabanlarını bulma
  • SQL veritabanında yedeklemeyi etkinleştirme
  • İsteğe bağlı yedekleme tetikleme

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

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Kurtarma Hizmetleri kasası oluşturma

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ının içinde 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ında Coğrafi Olarak Yedekli depolama özelliği etkindir. Coğrafi Olarak Yedekli depolama, 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

Not

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

SQL server'ın kaydedilmesi, 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

Not

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 için yedeklemeyi yapılandırın; mssqlserver; ana veritabanı.

Veritabanındaki yedeklemeleri tek tek yapılandırmak ve korumak 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.

Not

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

İlkeyi gerektiği gibi el ile 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 tetikleme

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

Not

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.
  • İsteğe bağlı kopya yalnızca tam saklama için herhangi bir değeri kabul eder.
  • İsteğe bağlı farklar , ilkede ayarlanan zamanlanmış farkların elde tutulmasına göre yedeklemeyi korur.
  • İsteğe bağlı günlük , ilkede ayarlanan zamanlanmış günlüklerin elde tutulmasına göre yedeklemeleri korur.
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

  • CLI kullanarak Azure VM'de SQL veritabanını geri yüklemeyi öğrenin.
  • Azure portalını kullanarak Azure VM'de çalışan bir SQL veritabanını yedeklemeyi öğrenin.