backupset (Transact-SQL)

Gilt für: SQL Server Azure SQL verwaltete Instanz Analytics Platform System (PDW)

Enthält eine Zeile für jeden Sicherungssatz. Ein Sicherungssatz enthält die Sicherung aus einem einzelnen, erfolgreichen Sicherungsvorgang. Die Anweisungen RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY und RESTORE VERIFYONLY verarbeiten einen einzelnen Sicherungssatz innerhalb des Mediensatzes auf den angegebenen Sicherungsmedien.

Diese Tabelle wird in der msdb Datenbank gespeichert.

Spaltenname Datentyp Beschreibung
backup_set_id int Eindeutige Sicherungssatz-ID, die den Sicherungssatz identifiziert. Identität, Primärschlüssel.
backup_set_uuid uniqueidentifier Eindeutige Sicherungssatz-ID, die den Sicherungssatz identifiziert.
media_set_id int Eindeutige Mediensatz-ID, die den Mediensatz identifiziert, der den Sicherungssatz enthält. Verweist auf backupmediaset(media_set_id).
first_family_number tinyint Familiennummer des Mediums, bei dem der Sicherungssatz beginnt. Kann den Wert NULL haben.
first_media_number smallint Mediennummer des Mediums, bei dem der Sicherungssatz beginnt. Kann den Wert NULL haben.
last_family_number tinyint Familiennummer des Mediums, bei dem der Sicherungssatz endet. Kann den Wert NULL haben.
last_media_number smallint Mediennummer des Mediums, bei dem der Sicherungssatz endet. Kann den Wert NULL haben.
catalog_family_number tinyint Familiennummer des Mediums, das den Beginn des Sicherungssatzverzeichnisses enthält. Kann den Wert NULL haben.
catalog_media_number smallint Mediennummer des Mediums, das den Beginn des Sicherungssatzverzeichnisses enthält. Kann den Wert NULL haben.
position int Position des Sicherungssatzes, die in dem Wiederherstellungsvorgang zum Suchen nach dem geeigneten Sicherungssatz und den geeigneten Dateien verwendet wird. Kann den Wert NULL haben. Weitere Informationen finden Sie unter BACKUP (Transact-SQL) im Abschnitt „FILE“.
expiration_date datetime Datum und Uhrzeit des Zeitpunkts, zu dem die Gültigkeit des Sicherungssatzes endet. Kann den Wert NULL haben.
software_vendor_id int ID des Softwareanbieters, der den Sicherungsmedienheader schreibt. Kann den Wert NULL haben.
name nvarchar(128) Name des Sicherungssatzes. Kann den Wert NULL haben.
Beschreibung nvarchar(255) Beschreibung des Sicherungssatzes. Kann den Wert NULL haben.
user_name nvarchar(128) Name des Benutzers, der den Sicherungsvorgang durchführt. Kann den Wert NULL haben.
software_major_version tinyint Hauptversionsnummer von Microsoft SQL Server. Kann den Wert NULL haben.
software_minor_version tinyint Nebenversionsnummer von SQL Server. Kann den Wert NULL haben.
software_build_version smallint Buildnummer von SQL Server. Kann den Wert NULL haben.
time_zone smallint Unterschied zwischen der lokalen Zeitzone (in der der Sicherungsvorgang stattfindet) und der koordinierten Weltzeit (UTC) in 15-Minuten-Intervallen unter Verwendung der Zeitzoneninformationen zu dem Zeitpunkt, an dem der Sicherungsvorgang gestartet wurde. Die Werte können zwischen -48 und +48 (einschließlich) liegen. Durch den Wert 127 wird angegeben, dass die Abweichung nicht bekannt ist. So entspricht z. B. der Wert -20 der Eastern Standard Time (EST) bzw. einer Zeit, die fünf Stunden nach der UTC liegt. Kann den Wert NULL haben.
mtf_minor_version tinyint Nebenversionsnummer von Microsoft Tape Format. Kann den Wert NULL haben.
first_lsn numeric(25,0) Protokollfolgenummer des ersten oder ältesten Protokolldatensatzes im Sicherungssatz. Kann den Wert NULL haben.
last_lsn numeric(25,0) Protokollfolgenummer des nächsten Protokolldatensatzes nach dem Sicherungssatz. Kann den Wert NULL haben.
checkpoint_lsn numeric(25,0) Protokollfolgenummer des Protokolldatensatzes, bei dem die Wiederholung beginnen muss. Kann den Wert NULL haben.
database_backup_lsn numeric(25,0) Protokollsequenznummer der neuesten vollständigen Datenbanksicherung. Kann den Wert NULL haben.

