Datenbank sichern
Mit dem Befehl ece-tools db-dump
können Sie eine Kopie Ihrer Datenbank erstellen, ohne alle Umgebungsdaten von Services und Bereitstellungen zu erfassen. Standardmäßig erstellt dieser Befehl Sicherungen im /app/var/dump-main
für alle Datenbankverbindungen, die in der Umgebungskonfiguration angegeben sind. Der DB-Dump-Vorgang schaltet die Anwendung in den Wartungsmodus, stoppt Verbraucherwarteschlangenprozesse und deaktiviert Cron-Aufträge, bevor der Dump beginnt.
Beachten Sie die folgenden Richtlinien für DB-Dump:
- Für Produktionsumgebungen empfiehlt Adobe, Datenbank-Dump-Vorgänge außerhalb der Spitzenzeiten abzuschließen, um Service-Unterbrechungen zu minimieren, die auftreten, wenn sich die Website im Wartungsmodus befindet.
- Wenn beim Dump-Vorgang ein Fehler auftritt, löscht der Befehl die Dump-Datei, um Speicherplatz zu sparen. Überprüfen Sie die Protokolle auf Details (
var/log/cloud.log
). - Bei Pro-Produktionsumgebungen werden mit diesem Befehl nur von einem der drei Knoten mit hoher Verfügbarkeit ausgegeben, sodass Produktionsdaten, die während des Speicherauszugs auf einen anderen Knoten geschrieben werden, möglicherweise nicht kopiert werden. Der Befehl generiert eine
var/dbdump.lock
-Datei, um zu verhindern, dass der Befehl auf mehr als einem Knoten ausgeführt wird. - Für ein Backup aller Umgebungs-Services empfiehlt Adobe die Erstellung eines Backup.
Sie können mehrere Datenbanken sichern, indem Sie die Datenbanknamen an den Befehl anhängen. Im folgenden Beispiel werden zwei Datenbanken gesichert: main
und sales
:
php vendor/bin/ece-tools db-dump main sales
Verwenden Sie den Befehl php vendor/bin/ece-tools db-dump --help
für weitere Optionen:
--dump-directory=<dir>
- Wählen Sie einen Zielordner für den Datenbank-Dump aus.--remove-definers
- Entfernen von DEFINER-Anweisungen aus dem Datenbank-Dump
Erstellen eines Datenbank-Dump in der Staging- oder Produktionsumgebung:
-
Verwenden Sie SSH, um sich anzumelden, oder erstellen Sie einen Tunnel, um eine Verbindung zur Remote-Umgebung herzustellen die die zu kopierende Datenbank enthält.
-
Listen Sie die Umgebungsbeziehungen auf und beachten Sie die Anmeldeinformationen der Datenbank.
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
oder
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
-
Erstellen Sie eine Sicherungskopie der Datenbank. Um einen Zielordner für den DB-Dump auszuwählen, verwenden Sie die Option
--dump-directory
.code language-bash php vendor/bin/ece-tools db-dump -- main
Beispielantwort:
code language-none The db-dump operation switches the site to maintenance mode, stops all active cron jobs and consumer queue processes, and disables cron jobs before starting the dump process. Your site will not receive any traffic until the operation completes. Do you wish to proceed with this process? (y/N)? y 2020-01-28 16:38:08] INFO: Starting backup. [2020-01-28 16:38:08] NOTICE: Enabling Maintenance mode [2020-01-28 16:38:10] INFO: Trying to kill running cron jobs and consumers processes [2020-01-28 16:38:10] INFO: Running Magento cron and consumers processes were not found. [2020-01-28 16:38:10] INFO: Waiting for lock on db dump. [2020-01-28 16:38:10] INFO: Start creation DB dump for main database... [2020-01-28 16:38:10] INFO: Finished DB dump for main database, it can be found here: /tmp/qxmtlseakof6y/dump-main-1580229490.sql.gz [2020-01-28 16:38:10] INFO: Backup completed. [2020-01-28 16:38:11] NOTICE: Maintenance mode is disabled.
-
Der Befehl
db-dump
erstellt einedump-<timestamp>.sql.gz
-Archivdatei im Remote-Projektverzeichnis.