Skip to main content

Datenbank Dump erzeugen und einspielen

Als erstes bitte mittels SSH auf das Hostsystem des ServersServers, von dem man den Dump ziehen möchte, verbinden. Im Anschluss wechselWechsel ich immer in das Deployment Deployment-Verzeichnis, da dieses mit jedem Update bereinigt wirdwird. Dies sorgt dafür, dass die Dumps regelmäßig gelöscht werden und dadurch alte Datenbankdumps den PlatzServerplatz nicht unnötig belasten:dauerhaft belasten.

cd ~/deployment

Jetzt kann mittels Docker Befehl der Dump direkt von der Slave Datenbank gezogen werdenwerden.

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