SQL Server, bir birimde dosyaları yedeklemek için VSS kullandığınızda yedekleme kümesi geçmişi tablosuna yedekleme işlemini kaydeder
Bu makalede, bir birimde dosyaları yedeklemek için VSS kullandığınızda oluşan "tasarıma göre" bir davranış açıklanmaktadır.
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 951288
Belirtiler
SQL Server veritabanı dosyalarını içeren bir birimde dosyaları yedeklemek için Birim Gölge Kopyası Hizmeti (VSS) uygulamasını kullandığınızda, SQL Server geçmiş tablosunda bir yedekleme işlemi backupset
kaydeder. Bu davranış, SQL Server veritabanı dosyalarını yedeklememiş olsanız bile oluşur.
Neden
VsS uygulaması yedekleme işlemi sırasında sistemdeki SQLWriter hizmetini çağırdığı için bu davranış oluşur. VSS uygulamalarının SQL Yazıcı ile etkileşim kurması hakkında daha fazla bilgi için Uygulamaları Yedekleme - Birim Gölge Kopyası Hizmeti (VSS) ve SQL Yazıcı SQL Server gözden geçirin.
Veri kurtarma için yedekleme kümesi geçmişi tablosundaki girdileri kullanırsanız alınacak önlemler
Veri kurtarma için geçmiş tablosundaki backupset
girişleri kullanmak istiyorsanız, girişlerin gerçek veritabanı yedekleme işlemlerini temsil ettiğini doğrulamanız gerekir.
Girişin yerel veritabanı yedekleme işlemini temsil ettiğini doğrulayın (VSS anlık görüntü yedeklemesi yerine)
Bunu yapmak için aşağıdaki deyimi çalıştırın:
USE msdb
GO
SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset
Sonuçta sütuna database_backup_lsn
ve sütuna dikkat edin is_snapshot
. Yerel veritabanı yedekleme işlemini temsil eden bir girdi aşağıdaki özelliklere sahiptir:
- Sütunun
database_backup_lsn
değeri 0 değil. - Sütunun
is_snapshot
değeri 0'dır.
Yedekleme kümesinde hata olmadığını doğrulayın
Bunu yapmak için aşağıdaki deyimi çalıştırın:
WITH backupInfo AS( SELECT database_name AS [DatabaseName],
name AS [BackupName], is_damaged AS [BackupStatus],
backup_start_date AS [backupDate],
ROW_NUMBER() OVER(PARTITION BY database_name
ORDER BY backup_start_date DESC) AS BackupIDForDB
FROM msdb..backupset) SELECT DatabaseName
FROM backupinfo WHERE BackupIDForDB = 1 and BackupStatus=1
Bu sorgu herhangi bir sonuç döndürürse, bildirilen tarihten sonra iyi veritabanı yedekleriniz olmadığı anlamına gelir. En kısa sürede tam veritabanı yedeklemesi gerçekleştirmenizi ve tam veritabanı yedeklemesinin temiz olduğunu doğrulamanızı kesinlikle öneririz.
is_damaged özelliği
backupset
msdb veritabanındaki tablo, her yedekleme kümesi için bir satır içerir. is_damaged
Tablodaki backupset
özellik, yedekleme oluşturulduğunda veritabanına zarar verip vermediğini gösterir. Bu nedenle, yedekleme zarar görmüş olabilir ve geri yüklenemez.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin