Eine regelmäßige Datenbanksicherung ist einer der entscheidenden Schritte nach der Inbetriebnahme des Projekts. Die Sicherungshäufigkeit kann entweder einmal am Tag oder wöchentlich sein. Die tägliche Sicherung wird für Anwendungen bevorzugt, bei denen Datenbankänderungen häufiger vorkommen. Bei hochverfügbaren Datenbanken muss statt vertikaler Skalierung auf einen entsprechenden Cluster-Aufbau geachtet werden. Dieses Tutorial erklärt die Verwendung von
Notizen :Dieses Tutorial behandelt nur die am häufigsten verwendeten Optionen mit
Lokale Sicherung
Sicherung - In diesem Abschnitt wird erläutert, wie Sie eine lokale Sicherung in einer Datei erstellen, indem Sie entweder einzelne oder mehrere Datenbanken exportieren.
Berechtigungen -
- SELECT - um Tabellen zu dumpen
- ANSICHT ANZEIGEN - um Ansichten auszugeben
- TRIGGER - Trigger ausgeben
- LOCK TABLES - falls die Option --single-transaction nicht verwendet wird
Befehl - Unten erwähnt ist die Verwendung von
# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>
Die Beispiele zur Verwendung des regulären Befehls sind unten aufgeführt. Diese Beispielbefehle verwenden den Benutzer enterprise Backups der Datenbank Enterprise zu erstellen . Benutzer und Passwort müssen nicht angegeben werden, falls das Benutzerkonto auth_socket verwendet Algorithmus zur Anmeldung beim MySQL-Server. Der Systembenutzer kann direkt auf die Datenbank zugreifen. Weitere Informationen zu Passwortalgorithmen finden Sie unter How To Use Native Password With MySQL 5.7 und How To Install MySQL 8 on Ubuntu.
Notizen :Die Option -p muss nicht verwendet werden, falls dem Benutzer kein Passwort zugewiesen wurde.
Unten aufgeführt sind die Beispiele zum Sichern einer einzelnen Datenbank mit Benutzername, Host und Port. Das Passwort muss nicht angegeben werden mit diesen Befehlen aus Sicherheitsgründen. Sie können das Passwort für
# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql
# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql
# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql
# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql
# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql
# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql
Unten aufgeführt finden Sie Beispiele zum Sichern mehrerer Datenbanken mit Benutzername, Host und Port.
# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql
# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql
Unten erwähnt ist das Beispiel, um alle Datenbanken mit Benutzername, Host und Port zu sichern.
# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql
# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql
Die PowerShell-Benutzer unter Windows benötigen einen anderen Befehl, wie unten erwähnt.
# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>
# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql
Die oben genannten Befehle exportieren die ausgewählte Datenbank und Tabellen an den im Befehl angegebenen Speicherort.
Datenbanksicherung
In diesem Abschnitt wird erläutert, wie Sie die Datenbanksicherung mithilfe der Shell Pipes in eine andere Datenbank übernehmen, die für Sicherungszwecke verwendet wird. Wir können entweder die Datenbank in die lokale Datei exportieren und diese Datei dann verwenden, um sie in eine andere Datenbank zu importieren, oder direkt mit Shell Pipes in eine andere Datenbank exportieren.
Mit dem unten aufgeführten Befehl kann die Datenbank direkt in eine andere Datenbank exportiert werden. Stellen Sie außerdem sicher, dass Sie Zugriff auf beide Server haben, bevor Sie den Befehl ausführen.
# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup
# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise
So können wir eine Datenbank exportieren oder sichern.