database_backup_lsn ist der „Startprüfpunkt“, der beim Starten der Sicherung ausgelöst wird. Wenn die Sicherung erstellt wird, während sich die Datenbank im Leerlauf befindet und keine Replikation konfiguriert ist, stimmt diese LSN mit dem Wert von first_lsn überein.
database_creation_date datetime Datum und Uhrzeit des ursprünglichen Erstellens der Datenbank. Kann den Wert NULL haben.
backup_start_date datetime Datum und Uhrzeit des Beginns des Sicherungsvorgangs. Kann den Wert NULL haben.
backup_finish_date datetime Datum und Uhrzeit des Endes des Sicherungsvorgangs. Kann den Wert NULL haben.
type char(1) Art der Sicherung. Mögliche Werte sind:

D = Datenbank
I = Datenbank differenziell
L = Protokoll
F = Datei oder Dateigruppe
G = Datei differenziell
P = Teilweise
Q = Teilweise differenziell

Kann den Wert NULL haben.
sort_order smallint Sortierreihenfolge des Servers, der den Sicherungsvorgang durchführt. Kann den Wert NULL haben. Weitere Informationen zu Sortierreihenfolgen und Sortierungen finden Sie unter Sortierung und Unicode-Unterstützung.
Codepage smallint Codepage des Servers, der den Sicherungsvorgang durchführt. Kann den Wert NULL haben. Weitere Informationen zu Codepages finden Sie unter Sortierung und Unicode-Unterstützung.
compatibility_level tinyint Einstellung des Kompatibilitätsgrades für die Datenbank. Mögliche Werte sind:

90 = SQL Server 2005 (9.x)
100 = SQL Server 2008 (10.0.x)
110 = SQL Server 2012 (11.x)
120 = SQL Server 2014 (12.x)
130 = SQL Server 2016 (13.x)
140 = SQL Server 2017 (14.x)
150 = SQL Server 2019 (15.x)
160 = SQL Server 2022 (16.x)

Kann den Wert NULL haben.

Weitere Informationen zu den Kompatibilitätsgraden finden Sie unter ALTER DATABASE-Kompatibilitätsgrad (Transact-SQL).
database_version int Versionsnummer der Datenbank. Kann den Wert NULL haben.
backup_size numeric(20,0) Größe des Sicherungssatzes in Bytes. Kann den Wert NULL haben. Für VSS-Sicherungen ist „backup_size“ ein Schätzwert.
database_name nvarchar(128) Name der an dem Sicherungsvorgang beteiligten Datenbank. Kann den Wert NULL haben.
server_name nvarchar(128) Name des Servers, der den SQL Server-Sicherungsvorgang ausführt. Kann den Wert NULL haben.
machine_name nvarchar(128) Name des Computers, auf dem SQL Serverausgeführt wird. Kann den Wert NULL haben.
flags int In SQL Server wurde die Spalte flags als veraltet markiert und wird durch die folgenden bit-Spalten ersetzt:

has_bulk_logged_data
is_snapshot
is_readonly
is_single_user
has_backup_checksums
is_damaged
begins_log_chain
has_incomplete_metadata
is_force_offline
is_copy_only

Kann den Wert NULL haben.

In Sicherungssätzen früherer Versionen von SQL Server haben die Flagbits folgende Bedeutung:
1 = Die Sicherung enthält minimal protokollierte Daten.
2 = WITH SNAPSHOT wurde verwendet.
4 = Die Datenbank war zum Zeitpunkt der Sicherung schreibgeschützt.
8 = Die Datenbank befand sich zum Zeitpunkt der Sicherung im Einzelbenutzermodus.
unicode_locale int Unicode-Gebietsschema. Kann den Wert NULL haben.
unicode_compare_style int Unicode-Vergleichsstil. Kann den Wert NULL haben.
collation_name nvarchar(128) Sortierungsname. Kann den Wert NULL haben.
Is_password_protected bit Gibt an, ob der Sicherungssatz

kennwortgeschützt ist:

0 = Nicht geschützt

1 = Geschützt
recovery_model nvarchar(60) Wiederherstellungsmodell für die Datenbank:

FULL

BULK-LOGGED

