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\AzureWLBackupPluginSvc
oluşturur. Bu hesap yedekleme ve geri yükleme için kullanılır ve SQL sysadmin izinleri gerektirir. HesapNT SERVICE\AzureWLBackupPluginSvc
bir Sanal Hizmet Hesabı olduğundan parola yönetimi gerektirmez. Azure Backup, veritabanı bulma/sorgulama için hesabı kullanırNT 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.
Başlamadan önce
Başlamadan önce aşağıdaki gereksinimleri doğrulayın:
- Azure'da çalışan bir SQL Server örneğine sahip olduğunuzdan emin olun. Markette hızla bir SQL Server örneği oluşturabilirsiniz.
- Özellikle ilgili önemli noktaları ve senaryo desteğini gözden geçirin.
- 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:
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.
SQL Server'da Güvenlik/Oturum Açma bilgileri klasörünü açın.
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.
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.
Sunucu Rolleri'nde sysadmin rolünün seçili olduğundan emin olun. Tamam'ı seçin. Gerekli izinler artık mevcut olmalıdır.
Ş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.
Bildirimler alanında ilerleme durumunu denetleyin. Seçili veritabanları bulunduğunda bir başarı iletisi görüntülenir.
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:
Nesne gezgininde SQL Server Örneğine gidin.
Güvenlik -> Oturum Açma Bilgileri'ne gidin
Oturum açma bilgilerine sağ tıklayın ve Yeni Oturum Aç... öğesini seçin .
Genel sekmesine gidin ve Oturum Açma Adı olarak NT AUTHORITY\SYSTEM girin.
Sunucu Rolleri'ne gidin ve genel ve sysadmin rolleri'ni seçin.
Durum'a gidin. Veritabanı altyapısına bağlanma izni verin ve Etkin olarak oturum açın.
Tamam'ı seçin.
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.
İzin verildikten sonra portaldaki DB'leri Yeniden Bulma: Kasa -> Yönet -> Yedekleme Altyapısı -> Azure VM'de iş yükü:
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:
C:\Program Files\Azure Workload Backup\bin\plugins
Konuma gidin ve dosya yoksa PluginConfigSettings.json oluşturun.Virgülle ayrılmış anahtar değeri varlıklarını anahtarlarla
EnableLocalDiskBackupForBackupTypes
veLocalDiskBackupFolderPath
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ında
LocalDiskBackupFolderPath
, 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:\LocalBackup
JSON'daki yoldan olarakE:\\LocalBackup
bahsedin.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.
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
MSSQLSERVER
altında bir veritabanınızContoso
varsa, dosyalar konumundaE:\LocalBackup\MSSQLSERVER\Contoso
bulunur.Dosyanın adı,
VDI device set guid
yedekleme işlemi için kullanılan adıdır.altındaki
LocalDiskBackupFolderPath
hedef konumun içinNT Service\AzureWLBackupPluginSvc
okuma 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
- SQL Server veritabanlarını yedekleme hakkında bilgi edinin.
- Yedeklenen SQL Server veritabanlarını geri yükleme hakkında bilgi edinin.
- Yedeklenen SQL Server veritabanlarını yönetme hakkında bilgi edinin.