Aracılığıyla paylaş


Azure VM'lerindeki SQL Server Backup hakkında

Azure Backup , Azure VM'lerinde çalışan SQL Server'ı yedeklemek için akış tabanlı, özelleştirilmiş bir çözüm sunar. Bu çözüm, Azure Backup'ın sıfır altyapı yedekleme, uzun süreli saklama ve merkezi yönetim avantajlarıyla uyumlu hale getirmektedir. Ayrıca SQL Server için özel olarak aşağıdaki avantajları sağlar:

  • Tam, değişiklik ve günlük gibi tüm yedekleme türlerini destekleyen iş yüküne duyarlı yedeklemeler
  • Sık günlük yedeklemeleri içeren 15 dakikalık RPO (kurtarma noktası hedefi)
  • Saniyeye kadar belirli bir noktaya kurtarma
  • Tek tek veritabanı düzeyi yedekleme ve geri yükleme

Bugün desteklediğimiz yedekleme ve geri yükleme senaryolarını görüntülemek için destek matrisine bakın.

Yedekleme işlemi

Bu çözüm, SQL veritabanlarınızın yedeklerini almak için SQL yerel API'lerinden yararlanıyor.

  • Korumak ve içindeki veritabanlarını sorgulamak istediğiniz SQL Server VM'sini belirttiğinizde, Azure Backup hizmeti vm'ye ad AzureBackupWindowsWorkload uzantısıyla bir iş yükü yedekleme uzantısı yükler.

  • Bu uzantı bir koordinatör ve sql eklentisinden oluşur. Koordinatör yedekleme, yedekleme ve geri yükleme yapılandırma gibi çeşitli işlemler için iş akışlarını tetiklemeden sorumlu olsa da, eklenti gerçek veri akışından sorumludur.

  • Azure Backup, bu VM'de veritabanlarını bulabilmek için hesabını NT SERVICE\AzureWLBackupPluginSvcoluşturur. Bu hesap yedekleme ve geri yükleme için kullanılır ve SQL sysadmin izinleri gerektirir. Hesap NT SERVICE\AzureWLBackupPluginSvc bir Sanal Hizmet Hesabı olduğundan parola yönetimi gerektirmez. Azure Backup, veritabanı bulma/sorgulama için hesabı kullanır NT AUTHORITY\SYSTEM , bu nedenle bu hesabın SQL'de genel oturum açma olması gerekir. SQL Server sanal makinesini Azure Market'ten oluşturmadıysanız UserErrorSQLNoSysadminMembership hatasıyla karşılaşabilirsiniz. Bu durumda buradaki yönergeleri izleyin.

  • Seçili veritabanlarında koruma yapılandırmayı tetikledikten sonra, yedekleme hizmeti koordinatörü yedekleme zamanlamalarıyla ve uzantının yerel olarak VM'de önbelleğe aldığı diğer ilke ayrıntılarıyla ayarlar.

  • Zamanlanan zamanda düzenleyici eklentiyle iletişim kurar ve VDI kullanarak yedekleme verilerini SQL sunucusundan akışla aktarmaya başlar.

  • Eklenti, verileri doğrudan Kurtarma Hizmetleri kasasına gönderir ve böylece hazırlama konumu gereksinimi ortadan kaldırır. Veriler, Azure Backup hizmeti tarafından depolama hesaplarında şifrelenir ve depolanır.

  • Veri aktarımı tamamlandığında, koordinatör yedekleme hizmetiyle işlemeyi onaylar.

    SQL Backup mimarisi

Başlamadan önce

Başlamadan önce aşağıdaki gereksinimleri doğrulayın:

  1. Azure'da çalışan bir SQL Server örneğine sahip olduğunuzdan emin olun. Markette hızla bir SQL Server örneği oluşturabilirsiniz.
  2. Özellikle ilgili önemli noktaları ve senaryo desteğini gözden geçirin.
  3. Bu senaryoyla ilgili sık sorulan soruları gözden geçirin.

Sanal makine izinlerini ayarlama

