Datenbank Dump erzeugen und einspielen
Als erstes bitte mittels SSH auf das Hostsystem des Servers, von dem man den Dump ziehen möchte, verbinden. Im Anschluss Wechsel ich immer in das Deployment-Verzeichnis, da dieses mit jedem Update bereinigt wird. Dies sorgt dafür, dass die Dumps regelmäßig gelöscht werden und den Serverplatz nicht unnötig dauerhaft belasten.
cd ~/deployment
Jetzt kann mittels Docker Befehl der Dump direkt von der Slave Datenbank gezogen werden.
docker exec obility_mysql_slave_prod sh -c 'TABLES=$(mariadb metabaseappdb -uroot -pPASSWORD -N -e "SHOW TABLES FROM metabaseappdb WHERE Tables_in_metabaseappdb NOT LIKE '\''core_user'\'' AND Tables_in_metabaseappdb NOT LIKE '\''core_session'\'' AND Tables_in_metabaseappdb NOT LIKE '\''metabase_database'\'' AND Tables_in_metabaseappdb NOT LIKE '\''setting'\'' AND BINARY Tables_in_metabaseappdb NOT LIKE '\''v_%'\''"); mariadb-dump metabaseappdb --hex-blob -uroot -p$MYSQL_ROOT_PASSWORD $TABLES | gzip -7 -c' > ./metabaseappdb.sql.gz
Mit FileZilla kann jetzt die gepackte Datei genommen werden und auf das Zielsystem kopiert werden. Auch hier wird die SSH Verbindung auf das Hostsystem benötigt und es empfiehlt sich ebenfalls in das Deployment Verzeichnis zu navigieren. Dann die Datei entpacken und in die Slave Datenbank importieren:
gunzip metabaseappdb.sql.gz
docker exec -i obility_mysql_slave_prod sh -c 'exec mariadb -uroot -pPASSWORD metabaseappdb' < ./metabaseappdb.sql