MariaDB-Backup mit CMD und Powershell unterschiedlich
Hallo Leute,
ich habe einen MariaDB-Datenbankserver im Einsatz und wir hatten nun den Fall das etwas mit der Datenbank nicht in Ordnung war und wir mussten die entsprechende DB zurücksichern.
Dabei fiel etwas auf, aus Gründen die ich erklärt bräuchte macht es einen Unterschied ob man die Sicherung via CMD oder PowerShell ausführt und ich kann mir beim besten Willen nicht erklären warum.
Führt man den Befehl:
als .cmd-Datei oder im CMD-Fenster aus, so wird die Sicherung 500MB groß.
Führe ich den den Befehl
in PowerShell, als .ps1-Datei oder in der ISE aus, so wird die Sicherung 1,05GB groß.
Alternativ habe ich auch folgendes versucht:
In PowerShell wie folgt:
Das Ergebnis ist gleich mit der Ausführung in PowerShell ohne CMD-Aufruf.
Es sind dieselben Parameter und beide Befehle sollten gleich verlaufen aber augenscheinlich tun sie es nicht.
Die CMD-Sicherung dauert dagegen nur 1 Minute, die PowerShell-Sicherung ca. 5 Minuten.
Kann mir bitte jemand erklären was genau den Unterschied ausmacht und warum dieser passiert?
ich habe einen MariaDB-Datenbankserver im Einsatz und wir hatten nun den Fall das etwas mit der Datenbank nicht in Ordnung war und wir mussten die entsprechende DB zurücksichern.
Dabei fiel etwas auf, aus Gründen die ich erklärt bräuchte macht es einen Unterschied ob man die Sicherung via CMD oder PowerShell ausführt und ich kann mir beim besten Willen nicht erklären warum.
Führt man den Befehl:
"C:\Program Files\MariaDB 10.8\bin\mariadb-dump.exe" --max_allowed_packet=512M --host=localhost --user=user --password=password --port=3306 --single-transaction --databases datenbank > "C:\SQL-Backup\230503_1514_datenbank.sql"
Führe ich den den Befehl
& "C:\Program Files\MariaDB 10.8\bin\mariadb-dump.exe" --max_allowed_packet=512M --host=localhost --user=user --password=password --port=3306 --single-transaction --databases datenbank > "C:\SQL-Backup\230503_1515_datenbank.sql"
in PowerShell, als .ps1-Datei oder in der ISE aus, so wird die Sicherung 1,05GB groß.
Alternativ habe ich auch folgendes versucht:
In PowerShell wie folgt:
& cmd /c "C:\Program Files\MariaDB 10.8\bin\mariadb-dump.exe" --max_allowed_packet=512M --host=localhost --user=user --password=password --port=3306 --single-transaction --databases datenbank > "C:\SQL-Backup\230503_1515_datenbank.sql"
Das Ergebnis ist gleich mit der Ausführung in PowerShell ohne CMD-Aufruf.
Es sind dieselben Parameter und beide Befehle sollten gleich verlaufen aber augenscheinlich tun sie es nicht.
Die CMD-Sicherung dauert dagegen nur 1 Minute, die PowerShell-Sicherung ca. 5 Minuten.
Kann mir bitte jemand erklären was genau den Unterschied ausmacht und warum dieser passiert?
Please also mark the comments that contributed to the solution of the article
Content-Key: 7001194003
Url: https://administrator.de/contentid/7001194003
Printed on: May 9, 2024 at 02:05 o'clock
3 Comments
Latest comment
Hallo,
die Antworten hier waren nicht zufriedenstellend?
Das nächste Mal wäre es schön, wenn du das direkt verlinkst, dann weiß man, was andere bereits für Vorleistung erbracht haben
Gruß
die Antworten hier waren nicht zufriedenstellend?
Das nächste Mal wäre es schön, wenn du das direkt verlinkst, dann weiß man, was andere bereits für Vorleistung erbracht haben
Gruß
Zitat von @B345TY:
& "C:\Program Files\MariaDB 10.8\bin\mariadb-dump.exe" --max_allowed_packet=512M --host=localhost --user=user --password=password --port=3306 --single-transaction --databases datenbank > "C:\SQL-Backup\230503_1515_datenbank.sql"
Versuche mal folgendes:
$ProcessOptions = @{
FilePath = 'C:\Program Files\MariaDB 10.8\bin\mariadb-dump.exe'
WorkingDirectory = 'C:\Program Files\MariaDB 10.8\bin\ '
NoNewWindow = $true
Wait = $true
ArgumentList = '--max_allowed_packet=512M --host=localhost --user=user --password=password --port=3306 --single-transaction --databases datenbank > "C:\SQL-Backup\230503_1515_datenbank.sql"'
}
Start-Process @ProcessOptions
sieht sauberer aus, sollte keine Probleme bei irgendwelchen automatischen Umwandungen / Interpretationen machen und wenn man dann noch $LastExitCode auswertet wird es ein sauberes Skript.
Zitat von @michi1983:
Das nächste Mal wäre es schön, wenn du das direkt verlinkst, dann weiß man, was andere bereits für Vorleistung erbracht haben
Das nächste Mal wäre es schön, wenn du das direkt verlinkst, dann weiß man, was andere bereits für Vorleistung erbracht haben
Guten Morgen
Genau das würde ich aber auch nicht tun. Offensichtlich war es nicht zufriedenstellend, sonst würde er nicht nochmals fragen und wenn man auf etwas hinweist, dann gehen die Gedanken bereits automatisch in eine Richtung. Er will aber eine andere Sichtweise.
Ich kann's verstehen.