RESTORE-Anweisungen – HEADERYONLY (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Gibt ein Resultset mit allen Sicherungsheaderinformationen für alle Sicherungssätze auf einem bestimmten Sicherungsmedium in SQL Server zurück.

Hinweis

Eine Beschreibung der Argumente finden Sie unter RESTORE-Argumente (Transact-SQL).

Transact-SQL-Syntaxkonventionen

Syntax

RESTORE HEADERONLY
FROM <backup_device>
[ WITH
    {
    -- Backup set options
    FILE = { backup_set_file_number | @backup_set_file_number }
    | PASSWORD = { password | @password_variable }
    | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

    -- Media set options
    | MEDIANAME = { media_name | @media_name_variable }
    | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

    -- Error management options
    | { CHECKSUM | NO_CHECKSUM }
    | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

    -- Tape options
    | { REWIND | NOREWIND }
    | { UNLOAD | NOUNLOAD }
    } [ , ...n ]
]
[ ; ]

<backup_device> ::=
{
   { logical_backup_device_name |
     @logical_backup_device_name_var }
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |
       @physical_backup_device_name_var }
}

Hinweis

URL ist das Format, das verwendet wird, um den Speicherort und den Dateinamen für Azure Blob Storage anzugeben. Es wird ab SQL Server 2012 (11.x) SP1 mit dem kumulativen Update 2 (CU2) unterstützt. Obwohl es sich bei Azure Storage um einen Dienst handelt, ist die Implementierung mit einem Datenträger und Band vergleichbar, um für alle drei Geräte eine konsistente und nahtlose Wiederherstellung zu ermöglichen.

Argumente

Beschreibungen der RESTORE HEADERONLY-Argumente finden Sie unter RESTORE-Argumente (Transact-SQL).

Resultsets

Zu jeder Sicherung auf dem jeweiligen Medium sendet der Server eine Zeile mit Headerinformationen, die aus den folgenden Spalten besteht:

Spaltenname Datentyp Beschreibung für SQL Server-Sicherungssätze
BackupName 1 nvarchar(128) Name des Sicherungssatzes.
BackupDescription nvarchar(255) Beschreibung des Sicherungssatzes. Kann den Wert NULL haben.
BackupType smallint Sicherungstyp:

1 = Datenbank
2 = Transaktionsprotokoll
4 = Datei
5 = Datenbank differenziell
6 = Datei differenziell
7 = Teilweise
8 = Teilweise differenziell
ExpirationDate datetime Ablaufdatum für den Sicherungssatz.
Compressed bit Ob der Sicherungssatz mit der softwarebasierten Kompression komprimiert wird.

0 = Nein
1 = Ja
Position smallint Position des Sicherungssatzes auf dem Volume (Verwendung mit der Option FILE =).
DeviceType tinyint Zahl, die dem für den Sicherungsvorgang verwendeten Medientyp entspricht.

Datenträger:

– 2 = Logisch
– 102 = Physisch

Band:

– 5 = Logisch
– 105 = Physisch

Virtuelles Medium:

– 7 = Logisch
– 107 = Physisch

URL:

– 9 = Logisch
– 109 = Physisch

Die Namen logischer Geräte und die Gerätenummern befinden sich in sys.backup_devices. Weitere Informationen finden Sie unter sys.backup_devices.
UserName nvarchar(128) Name des Benutzers, der den Sicherungsvorgang ausgeführt hat.
ServerName nvarchar(128) Name des Servers, der den Sicherungssatz geschrieben hat.
DatabaseName nvarchar(128) Name der Datenbank, die gesichert wurde.
DatabaseVersion int Version der Datenbank, von der die Sicherung erstellt wurde.
DatabaseCreationDate datetime Datum und Uhrzeit der Erstellung der Datenbank.
BackupSize numeric(20,0) Größe der Sicherung in Bytes.
FirstLSN numeric(25,0) Protokollfolgenummer des ersten Protokolldatensatzes im Sicherungssatz.
LastLSN numeric(25,0) Protokollfolgenummer des nächsten Protokolldatensatzes nach dem Sicherungssatz.
CheckpointLSN numeric(25,0) Protokollsequenznummer des letzten Prüfpunkts zum Zeitpunkt der Erstellung der Sicherung.
DatabaseBackupLSN numeric(25,0) Protokollsequenznummer der neuesten vollständigen Datenbanksicherung.