SIMPLE
has_bulk_logged_data bit 1 = Die Sicherung enthält massenprotokollierte Daten.
is_snapshot bit 1 = Die Sicherung wurde mithilfe der Option SNAPSHOT erstellt.
is_readonly bit 1 = Die Datenbank war zum Zeitpunkt der Sicherung schreibgeschützt.
is_single_user bit 1 = Die Datenbank befand sich zum Zeitpunkt der Sicherung im Einzelbenutzermodus.
has_backup_checksums bit 1 = Die Sicherung enthält Sicherungsprüfsummen.
is_damaged bit 1 = Beim Erstellen dieser Sicherung wurde eine Beschädigung der Datenbank festgestellt. Der Sicherungsvorgang sollte jedoch trotz der Fehler fortgesetzt werden.
begins_log_chain bit 1 = Die erste in einer kontinuierlichen Kette von Protokollsicherungen. Eine Protokollkette beginnt mit der ersten Protokollsicherung, die erstellt wurde, nachdem die Datenbank angelegt wurde oder nachdem ein Wechsel vom einfachen zum vollständigen oder massenprotokollierten Wiederherstellungsmodell erfolgt ist.
has_incomplete_metadata bit 1 = Eine Sicherung des Protokollfragments mit unvollständigen Metadaten. Weitere Informationen finden Sie unter Protokollfragmentsicherungen (SQL Server).
is_force_offline bit 1 = Beim Erstellen der Sicherung wurde die Datenbank mithilfe der Option NORECOVERY offline geschaltet.
is_copy_only bit 1 = Eine Kopiesicherung. Weitere Informationen finden Sie unter Kopiesicherungen (SQL Server).
first_recovery_fork_guid uniqueidentifier ID des ersten Wiederherstellungs-Verzweigungspunkts. Dieser Wert entspricht dem FirstRecoveryForkID-Wert von RESTORE HEADERONLY.

Bei Datensicherungen ist first_recovery_fork_guid mit last_recovery_fork_guid identisch.
last_recovery_fork_guid uniqueidentifier ID des letzten Wiederherstellungs-Verzweigungspunkts. Dieser Wert entspricht dem RecoveryForkID-Wert von RESTORE HEADERONLY.

Bei Datensicherungen ist first_recovery_fork_guid mit last_recovery_fork_guid identisch.
fork_point_lsn numeric(25,0) Wenn first_recovery_fork_guid ungleich last_recovery_fork_guid ist, entspricht dieser Wert der Protokollfolgenummer des Forkpunkts. Andernfalls ist der Wert NULL.
database_guid uniqueidentifier Eindeutige ID für die Datenbank. Dieser Wert entspricht dem BindingID-Wert von RESTORE HEADERONLY. Wenn die Datenbank wiederhergestellt wird, wird ein neuer Wert zugewiesen.
family_guid uniqueidentifier Eindeutige ID der ursprünglichen Datenbank zum Zeitpunkt der Erstellung. Dieser Wert bleibt unverändert, wenn die Datenbank wiederhergestellt wird, und zwar auch dann, wenn sie mit einem anderen Namen wiederhergestellt wird.
differential_base_lsn numeric(25,0) Basis-LSN für differenzielle Sicherungen. Bei einer differenziellen Sicherung auf der Basis einer einzelnen Sicherung werden Änderungen mit LSNs, die größer oder gleich dem Wert von differential_base_lsn sind, in die differenzielle Sicherung eingeschlossen.

Bei einer differenziellen Sicherung auf der Basis mehrerer Sicherungen ist der Wert NULL, und die Basis-LSN muss auf Dateiebene bestimmt werden (siehe backupfile (Transact-SQL)).

Bei nicht differenziellen Sicherungstypen ist der Wert immer NULL.
differential_base_guid uniqueidentifier Bei einer differenziellen Sicherung auf der Basis einer Sicherung entspricht dieser Wert dem eindeutigen Bezeichner der differenziellen Basis.

Bei einer differenziellen Sicherung auf der Basis mehrerer Sicherungen ist der Wert NULL, und die Basis für die differenzielle Sicherung muss auf Dateiebene bestimmt werden.

Bei nicht differenziellen Sicherungstypen ist der Wert NULL.
compressed_backup_size Numeric(20,0) Gesamtbytezahl der auf einem Datenträger gespeicherten Sicherung.

Zur Berechnung der Komprimierungsrate verwenden Sie compressed_backup_size und backup_size.

