SQLite Datenbank Backup

SQLiteSQLiteBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/init_db("Create SQLite Database") sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_row("Insert Single Row") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/verify_table("Check Table Existence") subgraph Lab Skills sqlite/init_db -.-> lab-552548{{"SQLite Datenbank Backup"}} sqlite/make_table -.-> lab-552548{{"SQLite Datenbank Backup"}} sqlite/add_row -.-> lab-552548{{"SQLite Datenbank Backup"}} sqlite/add_rows -.-> lab-552548{{"SQLite Datenbank Backup"}} sqlite/get_all -.-> lab-552548{{"SQLite Datenbank Backup"}} sqlite/query_where -.-> lab-552548{{"SQLite Datenbank Backup"}} sqlite/verify_table -.-> lab-552548{{"SQLite Datenbank Backup"}} end

Erstellen einer Beispieldatenbank

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', '[email protected]');
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');

Diese Befehle fügen der Tabelle users zwei Zeilen hinzu. Die erste Zeile hat den Namen 'Alice' und die E-Mail '[email protected]'. Die zweite Zeile hat den Namen 'Bob' und die E-Mail '[email protected]'.

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|[email protected]
2|Bob|[email protected]

Diese Ausgabe zeigt den Inhalt der Tabelle users und bestätigt, dass die Daten erfolgreich eingefügt wurden.

Exportieren der Datenbank in eine SQL-Datei

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','[email protected]');
INSERT INTO users VALUES(2,'Bob','[email protected]');
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.

Erstellen einer Sicherungskopie der Datenbank

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.

Wiederherstellen der Datenbank aus der Sicherung

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|[email protected]
2|Bob|[email protected]

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.