DatabaseBackupLSN ist der „Startprüfpunkt“, der beim Starten der Sicherung ausgelöst wird. Dieser LSN stimmt mit dem Wert für FirstLSN überein, wenn die Sicherung erstellt wird, während sich die Datenbank im Leerlauf befindet und keine Replikation konfiguriert ist.
BackupStartDate datetime Datum und Uhrzeit des Beginns des Sicherungsvorgangs.
BackupFinishDate datetime Datum und Uhrzeit des Endes des Sicherungsvorgangs.
SortOrder smallint Sortierreihenfolge für den Server. Diese Spalte gilt nur für Datenbanksicherungen. Dieser Parameter wird aus Gründen der Abwärtskompatibilität bereitgestellt.
CodePage smallint Servercodepage; das ist der vom Server verwendete Zeichensatz.
UnicodeLocaleId int Serverseitige Konfigurationsoptionen für die Unicode-Gebietsschema-ID, die für die Sortierung von Unicode-Zeichendaten verwendet wird. Dieser Parameter wird aus Gründen der Abwärtskompatibilität bereitgestellt.
UnicodeComparisonStyle int Serverseitige Konfigurationsoption für die Unicode-Vergleichsart, die zusätzliche Steuerungsmöglichkeiten im Vergleich zur Sortierung von Unicode-Daten bereitstellt. Dieser Parameter wird aus Gründen der Abwärtskompatibilität bereitgestellt.
CompatibilityLevel tinyint Einstellung des Kompatibilitätsgrades der Datenbank, von der aus die Sicherung erstellt wurde.
SoftwareVendorId int ID des Softwareanbieters. Für SQL Server lautet diese Nummer 4608 (oder im Hexadezimalformat 0x1200).
SoftwareVersionMajor int Wichtigste Versionsnummer des Servers, der den Sicherungssatz erstellt hat.
SoftwareVersionMinor int Untergeordnete Versionsnummer des Servers, der den Sicherungssatz erstellt hat.
SoftwareVersionBuild int Buildnummer des Servers, der den Sicherungssatz erstellt hat.
MachineName nvarchar(128) Name des Computers, der den Sicherungsvorgang ausgeführt hat.
Flags int Die einzelnen Flagbits stehen für Folgendes:

– 1 = Protokollsicherung enthält massenprotokollierte Vorgänge.

– 2 = Momentaufnahmesicherung.

– 4 = Datenbank war zum Zeitpunkt der Sicherung schreibgeschützt.

– 8 = Datenbank war zum Zeitpunkt der Sicherung im Einzelbenutzermodus.

– 16 = Sicherung enthält Sicherungsprüfsummen.

– 32 = Datenbank war zum Zeitpunkt der Sicherung beschädigt. Trotz der Fehler wurde die Fortsetzung des Sicherungsvorgangs angefordert.

– 64 = Sicherung des Protokollfragments.

– 128 = Sicherung des Protokollfragments mit unvollständigen Metadaten.

– 256 = Sicherung des Protokollfragments mithilfe von NORECOVERY.

Wichtig: Anstelle von Flags sollten die einzelnen booleschen Spalten (von HasBulkLoggedData bis IsCopyOnly in dieser Tabelle) verwendet werden.
BindingID uniqueidentifier Bindungs-ID für die Datenbank. Dieser Wert entspricht database_guid in sys.database_recovery_status. Wenn eine Datenbank wiederhergestellt wird, wird ein neuer Wert zugewiesen. Siehe auch FamilyGUID.
RecoveryForkID uniqueidentifier ID für den letzten Wiederherstellungs-Verzweigungspunkt. Diese Spalte entspricht dem Wert von last_recovery_fork_guid in der backupset-Tabelle.

Bei Datensicherungen entspricht RecoveryForkIDFirstRecoveryForkID.
Collation nvarchar(128) Die von der Datenbank verwendete Sortierung.
FamilyGUID uniqueidentifier ID der ursprünglichen Datenbank zum Zeitpunkt der Erstellung. Der Wert bleibt unverändert, wenn die Datenbank wiederhergestellt wird.
HasBulkLoggedData bit 1 = Protokollsicherung, die massenprotokollierte Vorgänge enthält.
IsSnapshot bit 1 = Momentaufnahmesicherung
IsReadOnly bit 1 = Datenbank war zum Zeitpunkt der Sicherung schreibgeschützt.
IsSingleUser bit 1 = Datenbank war zum Zeitpunkt der Sicherung im Einzelbenutzermodus.
HasBackupChecksums bit 1 = Die Sicherung enthält Sicherungsprüfsummen.
IsDamaged bit 1 = Datenbank war zum Zeitpunkt der Sicherung beschädigt; trotz der Fehler wurde die Fortsetzung des Sicherungsvorgangs angefordert.
BeginsLogChain bit 1 = Die erste in einer kontinuierlichen Kette von Protokollsicherungen. Eine Protokollkette beginnt mit der ersten Protokollsicherung, die erstellt wird, nachdem die Datenbank angelegt wurde oder nachdem ein Wechsel vom einfachen zum vollständigen oder massenprotokollierten Wiederherstellungsmodell erfolgt ist.
HasIncompleteMetaData bit 1 = Eine Sicherung des Protokollfragments mit unvollständigen Metadaten.