Bulma işlemini bir SQL Server'da çalıştırdığınızda Azure Backup aşağıdakileri yapar:

  • AzureBackupWindowsWorkload uzantısını ekler.
  • Sanal makinedeki veritabanlarını bulmak için bir NT SERVICE\AzureWLBackupPluginSvc hesabı oluşturur. Bu hesap yedekleme ve geri yükleme için kullanılır ve SQL sysadmin izinleri gerektirir.
  • Vm üzerinde çalışan veritabanlarını bulur, Azure Backup NT AUTHORITY\SYSTEM hesabını kullanır. Bu hesap SQL'de genel oturum açma olmalıdır.

SQL Server VM'sini Azure Market oluşturmadıysanız veya SQL 2008 veya 2008 R2'deyseniz UserErrorSQLNoSysadminMembership hatası alabilirsiniz.

Windows 2008 R2 üzerinde çalışan SQL 2008 ve 2008 R2'de izin vermek için buraya bakın.

Diğer tüm sürümler için aşağıdaki adımlarla izinleri düzeltin:

  1. SQL Server Management Studio'da (SSMS) oturum açmak için SQL Server sysadmin izinlerine sahip bir hesap kullanın. Özel izinlere ihtiyacınız olmadığı sürece Windows kimlik doğrulamasının çalışması gerekir.

  2. SQL Server'da Güvenlik/Oturum Açma bilgileri klasörünü açın.

    Hesapları görmek için Güvenlik/Oturum Açma bilgileri klasörünü açın

  3. Oturum Açma Bilgileri klasörüne sağ tıklayın ve Yeni Oturum Aç'ı seçin. Oturum Açma - Yeni bölümünde Ara'yı seçin.

    Oturum Aç - Yeni iletişim kutusunda Ara'yı seçin

  4. Sanal makine kaydı ve SQL bulma aşamasında Windows sanal hizmet hesabı NT SERVICE\AzureWLBackupPluginSvc oluşturuldu. Hesap adını Seçecek nesne adını girin bölümünde gösterildiği gibi girin. Adı çözümlemek için Adları Denetle'yi seçin. Tamam'ı seçin.

    Bilinmeyen hizmet adını çözmek için Adları Denetle'yi seçin

  5. Sunucu Rolleri'nde sysadmin rolünün seçili olduğundan emin olun. Tamam'ı seçin. Gerekli izinler artık mevcut olmalıdır.

    Sysadmin sunucu rolünün seçili olduğundan emin olun

  6. Şimdi veritabanını Kurtarma Hizmetleri kasasıyla ilişkilendirin. Azure portalında, Korumalı Sunucular listesinde, hata durumundaki SUNUCU'ları Yeniden Bulma'ya >sağ tıklayın.

    Sunucunun uygun izinlere sahip olduğunu doğrulayın

  7. Bildirimler alanında ilerleme durumunu denetleyin. Seçili veritabanları bulunduğunda bir başarı iletisi görüntülenir.

    Dağıtım başarılı iletisi

Not

SQL Server'ınızın birden çok SQL Server örneği yüklüyse, tüm SQL örneklerine NT Service\AzureWLBackupPluginSvc hesabı için sysadmin izni eklemeniz gerekir.

SQL 2008 ve SQL 2008 R2 için SQL sysadmin izinleri verme

SQL Server Örneğine NT AUTHORITY\SYSTEM ve NT Service\AzureWLBackupPluginSvc oturum açma bilgilerini ekleyin:

  1. Nesne gezgininde SQL Server Örneğine gidin.

  2. Güvenlik -> Oturum Açma Bilgileri'ne gidin

  3. Oturum açma bilgilerine sağ tıklayın ve Yeni Oturum Aç... öğesini seçin .

    SSMS kullanarak yeni oturum açma

  4. Genel sekmesine gidin ve Oturum Açma Adı olarak NT AUTHORITY\SYSTEM girin.

    SSMS için oturum açma adı

  5. Sunucu Rolleri'ne gidin ve genel ve sysadmin rolleri'ni seçin.

    SSMS'de rolleri seçme

  6. Durum'a gidin. Veritabanı altyapısına bağlanma izni verin ve Etkin olarak oturum açın.

    SSMS'de izin verme

  7. Tamam'ı seçin.

  8. NT Service\AzureWLBackupPluginSvc oturum açma bilgilerini SQL Server örneğine eklemek için aynı adım dizisini (yukarıdaki 1-7) yineleyin. Oturum açma bilgileri zaten varsa sysadmin sunucu rolüne sahip olduğundan ve Durum'un altında Veritabanı altyapısına bağlanma izni verin ve Oturum Aç seçeneğinin Etkin olarak bulunduğundan emin olun.

  9. İzin verildikten sonra portaldaki DB'leri Yeniden Bulma: Kasa -> Yönet -> Yedekleme Altyapısı -> Azure VM'de iş yükü:

    Azure portalında DB'leri yeniden bulma

