Einführung
In diesem Lab lernen Sie, wie Sie eine SQLite-Datenbank sichern und wiederherstellen können. Sie lernen, wie Sie eine Datenbank mit dem Befehl .dump in eine SQL-Datei exportieren, eine Sicherung (Backup) erstellen und die Datenbank dann aus dieser Sicherung wiederherstellen. Dies ist unerlässlich, um Ihre Daten zu schützen.
Eine Beispiel-Datenbank erstellen
In diesem Schritt erstellen Sie eine SQLite-Beispieldatenbank und füllen sie mit einigen Daten. Dies gibt Ihnen eine Datenbank, mit der Sie das Sichern und Wiederherstellen üben können.
Öffnen Sie zunächst die SQLite-Shell. Hier interagieren Sie mit der Datenbank.
sqlite3 mydatabase.db
Dieser Befehl startet die SQLite-Shell und erstellt eine neue Datenbankdatei namens mydatabase.db. Wenn die Datei bereits existiert, wird stattdessen diese Datei geöffnet.
Erstellen Sie nun eine Tabelle namens users mit Spalten für id, name und email:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
Dieser SQL-Befehl erstellt eine Tabelle namens users. Die Spalte id ist eine Ganzzahl (Integer) und der Primärschlüssel (Primary Key), was bedeutet, dass sie jede Zeile in der Tabelle eindeutig identifiziert. Die Spalten name und email sind Textfelder.
Fügen Sie als Nächstes einige Beispieldaten in die Tabelle users ein:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
Diese Befehle fügen der Tabelle users zwei Zeilen hinzu. Die erste Zeile hat den Namen 'Alice' und die E-Mail 'alice@example.com'. Die zweite Zeile hat den Namen 'Bob' und die E-Mail 'bob@example.com'.
Um zu überprüfen, ob die Daten korrekt eingefügt wurden, führen Sie den folgenden Befehl aus:
SELECT * FROM users;
Sie sollten eine ähnliche Ausgabe wie diese sehen:
1|Alice|alice@example.com
2|Bob|bob@example.com
Diese Ausgabe zeigt den Inhalt der Tabelle users und bestätigt, dass die Daten erfolgreich eingefügt wurden.
Die Datenbank in eine SQL-Datei exportieren
In diesem Schritt exportieren Sie die Datenbank mydatabase.db in eine SQL-Datei namens mydatabase.sql. Diese SQL-Datei enthält die Befehle, die zum Neuerstellen der Datenbank und ihrer Daten erforderlich sind.
Beenden Sie zunächst die SQLite-Shell:
.exit
Dieser Befehl schließt die Verbindung zur Datenbank und bringt Sie zurück zum Linux-Terminal.
Verwenden Sie nun den Befehl .dump, um die Datenbank in eine SQL-Datei zu exportieren:
sqlite3 mydatabase.db .dump > mydatabase.sql
Dieser Befehl verwendet das sqlite3 Befehlszeilen-Tool (command-line tool), um sich mit der Datenbank mydatabase.db zu verbinden. Der Befehl .dump weist SQLite an, die gesamte Datenbank als eine Reihe von SQL-Befehlen auszugeben. Das Symbol > leitet die Ausgabe des Befehls .dump in eine Datei namens mydatabase.sql um.
Um zu überprüfen, ob der Export erfolgreich war, können Sie den Inhalt der Datei mydatabase.sql mit dem Befehl cat anzeigen:
cat mydatabase.sql
Sie sollten eine ähnliche Ausgabe wie diese sehen:
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
INSERT INTO users VALUES(1,'Alice','alice@example.com');
INSERT INTO users VALUES(2,'Bob','bob@example.com');
COMMIT;
Diese Ausgabe zeigt die SQL-Befehle, die die Tabelle users erstellen und die Daten einfügen. Dies bestätigt, dass die Datenbank erfolgreich in eine SQL-Datei exportiert wurde.
Ein Backup der Datenbank erstellen
In diesem Schritt erstellen Sie eine Sicherungskopie (Backup) der Datenbank mit demselben Befehl .dump. Dies ist im Wesentlichen der gleiche Vorgang wie das Exportieren in eine SQL-Datei, aber wir speichern die Sicherung in einer anderen Datei.
sqlite3 mydatabase.db .dump > mydatabase_backup.sql
Dieser Befehl erstellt eine Sicherungskopie der Datenbank mydatabase.db und speichert sie in einer Datei namens mydatabase_backup.sql.
Um zu überprüfen, ob die Sicherung erfolgreich erstellt wurde, können Sie den Inhalt der Datei mydatabase_backup.sql mit dem Befehl cat anzeigen:
cat mydatabase_backup.sql
Sie sollten die gleiche Ausgabe wie im vorherigen Schritt sehen, was bestätigt, dass die Sicherungsdatei die SQL-Befehle enthält, die zum Neuerstellen der Datenbank erforderlich sind.
Die Datenbank aus dem Backup wiederherstellen
In diesem Schritt stellen Sie die Datenbank aus der Datei mydatabase_backup.sql wieder her. Dadurch werden die Datenbank und ihre Daten aus der Sicherung wiederhergestellt.
Simulieren wir zunächst ein Szenario, in dem die Originaldatenbank verloren geht. Löschen Sie die Datei mydatabase.db:
rm mydatabase.db
Dieser Befehl entfernt die Datei mydatabase.db aus dem Dateisystem.
Stellen Sie nun die Datenbank aus der Datei mydatabase_backup.sql wieder her:
sqlite3 mydatabase.db < mydatabase_backup.sql
Dieser Befehl verwendet das sqlite3 Befehlszeilen-Tool (command-line tool), um eine neue Datenbankdatei namens mydatabase.db zu erstellen. Das Symbol < leitet den Inhalt der Datei mydatabase_backup.sql an den Befehl sqlite3 um, der die SQL-Befehle in der Datei ausführt. Dadurch werden die Datenbank und ihre Daten wiederhergestellt.
Um zu überprüfen, ob die Wiederherstellung erfolgreich war, öffnen Sie die Datenbank in der SQLite-Shell:
sqlite3 mydatabase.db
Und fragen Sie die Tabelle users ab:
SELECT * FROM users;
Sie sollten die Daten sehen, die gesichert wurden:
1|Alice|alice@example.com
2|Bob|bob@example.com
Dies bestätigt, dass die Datenbank erfolgreich aus der Sicherungsdatei wiederhergestellt wurde.
Beenden Sie die SQLite-Shell:
.exit
Zusammenfassung
In diesem Lab haben Sie gelernt, wie man eine SQLite-Datenbank sichert und wiederherstellt. Sie haben den Befehl .dump verwendet, um die Datenbank in eine SQL-Datei zu exportieren, und dann die Datenbank aus dieser Datei wiederhergestellt. Diese Fähigkeiten sind unerlässlich, um Ihre Daten zu schützen und sicherzustellen, dass Sie sich von Datenverlusten erholen können.