Informationen zu Sicherungen von Protokollfragmenten mit unvollständigen Metadaten finden Sie unter Protokollfragmentsicherungen (SQL Server).
IsForceOffline bit 1 = Sicherung erfolgte mithilfe von NORECOVERY; die Datenbank wurde durch die Sicherung offline geschaltet.
IsCopyOnly bit 1 = Eine Kopiesicherung.

Eine Kopiesicherung wirkt sich nicht auf die Sicherungs- und Wiederherstellungsprozeduren für die Datenbank aus. Weitere Informationen finden Sie unter Kopiesicherungen (SQL Server).
FirstRecoveryForkID uniqueidentifier ID für den ersten Wiederherstellungs-Verzweigungspunkt. Diese Spalte entspricht dem Wert von first_recovery_fork_guid in der backupset-Tabelle.

Bei Datensicherungen entspricht FirstRecoveryForkIDRecoveryForkID.
ForkPointLSN numeric(25,0) Wenn FirstRecoveryForkID nicht mit RecoveryForkID identisch ist, entspricht dieser Wert der Protokollfolgenummer des Forkpunkts. Andernfalls ist der Wert NULL.
RecoveryModel nvarchar(60) Wiederherstellungsmodell für die Datenbank. Folgende Werte sind möglich:

– FULL
– BULK-LOGGED
– SIMPLE
DifferentialBaseLSN numeric(25,0) Bei einer differenziellen Sicherung auf einer einzigen Basis entspricht dieser Wert der FirstLSN der differenziellen Basis. Änderungen mit LSNs größer oder gleich DifferentialBaseLSN werden bei der differenziellen Sicherung berücksichtigt.

Bei einer differenziellen Sicherung auf der Basis mehrerer Basissicherungen ist der Wert NULL, und die Basis-LSN muss auf Dateiebene bestimmt werden. Weitere Informationen finden Sie unter RESTORE FILELISTONLY.

Bei nicht differenziellen Sicherungstypen ist der Wert immer NULL.

Weitere Informationen finden Sie unter Differenzielle Sicherungen (SQL Server).
DifferentialBaseGUID 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 Basissicherungen ist der Wert NULL; die Basis für die differenzielle Sicherung muss dateibasiert ermittelt werden.

Bei nicht differenziellen Sicherungstypen ist der Wert NULL.
BackupTypeDescription nvarchar(60) Sicherungstyp in Form einer Zeichenfolge. Folgende Werte sind möglich:

– DATABASE
– TRANSACTION LOG
– FILE OR FILEGROUP
– DATABASE DIFFERENTIAL
– FILE DIFFERENTIAL PARTIAL
– PARTIAL DIFFERENTIAL
BackupSetGUID uniqueidentifier Eindeutige ID des Sicherungssatzes, die zur Identifizierung des Sicherungssatzes auf dem Medium dient. Kann den Wert NULL haben.
CompressedBackupSize bigint Bytezahl des Sicherungssatzes. Für nicht komprimierte Sicherungen entspricht dieser Wert dem Wert für BackupSize.

Um das Komprimierungsverhältnis zu berechnen, verwenden Sie CompressedBackupSize und BackupSize.

Während eines msdb-Upgrades wird dieser Wert mit dem Wert der Spalte BackupSize abgeglichen.
containment tinyint Gilt für: SQL Server 2012 (11.x) und höhere Versionen.

Zeigt den Kapselungsstatus der Datenbank an.

0 = Datenbankkapselung ist deaktiviert
1 = Datenbank ist in Teilkapselung
KeyAlgorithm nvarchar(32) Gilt für: SQL Server 2014 (12.x) CU 1 und höhere Versionen.

Der Verschlüsselungsalgorithmus, der zum Verschlüsseln der Sicherung verwendet wird. NO_Encryption gibt an, dass die Sicherung nicht verschlüsselt wurde. Wenn der richtige Wert nicht bestimmt werden kann, sollte der Wert NULL sein.
EncryptorThumbprint varbinary(20) Gilt für: SQL Server 2014 (12.x) CU 1 und höhere Versionen.

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.
EncryptorType nvarchar(32) Gilt für: SQL Server 2014 (12.x) CU 1 und höhere Versionen.

