mysqldump Batch Skript zur Ausgabe einzelner Tabellen für selektive Wiederherstellung - mysql, Batch-Datei, mysqldump

Wir haben derzeit ein DOS-Batch-Skript, dasFührt einen MySQL-Dump für die gesamte Datenbank in einer einzigen Datei aus. Was ich tun möchte, ist die Datenbank nach Tabellen aufzuteilen, so dass es in jedem "date" -Ordner einen "db" -Ordner mit einzelnen Tabellen-Dumps geben würde. Dies ermöglicht uns, ausgewählte Tabellen wiederherzustellen, anstatt eine gesamte Datenbank wiederherzustellen.

@echo off
md C:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
cd C:Program FilesMySQLMySQL Workbench 5.2 CE
mysqldump -h -u -p --databases db0 > c:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%db0.sql
mysqldump -h -u -p --databases db1 > c:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%db1.sql

Ich habe eine mögliche Lösung mit Shell gefunden: https://stackoverflow.com/a/134296/679449

Es scheint, dass es mir erlauben würde, in einzelne Tabellen zu exportieren, aber ich bin mir nicht sicher, wie man / wenn es möglich ist, im Stapel zu schreiben. Jede Hilfe dabei ist willkommen.

Antworten:

0 für die Antwort № 1

Meine Lösung:

@echo off
md C:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%db0
md C:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%db1

cd C:Program FilesMySQLMySQL Workbench 5.2 CE

mysql -s -e "SHOW TABLES FROM db0" -u -p --skip-column-names > C:backupstables.txt
for /f %%A in (C:backupstables.txt) DO (mysqldump -h -u -p db0 %%A > c:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%db0%%A.sql)

mysql -s -e "SHOW TABLES FROM db1" -u -p --skip-column-names > C:backupstables.txt
for /f %%A in (C:backupstables.txt) DO (mysqldump -h -u -p db1 %%A > c:backups%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%db1%%A.sql)