Alternatif olarak, yönetici modunda aşağıdaki PowerShell komutlarını çalıştırarak izinleri vermeyi otomatikleştirebilirsiniz. Örnek adı varsayılan olarak MSSQLSERVER olarak ayarlanır. Gerekirse betikteki örnek adı bağımsız değişkenini değiştirin.

param(
    [Parameter(Mandatory=$false)]
    [string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
    $fullInstance = $env:COMPUTERNAME   # In case it is the default SQL Server Instance
}
else
{
    $fullInstance = $env:COMPUTERNAME + "\" + $InstanceName   # In case of named instance
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}

Eşzamanlı yedeklemeleri yapılandırma

Artık SQL server kurtarma noktalarını ve günlüklerini yerel depolama ve Kurtarma Hizmetleri kasasına aynı anda kaydetmek için yedeklemeleri yapılandırabilirsiniz.

Eşzamanlı yedeklemeleri yapılandırmak için şu adımları izleyin:

  1. C:\Program Files\Azure Workload Backup\bin\plugins Konuma gidin ve dosya yoksa PluginConfigSettings.json oluşturun.

  2. Virgülle ayrılmış anahtar değeri varlıklarını anahtarlarla EnableLocalDiskBackupForBackupTypes ve LocalDiskBackupFolderPath JSON dosyasına ekleyin.

    • altında EnableLocalDiskBackupForBackupTypes, yerel olarak depolamak istediğiniz yedekleme türlerini listeleyin.

      Örneğin, Tam ve Günlük yedeklemelerini depolamak istiyorsanız, söz edin["Full", "Log"]. Yalnızca günlük yedeklemelerini depolamak için söz edin ["Log"].

    • altındaLocalDiskBackupFolderPath, yerel klasörün yolundan bahsedin. JSON dosyasındaki yoldan bahsederken çift eğik çizgi kullandığınızdan emin olun.

      Örneğin, yerel yedekleme için tercih edilen yol ise E:\LocalBackupJSON'daki yoldan olarak E:\\LocalBackupbahsedin.

      Son JSON şu şekilde görünmelidir:

      {
         "EnableLocalDiskBackupForBackupTypes": ["Log"],
         "LocalDiskBackupFolderPath": "E:\\LocalBackup",
      }
      

      JSON dosyasında önceden doldurulmuş başka girdiler varsa, yukarıdaki iki girdiyi kapatma küme ayracından hemen önce JSON dosyasının altına ekleyin.

  3. Değişikliklerin normal bir saat yerine hemen geçerli olması için TaskManager Hizmetleri'ne gidin, AzureWLbackupPluginSvc öğesine sağ tıklayın ve Durdur'u seçin.>

    Dikkat

    Bu eylem, devam eden tüm yedekleme işlerini iptal eder.

    Depolanan yedekleme dosyasının ve klasör yapısının adlandırma kuralı olacaktır {LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}.

    Örneğin, SQL örneğinin MSSQLSERVERaltında bir veritabanınız Contoso varsa, dosyalar konumunda E:\LocalBackup\MSSQLSERVER\Contosobulunur.

    Dosyanın adı, VDI device set guidyedekleme işlemi için kullanılan adıdır.

  4. altındaki LocalDiskBackupFolderPath hedef konumun için NT Service\AzureWLBackupPluginSvcokuma ve yazma izinlerine sahip olup olmadığını denetleyin.

    Not

    Yerel VM disklerindeki bir klasör için klasöre sağ tıklayın ve Güvenlik sekmesinde gerekli izinleri NT Service\AzureWLBackupPluginSvc yapılandırın.

    Ağ veya SMB paylaşımı kullanıyorsanız, paylaşıma erişim iznine sahip olan bir kullanıcı konsolundan aşağıdaki PowerShell cmdlet'lerini çalıştırarak izinleri yapılandırın:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>:  -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
    

    Örnek:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y:  -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
    

Sonraki adımlar