Während eines msdb Upgrades wird dieser Wert auf NULL festgelegt. Dies gibt eine nicht komprimierte Sicherung an.
key_algorithm nvarchar(32) Der Verschlüsselungsalgorithmus, der zum Verschlüsseln der Sicherung verwendet wird. Der NO_Encryption-Wert gab an, dass die Sicherung nicht verschlüsselt wurde.
encryptor_thumbprint varbinary(20) Der Fingerabdruck der Verschlüsselung, der verwendet werden kann, um das Zertifikat oder den asymmetrischen Schlüssel in der Datenbank zu ermitteln. Wenn die Sicherung nicht verschlüsselt wurde, ist dieser Wert NULL.
encryptor_type nvarchar(32) Verwendeter Verschlüsselungstyp: Zertifikat oder asymmetrischer Schlüssel. Wenn die Sicherung nicht verschlüsselt wurde, ist dieser Wert NULL.
last_valid_restore_time datetime Der Zeitstempel des letzten Transaktionsprotokolldatensatzes, der in der Transaktionsprotokollsicherung enthalten ist, für Protokolldatensätze, die einen Zeitstempel enthalten. Unterstützt das Erstellen von Wiederherstellungsplänen, indem Sie die letzte Protokollsicherung finden, die wiederhergestellt werden soll, wenn die Klausel in der STOPAT RESTORE LOG Anweisung angegeben ist. Diese Protokollsicherung hat die last_valid_restore_time streng größer als die in der STOPAT Klausel angegebene Zeit. Wurde in SQL Server 2022 (16.x) eingeführt.
compression_algorithm nvarchar(32) Der Komprimierungsalgorithmus, der beim Erstellen der SQL Server-Sicherung verwendet wurde. Wurde in SQL Server 2022 (16.x) eingeführt. Der Standardwert ist MS_XPRESS. Weitere Informationen finden Sie unter BACKUP COMPRESSION und Integrated Acceleration and Offloading.

Hinweise

  • RESTORE VERIFYONLY FROM <backup_device> WITH LOADHISTORY füllt die Spalte der backupmediaset Tabelle mit den entsprechenden Werten aus der Mediensatzüberschrift auf.
  • Führen Sie die gespeicherte Prozedur sp_delete_backuphistory aus, um die Anzahl von Zeilen in dieser Tabelle und anderen Sicherungs- und Verlaufstabellen zu verringern.
  • Informationen zu SQL-verwaltete Instanz finden Sie in der Sicherungstransparenz und zum Überwachen von Sicherungen.

Beispiele

Abfragen des Sicherungsverlaufs

Die folgende Abfrage gibt Informationen zu erfolgreichen Sicherungen der letzten zwei Monate zurück.

SELECT bs.database_name,
    backuptype = CASE 
        WHEN bs.type = 'D' AND bs.is_copy_only = 0 THEN 'Full Database'
        WHEN bs.type = 'D' AND bs.is_copy_only = 1 THEN 'Full Copy-Only Database'
        WHEN bs.type = 'I' THEN 'Differential database backup'
        WHEN bs.type = 'L' THEN 'Transaction Log'
        WHEN bs.type = 'F' THEN 'File or filegroup'
        WHEN bs.type = 'G' THEN 'Differential file'
        WHEN bs.type = 'P' THEN 'Partial'
        WHEN bs.type = 'Q' THEN 'Differential partial'
        END + ' Backup',
    CASE bf.device_type
        WHEN 2 THEN 'Disk'
        WHEN 5 THEN 'Tape'
        WHEN 7 THEN 'Virtual device'
        WHEN 9 THEN 'Azure Storage'
        WHEN 105 THEN 'A permanent backup device'
        ELSE 'Other Device'
        END AS DeviceType,
    bms.software_name AS backup_software,
    bs.recovery_model,
    bs.compatibility_level,
    BackupStartDate = bs.Backup_Start_Date,
    BackupFinishDate = bs.Backup_Finish_Date,
    LatestBackupLocation = bf.physical_device_name,
    backup_size_mb = CONVERT(DECIMAL(10, 2), bs.backup_size / 1024. / 1024.),
    compressed_backup_size_mb = CONVERT(DECIMAL(10, 2), bs.compressed_backup_size / 1024. / 1024.),
    database_backup_lsn, -- For tlog and differential backups, this is the checkpoint_lsn of the FULL backup it is based on.
    checkpoint_lsn,
    begins_log_chain,
    bms.is_password_protected
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediafamily bf
    ON bs.[media_set_id] = bf.[media_set_id]
INNER JOIN msdb.dbo.backupmediaset bms
    ON bs.[media_set_id] = bms.[media_set_id]
WHERE bs.backup_start_date > DATEADD(MONTH, - 2, sysdatetime()) --only look at last two months
ORDER BY bs.database_name ASC,
    bs.Backup_Start_Date DESC;

Nächste Schritte