Azure Backup kullanarak SQL Server veritabanı yedekleme sorunlarını giderme
Bu makalede, Azure sanal makinelerinde çalışan SQL Server veritabanları için sorun giderme bilgileri sağlanır.
Yedekleme işlemi ve sınırlamaları hakkında daha fazla bilgi için bkz . Azure VM'lerinde SQL Server yedeklemesi hakkında.
SQL Server izinleri
Bir sanal makinedeki SQL Server veritabanı için korumayı yapılandırmak için, bu sanal makineye AzureBackupWindowsWorkload uzantısını yüklemeniz gerekir. UserErrorSQLNoSysadminMembership hatasını alırsanız, SQL Server örneğinizin gerekli yedekleme izinlerine sahip olmadığı anlamına gelir. Bu hatayı düzeltmek için VM izinlerini ayarlama makalesindeki adımları izleyin.
Bulma ve yapılandırma sorunlarını giderme
Kurtarma Hizmetleri kasası oluşturma ve yapılandırma işlemi tamamlandığında veritabanlarını bulmak ve yedeklemeyi yapılandırmak iki adımlı bir işlemdir.
Yedekleme yapılandırması sırasında, SQL VM ve örnekleri VM'lerdeki Bulma DB'lerinde görünmüyorsa ve Yedeklemeyi Yapılandırılıyorsa (yukarıdaki görüntüye bakın) şunlardan emin olun:
1. Adım: VM'lerdeki DB'leri bulma
- VM bulunan VM listesinde yer almıyorsa ve başka bir kasada SQL yedeklemesi için kayıtlı değilse Bulma SQL Server yedekleme adımlarını izleyin.
2. Adım: Yedeklemeyi Yapılandırma
- SQL VM'sinin veritabanlarını korumak için kullanılan kasaya kaydedildiği kasa, Yedeklemeyi Yapılandırma adımlarını izleyin.
SQL VM'sinin yeni kasaya kaydedilmesi gerekiyorsa eski kasadan kaydı kaldırılmalıdır. Sql VM'sinin kasadan kaydının silinmesi, tüm korumalı veri kaynaklarının korunmasını gerektirir ve ardından yedeklenen verileri silebilirsiniz. Yedeklenen verileri silmek yıkıcı bir işlemdir. SQL VM'sinin kaydını silmek için tüm önlemleri alıp gözden geçirdikten sonra aynı VM'yi yeni bir kasaya kaydedin ve yedekleme işlemini yeniden deneyin.
Yedekleme ve Kurtarma sorunlarını giderme
Bazen yedekleme ve geri yükleme işlemlerinde rastgele hatalar oluşabilir veya bu işlemler takılabilir. Bunun nedeni VM'nizdeki virüsten koruma programları olabilir. En iyi uygulama olarak aşağıdaki adımları öneririz:
Aşağıdaki klasörleri virüsten koruma taramasının dışında tutun:
C:\Program Files\Azure Workload Backup
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.WorkloadBackup.AzureBackupWindowsWorkload
değerini SystemDrive'ınızın harfiyle değiştirin
C:\
.Vm içinde çalışan aşağıdaki üç işlemi virüsten koruma taramasının dışında tutun:
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
SQL ayrıca virüsten koruma programlarıyla çalışma hakkında bazı yönergeler de sunar. Ayrıntılar için bu makaleye bakın.
Birden çok SQL Server örneğine sahip bir VM'de hatalı örnek
SQL VM'sine yalnızca VM içinde çalışan tüm SQL örnekleri iyi durumda bildirilirse geri yükleyebilirsiniz. Bir veya daha fazla örnek "hatalı" ise, VM geri yükleme hedefi olarak görünmez. Bu nedenle, geri yükleme işlemi sırasında çok örnekli bir VM'nin "sunucu" açılan listesinde görünmemesi olası bir neden olabilir.
Vm'deki tüm SQL örneklerinin "Yedekleme Hazırlığını" Yedeklemeyi yapılandır'ın altında doğrulayabilirsiniz:
İyi durumdaki SQL örneklerinde bir geri yükleme tetiklemek istiyorsanız aşağıdaki adımları uygulayın:
SQL VM'de oturum açın ve adresine
C:\Program Files\Azure Workload Backup\bin
gidin.adlı
ExtensionSettingsOverrides.json
bir JSON dosyası oluşturun (henüz yoksa). Bu dosya VM'de zaten varsa, kullanmaya devam edin.JSON dosyasına aşağıdaki içeriği ekleyin ve dosyayı kaydedin:
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
Etkilenen sunucuda Azure portalından (yedekleme hazırlığının görülebileceği yer) Yeniden Bulma DB'leri işlemini tetikleyin. Sanal makine geri yükleme işlemleri için hedef olarak görünmeye başlar.
Geri yükleme işlemi tamamlandıktan sonra whitelistedInstancesForInquiry girdisini ExtensionSettingsOverrides.json dosyasından kaldırın.
Hata iletileri
Yedekleme türü desteklenmiyor
Önem Derecesi | Açıklama | Olası nedenler | Önerilen eylem |
---|---|---|---|
Uyarı | Bu veritabanının geçerli ayarları, ilişkili ilkede mevcut olan bazı yedekleme türlerini desteklemiyor. | İlkedeki tüm yedekleme türlerinin desteklenmesi için veritabanı ayarlarını değiştirin. Veya geçerli ilkeyi yalnızca desteklenen yedekleme türlerini içerecek şekilde değiştirin. Aksi takdirde, desteklenmeyen yedekleme türleri zamanlanmış yedekleme sırasında atlanır veya yedekleme işi isteğe bağlı yedekleme için başarısız olur. |
UserErrorSQLPODoesNotSupportBackupType
Hata İletisi | Olası nedenler | Önerilen eylem |
---|---|---|
Bu SQL veritabanı istenen yedekleme türünü desteklemiyor. | Veritabanı kurtarma modeli istenen yedekleme türüne izin vermediğinde gerçekleşir. Hata aşağıdaki durumlarda oluşabilir:
|
Basit kurtarma modelinde veritabanı için günlük yedeklemesi başarısız olursa şu seçeneklerden birini deneyin:
|
OperationCancelledBecauseConflictingOperationRunningUserError
Hata İletisi | Olası nedenler | Önerilen eylem |
---|---|---|
Çakışan bir işlem aynı veritabanında zaten çalıştığından işlem iptal edildi. | Bu hatayı, tetiklenen isteğe bağlı olduğunda veya zamanlanan yedekleme işi aynı veritabanında Azure Backup uzantısı tarafından tetiklenen zaten çalışan bir yedekleme işlemiyle çakıldığında alabilirsiniz. Bu hata kodunun görüntülenebileceği senaryolar şunlardır:
|
Çakışan işlem başarısız olduktan sonra işlemi yeniden başlatın. |
UserErrorFileManipulationIsNotAllowedDuringBackup
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Veritabanındaki yedekleme dosyası işleme işlemleri (ALTER DATABASE ADD FILE gibi) ve şifreleme değişiklikleri seri hale getirilmelidir. | Bu hata kodunun ortaya çıkarabileceği durumlar şunlardır:
|
Sorunu çözmek için diğer yedekleme ürününü devre dışı bırakın. |
UserErrorSQLPODoesNotExist
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
SQL veritabanı yok. | Veritabanı silindi veya yeniden adlandırıldı. | Veritabanının yanlışlıkla silinip silinmediğini veya yeniden adlandırılıp adlandırılamadığını denetleyin. Veritabanı yanlışlıkla silindiyse, yedeklemelere devam etmek için veritabanını özgün konumuna geri yükleyin. Veritabanını sildiyseniz ve gelecekteki yedeklemelere ihtiyacınız yoksa Kurtarma Hizmetleri kasasında Yedekleme Verilerini Koru veya Yedekleme Verilerini Sil ile yedeklemeyi durdur'u seçin. Daha fazla bilgi için bkz . Yedeklenen SQL Server veritabanlarını yönetme ve izleme. |
UserErrorSQLLSNValidationFailure
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Günlük zinciri bozuk. | Veritabanı veya VM, günlük zincirini kesen başka bir yedekleme çözümü aracılığıyla yedeklenmiştir. |
|
UserErrorOpeningSQLConnection
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Azure Backup, SQL örneğine bağlanamıyor. | Azure Backup, SQL Server örneğine bağlanamıyor. | Kök nedenleri daraltmak için Azure portalı hata menüsündeki ek ayrıntıları kullanın. Hatayı düzeltmek için SQL yedekleme sorunlarını giderme bölümüne bakın.
|
UserErrorParentFullBackupMissing
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Bu veri kaynağı için ilk tam yedekleme eksik. | Veritabanı için tam yedekleme eksik. Günlük ve değişiklik yedeklemeleri tam yedeklemenin üst öğeleridir, bu nedenle değişiklik veya günlük yedeklemelerini tetiklemeden önce tam yedeklemeler almayı unutmayın. | İsteğe bağlı tam yedekleme tetikleyin. |
UserErrorBackupFailedAsTransactionLogIsFull
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Veri kaynağı için işlem günlüğü dolu olduğundan yedek alınamıyor. | Veritabanı işlem günlüğü alanı dolu. | Bu sorunu çözmek için SQL Server belgelerine bakın. |
UserErrorCannotRestoreExistingDBWithoutForceOverwrite
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Hedef konumda aynı ada sahip veritabanı zaten var | Hedef geri yükleme hedefinin zaten aynı ada sahip bir veritabanı var. |
|
UserErrorRestoreFailedDatabaseCannotBeOfflined
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Veritabanı çevrimdışına alınamadığından geri yükleme başarısız oldu. | Geri yükleme yaparken hedef veritabanının çevrimdışına alınması gerekir. Azure Backup bu verileri çevrimdışına getiremez. | Kök nedenleri daraltmak için Azure portalı hata menüsündeki ek ayrıntıları kullanın. Daha fazla bilgi için bkz. SQL Server belgeleri. |
WlExtGenericIOFaultUserError
Hata İletisi | Olası nedenler | Önerilen Eylemler |
---|---|---|
İşlem sırasında bir giriş/çıkış hatası oluştu. Lütfen sanal makinedeki yaygın GÇ hatalarını denetleyin. | Hedef üzerindeki erişim izinleri veya alan kısıtlamaları. | Sanal makinede sık karşılaşılan GÇ hatalarını denetleyin. Makinede hedef sürücü/ağ paylaşımının olduğundan emin olun: Daha fazla bilgi için bkz . Dosya olarak geri yükleme. |
UserErrorCannotFindServerCertificateWithThumbprint
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Hedefte parmak izi olan sunucu sertifikası bulunamıyor. | Hedef örnekteki ana veritabanının geçerli bir şifreleme parmak izi yok. | Kaynak örnekte kullanılan geçerli sertifika parmak izini hedef örneğe aktarın. |
UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Kurtarma için kullanılan günlük yedeklemesi toplu olarak günlüğe kaydedilen değişiklikler içeriyor. SQL yönergelerine göre rastgele bir noktada durdurmak için kullanılamaz. | Veritabanı toplu günlüğe kaydedilen kurtarma modundayken, toplu günlüğe kaydedilen işlem ile bir sonraki günlük işlemi arasındaki veriler kurtarılamaz. | Kurtarma için farklı bir zaman noktası seçin. Daha fazla bilgi edinin. |
FabricSvcBackupPreferenceCheckFailedUserError
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Kullanılabilirlik Grubunun bazı düğümleri kaydedilmediğinden SQL AlwaysOn Kullanılabilirlik Grubu yedekleme tercihi uygulanamadı. | Yedeklemeleri gerçekleştirmek için gereken düğümler kaydedilmez veya ulaşılamaz. |
|
VMNotInRunningStateUserError
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
SQL Server VM kapatılır ve Azure Backup hizmeti tarafından erişilemez. | VM kapatılır. | SQL Server örneğinin çalıştığından emin olun. |
GuestAgentStatusUnavailableUserError
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Azure Backup hizmeti yedekleme yapmak için Azure VM konuk aracısını kullanır, ancak hedef sunucuda konuk aracısı kullanılamaz. | Konuk aracı etkin değil veya iyi durumda değil. | VM konuk aracısını el ile yükleyin. |
AutoProtectionCancelledOrNotValid
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Otomatik koruma Amacı kaldırıldı veya artık geçerli değil. | Bir SQL Server örneğinde otomatik korumayı etkinleştirdiğinizde, Yedekleme işlerini yapılandırma bu örnekteki tüm veritabanları için çalışır. İşler çalışırken otomatik korumayı devre dışı bırakırsanız Devam Eden işler bu hata koduyla iptal edilir. | Kalan tüm veritabanlarının korunmasına yardımcı olmak için otomatik korumayı bir kez daha etkinleştirin. |
CloudDosAbsoluteLimitReached
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
24 saat içinde izin verilen işlem sayısı sınırına ulaştığınız için işlem engellenir. | 24 saatlik bir işlem için izin verilen maksimum sınıra ulaştığınızda bu hata görüntülenir. Örneğin: Günlük tetiklenebilen yedekleme işlerini yapılandırma sınırına ulaştıysanız ve yeni bir öğede yedeklemeyi yapılandırmaya çalışırsanız bu hatayı görürsünüz. |
Genellikle 24 saat sonra işlemi yeniden denemek bu sorunu çözer. Ancak sorun devam ederse yardım için Microsoft desteğine başvurabilirsiniz. |
CloudDosAbsoluteLimitReachedWithRetry
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
Kasa, 24 saat içinde izin verilen bu tür işlemler için en yüksek sınıra ulaştığından işlem engellenir. | 24 saatlik bir işlem için izin verilen maksimum sınıra ulaştığınızda bu hata görüntülenir. Bu hata genellikle ilkeyi değiştirme veya otomatik koruma gibi ölçekli işlemler olduğunda görünür. CloudDosAbsoluteLimitReached örneğinden farklı olarak, bu durumu çözmek için yapabileceğiniz pek bir şey yoktur. Aslında, Azure Backup hizmeti söz konusu tüm öğeler için işlemleri dahili olarak yeniden dener. Örneğin: bir ilkeyle korunan çok sayıda veri kaynağınız varsa ve bu ilkeyi değiştirmeye çalışırsanız, korumalı öğelerin her biri için koruma işlerini yapılandırmayı tetikler ve bazen bu tür işlemler için günlük izin verilen üst sınıra çıkabilir. |
Azure Backup hizmeti 24 saat sonra bu işlemi otomatik olarak yeniden dener. |
WorkloadExtensionNotReachable
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
AzureBackup iş yükü uzantısı işlemi başarısız oldu. | VM kapatılır veya sanal makine İnternet bağlantısı sorunları nedeniyle Azure Backup hizmetiyle iletişim kuramıyor. |
UserErrorVMInternetConnectivityIssue
Hata İletisi | Olası nedenler | Önerilen eylemler |
---|---|---|
sanal makine, İnternet bağlantısı sorunları nedeniyle Azure Backup hizmetiyle iletişim kuramıyor. | Neden 1: VM'nin Azure Backup Hizmeti, Azure Depolama veya Microsoft Entra hizmetlerine giden bağlantıya ihtiyacı vardır. Neden 2: Grup İlkesi Nesnesi (GPO) ilkesi TLS iletişimi için gerekli şifreleme paketlerini kısıtlar. |
Neden 1 için öneri: Neden 2 için öneri: Geçici bir çözüm olarak VM'yi GPO'dan kaldırın veya GPO ilkesini devre dışı bırakın/kaldırın. Alternatif olarak, GPO'yı gerekli şifreleme paketlerine izin verdiği şekilde değiştirin. |
UserErrorOperationNotAllowedDatabaseMirroringEnabled
Hata İletisi | Olası nedeni | Önerilen eylem |
---|---|---|
Veritabanı yansıtması oturumuna katılan veritabanlarının yedeklenmesi, AzureWorkloadBackup tarafından desteklenmez. | Sql veritabanında yansıtma işlemini etkinleştirdiğinizde bu hata görüntülenir. Azure Backup şu anda bu özelliğin etkinleştirildiği veritabanlarını desteklememektedir. | İşlemin başarıyla tamamlanması için veritabanının veritabanı yansıtma oturumunu kaldırabilirsiniz. Alternatif olarak, veritabanı zaten korumalıysa veritabanında Yedeklemeyi durdur işlemini yapın. |
UserErrorWindowsWLExtFailedToStartPluginService
Hata İletisi | Olası nedeni | Öneri |
---|---|---|
İşlem hatayla UserErrorWindowsWLExtFailedToStartPluginService başarısız oluyor. |
Azure Backup iş yükü uzantısı, hizmet hesabının yanlış yapılandırılması nedeniyle Azure Sanal Makinesinde iş yükü yedekleme eklentisi hizmetini başlatamıyor. | 1. Adım: NT Service\AzureWLBackupPluginSvc kullanıcılarının okuma izinlerine sahip olup olmadığını doğrulayın: - C:\windows\Microsoft.NET \assembly\GAC_32 - C:\windows\Microsoft.NET \assembly\GAC_64 - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config. İzinler eksikse, bu dizinlere Okuma izinleri atayın. 2. Adım: NT Service\AzureWLBackupPluginSvc'nin Yerel Güvenlik İlkesi>Kullanıcı Hakkı Ataması>Geçiş denetimini atla'ya giderek Geçiş denetimini atlama haklarına sahip olup olmadığını doğrulayın. Varsayılan olarak herkesin seçilmesi gerekir. Herkes ve NT Service\AzureWLBackupPluginSvc eksikse, NT Service\AzureWLBackupPluginSvc kullanıcısını ekleyin ve ardından hizmeti yeniden başlatmayı veya bir veri kaynağı için yedekleme veya geri yükleme işlemini tetiklemeye çalışın. |
Yeniden kayıt hataları
Yeniden kaydetme işlemini tetiklemeden önce aşağıdaki belirtilerden birini veya daha fazlasını denetleyin:
Vm'de tüm işlemler (yedekleme, geri yükleme ve yapılandırma gibi) şu hata kodlarından biriyle başarısız oluyor: WorkloadExtensionNotReachable, UserErrorWorkloadExtensionNotInstalled, WorkloadExtensionNotPresent, WorkloadExtensionDidntDequeueMsg.
Yedekleme öğesinin Yedekleme Durumu alanında Ulaşılamıyor gösteriliyorsa, aynı duruma neden olabilecek diğer tüm nedenleri eleyin:
- VM'de yedeklemeyle ilgili işlemleri gerçekleştirme izninin olmaması.
- Vm kapatılır, bu nedenle yedeklemeler gerçekleştirilemez.
- Ağ sorunları
Always On kullanılabilirlik grubu söz konusu olduğunda, yedekleme tercihini değiştirdikten veya yük devretme sonrasında yedeklemeler başarısız oldu.
Bu belirtiler aşağıdaki nedenlerden biri veya birkaçı nedeniyle ortaya çıkabilir:
- Bir uzantı portaldan silindi veya kaldırıldı.
- Vm'de Program Kaldır veya Değiştir altındaki Denetim Masası bir uzantı kaldırıldı.
- VM yerinde disk geri yükleme yoluyla zamanda geri yüklendi.
- VM uzun bir süre için kapatıldı, bu nedenle üzerindeki uzantı yapılandırmasının süresi doldu.
- VM silindi ve silinen VM ile aynı ada ve aynı kaynak grubunda başka bir VM oluşturuldu.
- Kullanılabilirlik grubu düğümlerinden biri tam yedekleme yapılandırmasını almadı. Kullanılabilirlik grubu kasaya kaydedildiğinde veya yeni bir düğüm eklendiğinde bu durum oluşabilir.
Önceki senaryolarda, VM'de yeniden kaydetme işlemini tetiklemenizi öneririz. Bu görevi PowerShell'de gerçekleştirme yönergeleri için buraya bakın.
Dosyalar için boyut sınırı
Dosyaların toplam dize boyutu yalnızca dosya sayısına değil adlarına ve yollarına da bağlıdır. Her veritabanı dosyası için mantıksal dosya adını ve fiziksel yolu alın. Bu SQL sorgusunu kullanabilirsiniz:
SELECT mf.name AS LogicalName, Physical_Name AS Location FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'
Şimdi bunları aşağıdaki biçimde düzenleyin:
[{"path":"<Location>","logicalName":"<LogicalName>","isDir":false},{"path":"<Location>","logicalName":"<LogicalName>","isDir":false}]
Bir örnek aşağıda verilmiştir:
[{"path":"F:\\Data\\TestDB12.mdf","logicalName":"TestDB12","isDir":false},{"path":"F:\\Log\\TestDB12_log.ldf","logicalName":"TestDB12_log","isDir":false}]
İçeriğin dize boyutu 20.000 baytı aşarsa, veritabanı dosyaları farklı şekilde depolanır. Kurtarma sırasında, geri yükleme için hedef dosya yolunu ayarlayamazsınız. Dosyalar SQL Server tarafından sağlanan varsayılan SQL yoluna geri yüklenir.
Varsayılan hedef geri yükleme dosya yolunu geçersiz kılma
Veritabanı dosyasının hedef geri yükleme yoluna eşlemesini içeren bir JSON dosyası yerleştirerek geri yükleme işlemi sırasında hedef geri yükleme dosyası yolunu geçersiz kılabilirsiniz. Bir database_name.json
dosya oluşturun ve konumuna yerleştirin C:\Program Files\Azure Workload Backup\bin\plugins\SQL*
.
Dosyanın içeriği şu biçimde olmalıdır:
[
{
"Path": "<Restore_Path>",
"LogicalName": "<LogicalName>",
"IsDir": "false"
},
{
"Path": "<Restore_Path>",
"LogicalName": "LogicalName",
"IsDir": "false"
},
]
Bir örnek aşağıda verilmiştir:
[
{
"Path": "F:\\Data\\testdb2_1546408741449456.mdf",
"LogicalName": "testdb7",
"IsDir": "false"
},
{
"Path": "F:\\Log\\testdb2_log_1546408741449456.ldf",
"LogicalName": "testdb7_log",
"IsDir": "false"
},
]
Önceki içerikte, aşağıdaki SQL sorgusunu kullanarak veritabanı dosyasının mantıksal adını alabilirsiniz:
SELECT mf.name AS LogicalName FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'
Geri yükleme işlemini tetiklemeden önce bu dosya yerleştirilmelidir.
Sonraki adımlar
SQL VM'leri için Azure Backup hakkında daha fazla bilgi için.