Wie man mehrere Datenbanken in SQL Server wiederherstellt (3 Methoden)

Wie man mehrere Datenbanken in SQL Server auf einmal wiederherstellt? Normalerweise können Sie ein effizientes T-SQL-Skript verwenden oder eine leistungsstarke Software mit weniger Einschränkungen ausprobieren.

Alex

Von Alex / Aktualisiert am 20.08.2024

Teilen: instagram reddit

Können Sie mehrere SQL-Datenbanken auf einmal wiederherstellen?

Es ist bedauerlich, dass die SSMS-GUI nur die Wiederherstellung einer Datenbank gleichzeitig unterstützt. Wenn Sie mehrere Datenbanken in mehreren bak-Dateien gesichert haben, können Sie sie alle auf einmal wiederherstellen?

Die Antwort ist JA. Im Allgemeinen können Sie mit einem gültigen T-SQL-Skript mehrere Datenbanken auf einmal wiederherstellen, aber nur, wenn die Sicherungsdateien genau nach den entsprechenden Datenbanken benannt sind und keine zusätzlichen Informationen wie Datum/Uhrzeit enthalten.

Wenn Sie es flexibler machen möchten, gibt es auch eine einfache Alternative mit einer Benutzeroberfläche (GUI). Wählen Sie einfach die bevorzugte Methode.

SQL-Server

Methode 1: Mehrere Datenbanken aus bak-Dateien mit xp_cmdshell wiederherstellen

Sie können ein Skript verwenden, um mehrere Datenbanken in SQL Server aus einem Ordner wiederherzustellen. Bevor Sie jedoch damit beginnen, stellen Sie bitte eine Verbindung zur Instanz her und aktivieren Sie xp_cmdshell.

1. Klicken Sie auf Neue Abfrage und geben Sie den folgenden Befehl ein:

-- Um das Ändern erweiterter Optionen zu erlauben.
EXEC sp_configure "show advanced options", 1;

GO
-- Um den aktuell konfigurierten Wert für erweiterte Optionen zu aktualisieren.
RECONFIGURE;
GO
-- Um die Funktion zu aktivieren.
EXEC sp_configure "xp_cmdshell", 1;
GO
-- Um den aktuell konfigurierten Wert für diese Funktion zu aktualisieren.
RECONFIGURE;
GO

Führen Sie die Abfrage aus und die Funktion wird aktiviert.

xp_cmdshell aktivieren

