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'in sıfır altyapı yedekleme, uzun süreli saklama ve merkezi yönetim avantajlarıyla uyumlu hale getirmektedir. Ayrıca özellikle SQL Server için aşağıdaki avantajları sağlar:

  1. Tam, fark ve günlük gibi tüm yedekleme türlerini destekleyen iş yüküne duyarlı yedeklemeler
  2. Sık günlük yedeklemeleri ile 15 dakikalık RPO (kurtarma noktası hedefi)
  3. Bir saniyeye kadar belirli bir noktaya kurtarma
  4. Tek tek veritabanı düzeyi yedekleme ve geri yükleme

Not

Azure VM'deki SQL veritabanları için anlık görüntü tabanlı yedekleme artık önizleme aşamasındadır. Bu benzersiz teklif, anlık görüntülerin iyiliğini bir araya getirerek sunucu üzerinde daha iyi bir RTO ve düşük etkiye yol açar ve düşük RPO için sık sık günlük yedeklemelerinin avantajlarına yol açar. Tüm sorgular/erişimler için adresinden bize AskAzureBackupTeam@microsoft.comyazın.

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'yi 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 bir 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.

  • Bu VM'de veritabanlarını bulabilmek için Azure Backup 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 herhangi bir parola yönetimi gerektirmez. Azure Backup hesabı veritabanı bulma/sorgulama için kullandığındanNT AUTHORITY\SYSTEM, 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 yapılandırma korumasını tetikledikten sonra, yedekleme hizmeti koordinatörü yedekleme zamanlamalarıyla ve uzantının VM'de yerel olarak önbelleğe aldığı diğer ilke ayrıntılarıyla ayarlar.

  • Zamanlanan zamanda koordinatör 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öndererek hazırlama konumu gereksinimini ortadan kaldırır. Veriler, depolama hesaplarında Azure Backup hizmeti tarafından ş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 ç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.

Azure Market'da SQL Server VM oluşturmadıysanız veya SQL 2008 veya 2008 R2 kullanıyorsanız 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(SSMS) oturumu 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 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ı sırası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ı çözümlemek için Adları Denetle'yi seçin

  5. Sunucu Rolleri'ndesysadmin 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, Korumalı Sunucular listesinde, hata durumundaki > Yeniden Bulma DB'leri olan sunucuya 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 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ç... seçeneğini belirleyin.

    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 rollerini 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. SQL Server örneğine NT Service\AzureWLBackupPluginSvc oturum açma bilgilerini eklemek için aynı adımları (yukarıdaki 1-7) yineleyin. Oturum açma bilgisi zaten varsa sysadmin sunucu rolüne sahip olduğundan ve Durum altında Veritabanı altyapısına bağlanma izni ver ve Etkin Olarak Oturum Aç'a sahip olduğundan emin olun.

  9. İzin verildikten sonra portaldaki DB'leri yeniden bulma : Kasa -> Yedekleme Altyapısı -> Azure VM'de iş yükü:

    Azure portal'da 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 yedeklemeleri yapılandırarak SQL server kurtarma noktalarını ve günlüklerini yerel bir depolama alanına ve Kurtarma Hizmetleri kasasına aynı anda kaydedebilirsiniz.

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

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

  2. Virgülle EnableLocalDiskBackupForBackupTypes ayrılmış anahtar değeri varlıklarını anahtarlarla 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 adlandırma kuralı ve dosya için klasör yapısı olacaktır {LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}.

    Örneğin, SQL örneği 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 değeridir.

  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 için gerekli izinleri NT Service\AzureWLBackupPluginSvc yapılandırın.

    Ağ veya SMB paylaşımı kullanıyorsanız, paylaşıma erişim iznine sahip 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