Verwendeter Verschlüsselungstyp: Zertifikat oder asymmetrischer Schlüssel. Wenn die Sicherung nicht verschlüsselt wurde, ist dieser Wert NULL.
LastValidRestoreTime datetime Gilt für: SQL Server 2022 (16.x) und höhere Versionen.

Die letzte gültige Wiederherstellungszeit.
TimeZone nvarchar(32) Gilt für: SQL Server 2022 (16.x) und höhere Versionen.

Die Zeitzone des Servers, von dem die Sicherung erstellt wurde.
CompressionAlgorithm nvarchar(32) Gilt für: SQL Server 2022 (16.x) und höhere Versionen.

Identifiziert den Komprimierungsalgorithmus, der zum Komprimieren der Sicherungsdatei verwendet wird. Der Standardwert lautet MS_XPRESS. Weitere Informationen finden Sie unter SICHERUNG.

1 Wenn für die Sicherungssätze Kennwörter definiert sind, gibt RESTORE HEADERONLY vollständige Informationen nur für den Sicherungssatz zurück, dessen Kennwort mit dem Kennwort übereinstimmt, das mit der Befehlsoption PASSWORD angegeben wird. Außerdem gibt RESTORE HEADERONLY vollständige Informationen zu ungeschützten Sicherungssätzen zurück. Für die anderen auf dem Medium befindlichen kennwortgeschützten Sicherungssätze wird die Spalte BackupName auf 'Password Protected' festgelegt; alle anderen Spalten weisen den Wert NULL auf.

Bemerkungen

Ein Client kann RESTORE HEADERONLY zum Abrufen aller Headerinformationen für alle Sicherungen auf einem bestimmten Sicherungsmedium verwenden. Für jede Sicherung auf dem Sicherungsmedium sendet der Server die Headerinformationen als Zeile zurück.

RESTORE HEADERONLY liest alle Sicherungssätze auf dem Medium. Beim Verwenden von Bandlaufwerken mit hoher Kapazität kann die Erstellung dieses Resultsets daher eine gewisse Zeit in Anspruch nehmen. Wenn die Medien schnell gelesen werden sollen, ohne dass Informationen zu jedem Sicherungssatz abgerufen werden, sollten Sie RESTORE LABELONLY verwenden oder FILE = <backup_set_file_number> angeben.

Aufgrund der Eigenschaften von Microsoft Tape Format können Sicherungssätze anderer Softwareprogramme Speicherplatz auf demselben Medium wie SQL Server-Sicherungssätze belegen. Das von RESTORE HEADERONLY zurückgegebene Resultset schließt eine Zeile für jeden dieser anderen Sicherungssätze ein.

Sicherheit

Bei einem Sicherungsvorgang können optional Kennwörter für einen Mediensatz, einen Sicherungssatz oder für beides angegeben werden. Wurde ein Kennwort für einen Mediensatz oder Sicherungssatz definiert, müssen die richtigen Kennwörter in der RESTORE-Anweisung angegeben werden. Über diese Kennwörter werden nicht autorisierte Wiederherstellungsoptionen und unbefugtes Anfügen von Sicherungssätzen an Medien mithilfe der Tools von SQL Server verhindert. Mit einem Kennwort kann jedoch das Überschreiben eines Mediums durch die Option FORMAT der BACKUP-Anweisung nicht verhindert werden.

Wichtig

Dieses Kennwort bietet also nur unzureichenden Schutz. Es soll vermeiden, dass autorisierte wie nicht autorisierte Benutzer mithilfe von SQL Server-Tools fehlerhafte Wiederherstellungen durchführen. Es verhindert jedoch nicht das Lesen der Sicherungsdaten mit anderen Mitteln oder das Ersetzen des Kennworts. Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Features bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die dieses Feature zurzeit verwenden. Eine bewährte Methode für den Schutz von Sicherungen ist das Verwahren von Sicherungsbändern an einem sicheren Ort oder das Sichern in Datenträgerdateien, die durch eine adäquate Zugriffssteuerungsliste (Access Control List, ACL) geschützt sind. Die ACLs sollten für den Verzeichnisstamm eingerichtet werden, unter dem die Sicherungen erstellt werden.

Berechtigungen

Sie benötigen die CREATE DATABASE-Berechtigung, um Informationen zu Sicherungssätzen oder Sicherungsmedien abzurufen. Weitere Informationen finden Sie unter GRANT (Datenbankberechtigungen) (Transact-SQL).

Beispiele

Im folgenden Beispiel werden die Informationen im Header der Datenträgerdatei C:\AdventureWorks-FullBackup.bak zurückgegeben.

RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks-FullBackup.bak';
GO

Siehe auch