2. Anschließend können Sie mit dem folgenden Skript mehrere Datenbanken von SQL Server wiederherstellen (ersetzen Sie bitte "D:\backup\" durch Ihren eigenen Ordner, der alle Sicherungsdateien enthält):

DECLARE @FilesCmdshell TABLE (
outputCmd NVARCHAR (255)
)
DECLARE @FilesCmdshellCursor CURSOR
DECLARE @FilesCmdshellOutputCmd AS NVARCHAR(255)

INSERT INTO @FilesCmdshell (outputCmd) EXEC master.sys.xp_cmdshell "dir /B D:\backup\*.bak"
SET @FilesCmdshellCursor = CURSOR FOR SELECT outputCmd FROM @FilesCmdshell

OPEN @FilesCmdshellCursor
FETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmd
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @cmd NVARCHAR(MAX) = "RESTORE DATABASE [" SUBSTRING(@FilesCmdshellOutputCmd, 0, CHARINDEX(".", @FilesCmdshellOutputCmd)) "] FROM DISK = N"'D:\backup\" SUBSTRING(@FilesCmdshellOutputCmd, 0, CHARINDEX(".", @FilesCmdshellOutputCmd)) ".bak"' WITH FILE = 1, NOUNLOAD, STATS = 10"
EXEC(@cmd)

FETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmd
END

mehrere Datenbanken wiederherstellen

✎Hinweis: Wenn Sie einen Fehler erhalten "Der Abschnitt des Protokolls für die Datenbank wurde nicht gesichert. Verwenden Sie BACKUP LOG WITH NORECOVERY, um das Protokoll zu sichern, wenn es Arbeit enthält, die Sie nicht verlieren möchten. Verwenden Sie den WITH REPLACE- oder WITH STOPAT-Parameter des RESTORE-Statements, um nur den Inhalt des Protokolls zu überschreiben", ist die Lösung genauso wie angegeben.

Zum Beispiel könnten Sie den Restore-Befehl wie folgt ändern: "...WITH FILE = 1, REPLACE, NOUNLOAD, STATS = 10"

Weg 2. Skript zur Wiederherstellung aller Datenbanken in SQL Server generieren

Alternativ können Sie ein Skript verwenden, um Wiederherstellungsbefehle für alle Datenbanken in SQL Server zu generieren und sie als neues Skript zusammenzuführen, um auszuführen.

1. Klicken Sie auf Neue Abfrage und geben Sie die folgenden Befehle in das SQL-Abfragefenster ein:

DECLARE @folderpath VARCHAR (1000)
SELECT @folderpath = "D:\Backup\" -- Speicherort für die Sicherungskopie
SELECT "RESTORE DATABASE[" NAME "] FROM DISK = "'" @folderpath name ".bak"' WITH NORECOVERY, REPLACE, STATS = 5"
FROM master.sys.databases
WHERE name NOT IN ("master","model","msdb","tempdb","distribution")

Dies erzeugt eine Reihe von Befehlen zum Wiederherstellen mehrerer Datenbanken in SQL Server aus bak-Dateien mit den gleichen Namen.

2. Klicken Sie mit der rechten Maustaste auf einen Befehl in Ergebnisse, wählen Sie Alles auswählen und dann Kopieren (oder verwenden Sie Strg A und Strg C).

Befehle generieren

3. Fügen Sie diese Befehle als neues Skript in das SQLQuery-Fenster ein und wählen Sie Ausführen. Dadurch werden alle Datenbanken des SQL Servers aus den entsprechenden bak-Dateien wiederhergestellt.

Alle Datenbanken wiederherstellen

Möglichkeit 3. Sichern und Wiederherstellen mehrerer SQL-Datenbanken mit einer GUI (am einfachsten)

Die oben genannten Skripte gelten nur, wenn Ihre bak-Dateien genau den Namen der SQL-Datenbanken haben, was in der Praxis sehr restriktiv ist. Daher möchte ich eine bequemere Möglichkeit bieten, mehrere Datenbanken oder sogar die gesamte Instanz zu sichern und wiederherzustellen.

AOMEI Cyber Backup ist eine zuverlässige zentrale Managementlösung für das Sichern und Wiederherstellen von SQL-Datenbanken auf allen Desktops, Laptops und Servern im LAN.

Es funktioniert unter Windows 11/10/8.1/8/7, Windows Server 2022/2019/2016/2012 (R2)/2008 (R2) und unterstützt die Sicherung von SQL Server 2005 bis 2022. Neben SQL-Datenbanken unterstützt es auch das Sichern von virtuellen Maschinen von Hyper-V und VMware.

Kostenlose Testversion herunterladenMicrosoft SQL Server 2005-2022
Zentrale und sichere SQL-Sicherung
  • Führen Sie die heruntergeladene .exe-Datei aus, um AOMEI Cyber Backup zu installieren, und starten Sie seine Hauptoberfläche. Klicken Sie auf Quellgerät -> Microsoft SQL -> Microsoft SQL hinzufügen.

Microsoft SQL

  • Wählen Sie Proxy-Programm herunterladen oder Link kopieren, um das Agent-Programm herunterzuladen und auf dem Gerät mit installiertem SQL Server zu installieren. Wechseln Sie dann zu Bereits installierter Proxy, um das Gerät auszuwählen.
  • Klicken Sie anschließend auf icon -> Authentifizierung, um die Datenbankinstanz zu bestätigen. Sie können Windows-Authentifizierung oder SQL-Authentifizierung wählen.

Gerät hinzufügen

Das war"s. Sie können jetzt die Datensicherung für den hinzugefügten SQL Server planen.

Wie sichern Sie mehrere Datenbanken in SQL Server:

  • Klicken Sie auf Backup-Aufgabe -> Neue Aufgabe erstellen und wählen Sie den Sicherungstyp Microsoft SQL-Sicherung aus.

Backup-Typ

2. Klicken Sie auf Gerätename, um die SQL-Instanz und die Datenbanken für das Backup festzulegen. Sie können eine oder mehrere Datenbanken auswählen, wie Sie benötigen.

Datenbank auswählen

3. Wählen Sie einen Ziel-Speicherort, um Ihre SQL-Backups zu speichern. Sie können einen lokalen Pfad oder Netzwerkpfad angeben.

Ziel auswählen

4. Konfigurieren Sie den Zeitplan, um das SQL-Datenbank-Backup täglich, wöchentlich oder monatlich auszuführen, und wählen Sie die Backup-Methode als Vollständiges, Inkrementelles oder Differentielles Backup.

Zeitplan für Backup

Klicken Sie auf Backup starten, um die Aufgabe zu erstellen und auszuführen. Sobald sie abgeschlossen ist, finden Sie sie im Tab Backup-Aufgabe.

✍Weitere nützliche Funktionen:

  • Backup-Bereinigung hilft Ihnen, ältere Backup-Versionen automatisch zu löschen und damit Speicherplatz zu sparen.
  • E-Mail-Benachrichtigung ermöglicht Ihnen den Empfang von E-Mail-Benachrichtigungen, wenn die Aufgabe abnorm oder erfolgreich ist.
  • Archiv hilft Ihnen beim Archivieren der Backup-Dateien in einem AWS S3-Speicher.

◉ Wie man mehrere Datenbanken aus dem Backup wiederherstellt:

1. Klicken Sie auf Backup-Aufgabe in der linken Menüleiste, suchen Sie die Aufgabe, die Sie wiederherstellen möchten, und klicken Sie auf Symbol -> Wiederherstellen.

Wiederherstellung

2. Wählen Sie eine Sicherungsversion aus, aus der Sie SQL-Datenbanken wiederherstellen möchten.

Inhalt auswählen

3. Wählen Sie als Nächstes den Zielspeicherort aus, auf den Sie wiederherstellen möchten. Es gibt 2 Optionen:

  • In den Originalspeicherort wiederherstellen (Standard): Wiederherstellung am Ursprungsort, die SQL-Datenbanken auf eine ältere Version zurücksetzt.
  • In neuen Speicherort wiederherstellen: Wählen Sie ein anderes Ziel aus, um die Wiederherstellung ohne ausreichenden Speicherplatz durchzuführen. Sie können den Namen der neuen Datenbank angeben und den Speicherort ändern.

In den Originalspeicherort wiederherstellen

Die Datenbank mit demselben Namen überschreiben: Wenn Sie diese Option aktivieren, werden die gesicherten Datenbanken die Zieldatenbanken mit demselben Namen überschreiben. Wenn Sie es deaktivieren, werden die Zieldatenbanken mit demselben Namen bei der Wiederherstellung übersprungen.

4. Klicken Sie nach allen Einstellungen auf Wiederherstellung starten, um den Wiederherstellungsvorgang zu starten, und warten Sie geduldig auf dessen Abschluss. Sie können auf die Schaltfläche Symbol klicken, um Details zur Wiederherstellung anzuzeigen oder sie abzubrechen.

Wiederherstellung starten

✍Hinweise:

  • "Wiederherstellen an den ursprünglichen Ort" muss bestätigen, dass der ursprüngliche Ort existiert. Andernfalls können Sie nur "Wiederherstellen an neuen Ort" auswählen.
  • "Wiederherstellen an den ursprünglichen Ort" überschreibt oder löscht die Datenbankdaten des Originals, wenn die ursprüngliche Datenbank wichtige Daten enthält, wird empfohlen, "Wiederherstellen an neuen Ort" zu wählen.

Schlussfolgerung

Die SSMS-Wiederherstellungs-Oberfläche ermöglicht nur die Wiederherstellung einer Datenbank auf einmal. Wenn Sie mehrere Datenbanken in SQL Server gleichzeitig wiederherstellen möchten, ist der häufigste Ansatz die Verwendung von T-SQL-Skripten. Diese haben jedoch strenge Einschränkungen für die Dateinamen der Sicherungsdateien und erschweren Operationen wie das Wiederherstellen von Datenbanken auf eine andere Instanz. Daher könnten Sie auch die SQL-Backup-Software - AOMEI Cyber Backup ausprobieren.

Sie vereinfacht die Operationen erheblich. Zum Beispiel können Sie SQL-Datenbanken automatisch sichern mit nur wenigen Klicks und mehrere Datenbanken gleichzeitig mit gleichermaßen einfachen Operationen wiederherstellen.

Alex
Alex · Redakteur
Alex beschäftigt sich seit vielen Jahren intensiv mit dem Datenschutz, einschließlich der Sicherung virtueller Maschinen, Datenbanken und Daten auf Windows-PCs und -Servern. Bleiben Sie über die neuesten Technologietrends auf dem Laufenden und stellen Sie sicher, dass die bereitgestellten Informationen mit der kontinuierlichen Weiterentwicklung der Branche übereinstimmen.