Zum Inhalt springen

Mariadb-dump/Optionen

Aus Foxwiki
Version vom 16. Februar 2025, 15:55 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=== Optionen === {| class=„wikitable sortable options gnu“ |- ! Unix !! GNU !! Parameter !! Beschreibung |- | || || || |- |} {| class="wikitable options“ |- ! Option !! Beschreibung |- | --all || Veraltet * Verwenden Sie stattdessen --create-options |- || -A, --all-databases || Alle Datenbanken sichern * Dies entspricht --databases, wobei alle Datenbanken ausgewählt sind |- || -Y, --all-tablespaces || Alle Tablespaces sichern |- || -y, --no-tables…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Optionen

Unix GNU Parameter Beschreibung
  • Deaktivieren Sie die Option mit --skip-add-locks
  • Normalerweise behandelt mariadb-dump das erste Namensargument in der Befehlszeile als Datenbanknamen und die folgenden Namen als Tabellennamen
  • Mit dieser Option werden alle Namensargumente als Datenbanknamen behandelt. CREATE DATABASE- und [1]-Anweisungen sind in der Ausgabe vor jeder neuen Datenbank enthalten
  • Wenn Sie möchten, dass Ihr Dump und das Leeren des Protokolls genau zum gleichen Zeitpunkt erfolgen, sollten Sie --flush-logs zusammen mit --lock-all-tables oder --master-data verwenden
  • Diese Option sollte immer dann verwendet werden, wenn der Dump die mysql-Datenbank und eine andere Datenbank enthält, die für eine ordnungsgemäße Wiederherstellung von den Daten in der mysql-Datenbank abhängt
  • IF EXISTS], die normalerweise für jede ausgegebene Datenbank ausgegeben wird, wenn --all-databases oder --databases angegeben wird
  • h
  • keine Tabelleninhalte ausgeben)
  • Dies ist nützlich, wenn Sie nur die CREATE TABLE-Anweisung für die Tabelle ausgeben möchten (z
  • B
  • um durch Laden der Ausgabedatei eine leere Kopie der Tabelle zu erstellen)
  • Siehe auch --ignore-table-data
  • Dies ist nützlich, wenn eine MyISAM-Tabelle in eine InnoDB-Tabelle geladen werden soll, verlängert aber die Dauer des eigentlichen Ladevorgangs erheblich
  • Die Optionswerte hier stammen aus der Menge aller, Benutzer, Plugins, udfs, Server, Statistiken, Zeitzonen
Option Beschreibung
--all Veraltet
  • Verwenden Sie stattdessen --create-options
-A, --all-databases Alle Datenbanken sichern
  • Dies entspricht --databases, wobei alle Datenbanken ausgewählt sind
-Y, --all-tablespaces Alle Tablespaces sichern
-y, --no-tablespaces Keine Tablespace-Informationen sichern
--add-drop-database Vor jeder Erstellung einen DATABASE hinzufügen
  • Wird normalerweise in Verbindung mit der Option --all-databases oder --databases verwendet, da keine DATABASE-Anweisungen geschrieben werden, es sei denn, eine dieser Optionen wird angegeben
--add-drop-table Füge vor jedem Erstellen ein TABLE hinzu
--add-drop-trigger Fügen Sie vor jeder CREATE TRIGGER-Anweisung eine DROP TRIGGER-Anweisung hinzu
--add-locks
--allow-keywords Erlaubt die Erstellung von Spaltennamen, die Schlüsselwörter sind
  • Dies funktioniert, indem jedem Spaltennamen der Tabellenname vorangestellt wird
--apply-slave-statements Fügt STOP SLAVE vor CHANGE MASTER und START SLAVE am Ende des Speicherauszugs hinzu
--as-of=name Dump system versioned table as of specified timestamp
  • Argument is interpreted according to the --tz-utc setting
  • Table structures are always dumped as of current timestamp.From MariaDB 10.7.0
--character-sets-dir=name Verzeichnis für Zeichensatz-Dateien
-i, --comments Zusätzliche Informationen in die Auszugsdatei schreiben, z
  • B
  • Programmversion, Serverversion und Host
  • Deaktivieren mit --skip-comments
--compact
Ändern Sie den Dump so, dass er mit einem bestimmten Modus kompatibel ist
  • Standardmäßig werden Tabellen in einem für MariaDB und MySQL optimierten Format ausgegeben
  • Zulässige Modi sind: ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_table_options und no_field_options
  • Man kann mehrere Modi durch Kommas getrennt verwenden
  • Diese Option garantiert keine Kompatibilität mit anderen Servern
  • Sie aktiviert nur die SQL-Moduswerte, die derzeit verfügbar sind, um die Kompatibilität der Dump-Ausgabe zu verbessern
  • Beispielsweise ordnet --compatible=oracle Datentypen nicht Oracle-Typen zu und verwendet keine Oracle-Kommentar-Syntax
-c, --complete-insert
-C, --compress
--copy-s3-tables Standardmäßig werden S3-Tabellen ignoriert
  • Wenn diese Option aktiviert ist, enthält die Ergebnisdatei eine CREATE-Anweisung für eine ähnliche Aria-Tabelle, gefolgt von den Tabellendaten und endend mit einem ALTER TABLE xxx ENGINE=S3
-a, --create-options Schließt alle MariaDB- und/oder MySQL-spezifischen Erstellungsoptionen in CREATE TABLE-Anweisungen ein
  • Verwenden Sie --skip-create-options, um sie zu deaktivieren
-B, --databases
-#, --debug[=#] Wenn Sie eine Debug-Version von MariaDB verwenden, schreiben Sie ein Debugging-Protokoll
  • Eine typische debug_options-Zeichenfolge ist „d:t:o,Dateiname“
  • Der Standardwert ist „d:t:o,/tmp/mysqldump.trace“
  • Wenn Sie eine Nicht-Debug-Version verwenden, wird mariadb-dump dies erkennen und beenden
--debug-check Speicher und Verwendung der geöffneten Datei beim Beenden prüfen
--debug-info Einige Debug-Informationen beim Beenden ausgeben
--default-auth=name Standard-Authentifizierungs-Client-seitiges Plugin, das verwendet werden soll
--default-character-set=name Legt den Standard-Zeichensatz [2] auf „name“ fest
  • Wenn kein Zeichensatz angegeben ist, verwendet „mariadb-dump“ utf8mb4
--defaults-extra-file=name Die Datei „Name“ wird nach dem Lesen der globalen Dateien gelesen
  • Muss als erstes Argument angegeben werden
--defaults-file=name Nur Standardoptionen aus der angegebenen Datei „Name“ werden gelesen
  • Muss als erstes Argument angegeben werden
--defaults-group-suffix=str Auch Gruppen mit dem Suffix „str“ werden gelesen
  • Da „mariadb-dump“ beispielsweise normalerweise die Gruppen [client] und [mariadb-dump] (oder [mysqldump]) liest, würde --defaults-group-suffix=x dazu führen, dass auch die Gruppen [mariadb-dump_x] (oder [mysqldump_x]) und [client_x] gelesen werden
--delayed-insert Zeilen mit INSERT DELAYED statt INSERT einfügen
--delete-master-logs Löschen Sie auf einem primären Replikationsserver die Binärprotokolle, indem Sie nach dem Ausführen des Speicherauszugsvorgangs eine Anweisung PURGE BINARY LOGS an den Server senden
  • Diese Option aktiviert automatisch --master-data=2
--dir Paralleler Dump mehrerer Datenbanken
  • Funktioniert in Bezug auf die Ausgabe genau wie --tab (SQL-Datei für Tabellendefinition und tabulatorgetrennt für Daten, gleiche Optionen, z
  • B. --parallel)
  • Es sind auch die Optionen --databases und --all-databases zulässig
  • Wenn --dir verwendet wird, wird die Verzeichnisstruktur im Ausgabeverzeichnis erstellt, auf das mit --dir verwiesen wird
  • Für jede Datenbank, die gesichert werden soll, wird ein Verzeichnis mit dem Datenbanknamen erstellt
  • Alle Optionen, die --tab unterstützt, werden auch von --dir unterstützt, insbesondere --parallel
  • Aus MariaDB 11.5
-K, --disable-keys '/*!40000 ALTER TABLE tb_name DISABLE KEYS */; und '/*!40000 ALTER TABLE tb_name ENABLE KEYS */; werden in die Ausgabe eingefügt
  • Dadurch wird das Laden der Dump-Datei beschleunigt, da die Indizes erst erstellt werden, nachdem alle Zeilen eingefügt wurden
  • Diese Option ist nur für nicht eindeutige Indizes von MyISAM-Tabellen wirksam
  • Deaktivieren Sie sie mit --skip-disable-keys
--dump-date Wenn die Option --comments und diese Option angegeben werden, erzeugt mariadb-dump am Ende des Speicherabbilds einen Kommentar der folgenden Form:-- Speicherabbild am DATUM abgeschlossen
  • Das Datum führt jedoch dazu, dass Speicherabbilddateien, die zu unterschiedlichen Zeiten erstellt wurden, unterschiedlich erscheinen, selbst wenn die Daten ansonsten identisch sind. --dump-date und --skip-dump-date steuern, ob das Datum zum Kommentar hinzugefügt wird
  • Die Standardeinstellung ist --dump-date (Datum in den Kommentar aufnehmen). --skip-dump-date unterdrückt die Datumsausgabe
-H, --dump-history Dump-Tabellen mit [3]
  • Von MariaDB 10.11.0
  • Bis zu dieser Option konnte mariadb-dump keine historischen Zeilen aus versionierten Tabellen lesen, sodass historische Daten nicht gesichert wurden
--dump-slave[=value] Wird zur Erstellung einer Dump-Datei von einem Replikatserver verwendet, die zur Einrichtung eines anderen Replikatservers mit derselben Primärdatenbank verwendet werden kann
  • Bewirkt, dass die binary log-Position und der Dateiname der Primärdatenbank an die Ausgabe der gedumpten Daten angehängt werden
  • Wenn der Wert auf 1 (Standardwert) gesetzt wird, wird er als Befehl MASTER in der Ausgabe der gesicherten Daten gedruckt
  • Wenn der Wert auf 2 gesetzt wird, wird diesem Befehl ein Kommentarsymbol vorangestellt
  • Diese Option aktiviert --lock-all-tables, es sei denn, es wird auch --single-transaction angegeben (in diesem Fall wird nur zu Beginn des Dumps eine globale Lesesperre für kurze Zeit gesetzt – lesen Sie unbedingt weiter unten nach, was --single-transaction bewirkt)
  • In jedem Fall erfolgt jede Aktion in den Logs genau zum Zeitpunkt des Dumps
  • Die Option schaltet --lock-tables automatisch aus
  • Durch die Verwendung dieser Option wird mariadb-dump den SQL-Replikat-Thread vor Beginn des Dumps stoppen und nach Abschluss wieder neu starten
-E, --events Schließt Event Scheduler events für die gedumpten Datenbanken in die Ausgabe ein
-e, --extended-insert Verwendet die INSERT-Syntax für mehrere Zeilen, die mehrere VALUES-Listen enthält
  • Dies führt zu einer kleineren Speicherauszugsdatei und beschleunigt das Einfügen, wenn die Datei neu geladen wird
  • Standardmäßig aktiviert; zum Deaktivieren verwenden Sie --skip-extended-insert
--fields-terminated-by=name Felder in der Ausgabedatei werden durch die angegebene Zeichenkette beendet
  • Wird mit der Option --tab verwendet und hat die gleiche Bedeutung wie die entsprechende FIELDS-Klausel für LOAD DATA INFILE
--fields-enclosed-by=name Felder in der Ausgabedatei werden durch das angegebene Zeichen umschlossen
  • Wird mit der Option --tab verwendet und hat dieselbe Bedeutung wie die entsprechende FIELDS-Klausel für LOAD DATA INFILE
--fields-optionally-enclosed-by=name Felder in der Ausgabedatei werden optional durch das angegebene Zeichen eingeschlossen
  • Wird mit der Option --tab verwendet und hat dieselbe Bedeutung wie die entsprechende FIELDS-Klausel für LOAD DATA INFILE
--fields-escaped-by=name Felder in der Ausgabedatei werden durch das angegebene Zeichen maskiert
  • Wird mit der Option --tab verwendet und hat die gleiche Bedeutung wie die entsprechende FIELDS-Klausel für LOAD DATA INFILE
--first-slave
--flush-privileges
-f, --force Setzt die Ausführung fort, auch wenn während eines Tabellendumps ein SQL-Fehler auftritt
  • Diese Option kann beispielsweise verwendet werden, um die Ausführung von „mariadb-dump“ fortzusetzen, auch wenn eine Ansicht gefunden wird, die ungültig geworden ist, weil die Definition auf eine Tabelle verweist, die gelöscht wurde
  • Ohne --force in diesem Beispiel wird mariadb-dump mit einer Fehlermeldung beendet
  • Mit --force gibt „mariadb-dump“ die Fehlermeldung aus, schreibt aber auch einen SQL-Kommentar mit der View-Definition in die Dump-Ausgabe und setzt die Ausführung fort
--gtid Wird zusammen mit --master-data und --dump-slave verwendet, um eine neue GTID-Replik bequemer einzurichten
  • Diese Optionen geben SQL-Anweisungen aus, die die Replik so konfigurieren, dass sie die globale Transaktions-ID verwendet, um eine Verbindung zum primären statt zu Dateinamen/Offset-Positionen im alten Stil herzustellen
  • Die alten Positionen sind weiterhin in Kommentaren enthalten, wenn --gtid verwendet wird; ebenso ist die GTID-Position in Kommentaren enthalten, auch wenn --gtid nicht verwendet wird
-?, --help Zeigt eine Hilfemeldung an und beendet das Programm
--hex-blob Gibt Binärzeichenfolgen im Hexadezimalformat aus (z
-h name, --host=name Verbindung zum MariaDB- oder MySQL-Server auf dem angegebenen Host herstellen und Daten von diesem Server ausgeben
  • Der Standard-Host ist localhost
--ignore-database=name Die angegebene Datenbank nicht ausgeben
  • Um mehr als eine Datenbank anzugeben, die ignoriert werden soll, verwenden Sie die Anweisung mehrmals, einmal für jede Datenbank
  • Wirkt nur in Verbindung mit --all-databases oder -A
--ignore-table=name Die angegebene Tabelle wird nicht ausgegeben
  • Um mehr als eine zu ignorierende Tabelle anzugeben, verwenden Sie die Anweisung mehrmals, einmal für jede Tabelle
  • Jede Tabelle muss mit Datenbank- und Tabellennamen angegeben werden, z
  • B. --ignore-table=database.table
  • Diese Option kann auch zum Ignorieren von Ansichten verwendet werden
--ignore-table-data=name Die angegebenen Tabellendaten werden nicht ausgegeben (nur die Struktur)
  • Um mehr als eine zu ignorierende Tabelle anzugeben, verwenden Sie die Anweisung mehrmals, einmal für jede Tabelle
  • Jede Tabelle muss mit Datenbank- und Tabellennamen angegeben werden
  • Siehe auch --no-data
--include-master-host-port Fügen Sie die Optionen MASTER_HOST und MASTER_PORT für die Anweisung CHANGE MASTER TO hinzu, wenn Sie die Option --dump-slave für einen Replikat-Dump verwenden
--insert-ignore Fügen Sie Zeilen mit INSERT IGNORE anstelle von INSERT ein
--lines-terminated-by=name Zeilen in der Ausgabedatei werden durch die angegebene Zeichenkette abgeschlossen
  • Diese Option wird zusammen mit der Option --tab verwendet und hat dieselbe Bedeutung wie die entsprechende LINES-Klausel für LOAD DATA INFILE
-x, --lock-all-tables
-l, --lock-tables Sperren Sie für jede Datenbank, die gesichert werden soll, alle Tabellen, bevor Sie sie sichern
  • Die Tabellen werden mit READ LOCAL gesperrt, um gleichzeitige Einfügevorgänge bei MyISAM-Tabellen zu ermöglichen
  • Für Transaktionstabellen wie InnoDB ist --single-transaction eine viel bessere Option als --lock-tables, da die Tabellen überhaupt nicht gesperrt werden müssen
  • Da --lock-tables Tabellen für jede Datenbank separat sperrt, kann mit dieser Option nicht garantiert werden, dass die Tabellen in der Sicherungsdatei zwischen den Datenbanken logisch konsistent sind
  • Tabellen in verschiedenen Datenbanken können in völlig unterschiedlichen Zuständen ausgegeben werden
  • Deaktivieren Sie die Option mit --skip-lock-tables
--log-error=name Protokolliert Warnungen und Fehler, indem sie an die benannte Datei angehängt werden
  • Standardmäßig erfolgt keine Protokollierung
--log-queries Wenn die Sicherung wiederhergestellt wird, protokolliert der Server bei eingeschalteter Protokollierung die Abfragen im allgemeinen und langsamen Abfrageprotokoll
  • Standardmäßig eingeschaltet; mit --skip-log-queries deaktivieren
--master-data[=#] Bewirkt, dass die Position und der Dateiname des Binärprotokolls an die Ausgabe angehängt werden
  • Dies ist nützlich, um einen primären Replikationsserver zu entleeren und eine Dump-Datei zu erstellen, die zum Einrichten eines anderen Servers als Replikat des primären Servers verwendet werden kann
  • Dies sind die Koordinaten des Primärservers, von denen aus die Replikation des Replikats beginnen soll, nachdem Sie die Dump-Datei in das Replikat geladen haben
  • Wenn die Option auf 1 (Standard) gesetzt ist, wird sie als Befehl CHANGE MASTER gedruckt; wenn sie auf 2 gesetzt ist, wird diesem Befehl ein Kommentarsymbol vorangestellt
  • Diese Option --master-data schaltet --lock-all-tables ein, es sei denn, es wird auch --single-transaction angegeben
  • Vor MariaDB 5.3 wurde zu Beginn des Dumps für kurze Zeit eine globale Lesesperre gesetzt – siehe [https://mariadb
  • com/kb/en/enhancements-for-start-transaction-with-consistent-snapshot/ Enhancements for START TRANSACTION WITH CONSISTENT SNAPSHOT] und die Option --single-transaction unten)
  • In allen Fällen erfolgt jede Aktion in den Protokollen genau zum Zeitpunkt des Dumps
  • Diese Option schaltet --lock-tables automatisch aus
  • In allen Fällen erfolgt jede Aktion in den Protokollen genau zum Zeitpunkt des Dumps
  • Es ist auch möglich, ein Replikat durch das Dumping eines vorhandenen Replikats des Primärreplikats einzurichten
  • Verwenden Sie dazu das folgende Verfahren für das vorhandene Replikat: 1
  • Stoppen Sie den SQL-Thread des Replikats und rufen Sie seinen aktuellen Status ab: mariadb> STOP SLAVE SQL_THREAD; mariadb> SHOW SLAVE STATUS; 2
  • Aus der Ausgabe der Anweisung SHOW SLAVE STATUS sind die Binärprotokollkoordinaten des Primärservers, von dem aus das neue Replikat mit der Replikation beginnen soll, die Werte der Felder Relay_Master_Log_File und Exec_Master_Log_Pos
  • Bezeichnen Sie diese Werte als „file_name“ und „file_pos.2“
  • Erstellen Sie einen Dump des Replikats: shell> mariadb-dump --master-data=2 --all-databases > dumpfile3
  • Starten Sie das Replikat neu: mariadb> START SLAVE;4
  • Laden Sie die Dump-Datei auf das neue Replikat: shell> mariadb < dumpfile5
  • Legen Sie auf dem neuen Replikat die Replikationskoordinaten auf die des zuvor erhaltenen Primärservers fest:mariadb> CHANGE MASTER TO MASTER_LOG_FILE = ´file_name´, MASTER_LOG_POS = file_pos;Die Anweisung CHANGE MASTER TO benötigt möglicherweise auch andere Parameter, wie z
  • B
  • MASTER_HOST, um das Replikat auf den richtigen Host des Primärservers zu verweisen
  • Fügen Sie bei Bedarf solche Parameter hinzu
--max-allowed-packet=# Die maximale Paketlänge, die an den Server gesendet oder von diesem empfangen werden kann
  • Der Höchstwert beträgt 1 GB
--max-statement-time=# Legt die maximale Zeit fest, die eine Anweisung ausgeführt werden kann, bevor sie vom Server wegen Zeitüberschreitung abgebrochen wird. (Standardwert ist 0 (keine Begrenzung))
--net-buffer-length=# Die anfängliche Puffergröße für die Client/Server-TCP/IP- und Socket-Kommunikation
  • Dies kann verwendet werden, um die Größe der Zeilen im Speicherauszug zu begrenzen
  • Beim Erstellen von mehrzeiligen INSERT-Anweisungen (wie mit der Option --extended-insert oder --opt) erstellt mariadb-dump Zeilen mit einer Länge von bis zu net_buffer_length
--no-autocommit Schließen Sie die INSERT-Anweisungen für jede gedumpte Tabelle in SET autocommit = 0- und COMMIT-Anweisungen ein
  • Standardmäßig aktiviert ab MariaDB 11.8, um ein schnelleres Laden von Daten durch InnoDB zu ermöglichen, wobei nur ein Undo-Log für den gesamten Vorgang geschrieben wird
-n, --no-create-db
-t, --no-create-info Keine CREATE TABLE-Anweisungen schreiben, die jede gesicherte Tabelle neu erstellen
-d, --no-data
Keine Zeilen für Engines ausgeben, die externe Daten verwalten (d
  • h. MRG_MyISAM, MRG_ISAM, CONNECT, OQGRAPH, Spider, VP, Federated)
  • Diese Option ist standardmäßig aktiviert
  • Wenn Sie Daten für diese Engines ausgeben möchten, müssen Sie --no-data-med=0 festlegen
--no-defaults Standardoptionen aus keiner Optionsdatei lesen
  • Muss als erstes Argument angegeben werden
-N, --no-set-names Die Anweisung SET NAMES unterdrücken
  • Dies hat die gleiche Wirkung wie --skip-set-charset
--opt Diese Option ist eine Kurzform
  • Sie ist dasselbe wie die Angabe von --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset und --disable-keys
  • Standardmäßig aktiviert, mit --skip-opt deaktivieren
  • Es sollte eine schnelle Speicherauszug-Operation durchgeführt und eine Speicherauszug-Datei erstellt werden, die schnell in einen MariaDB-Server neu geladen werden kann
  • Die Option --opt ist standardmäßig aktiviert
  • Verwenden Sie --skip-opt, um sie zu deaktivieren
  • Informationen zum selektiven Aktivieren oder Deaktivieren einer Teilmenge der von --opt betroffenen Optionen finden Sie in der Diskussion am Anfang dieses Abschnitts
--order-by-primary
--order-by-size Jede Tabelle wird nach ihrer Größe sortiert, die kleinste zuerst
  • Nützlich bei Verwendung von --single-transaction für Tabellen, die häufig abgeschnitten/geändert werden
  • Hier wird davon ausgegangen, dass kleinere Tabellen häufiger abgeschnitten werden
  • Wenn diese zuerst ausgegeben werden, verringert sich die Wahrscheinlichkeit, dass eine --single-transaction-Ausgabe mit der Meldung „Tabellendefinition wurde geändert, bitte Transaktion erneut versuchen“ fehlschlägt
  • Aus MariaDB 10.9.1
-j, --parallel=# Anzahl der parallel ausgeführten Dump-Tabellenjobs (nur zur Verwendung mit der Option --tab)
  • Erste Tests zeigen, dass die Leistung bei kleineren Dumps bis zu viermal gesteigert werden kann (Verkürzung der Dump-Zeit), wenn die Datenbank in den Arbeitsspeicher passt
  • Es gibt einen Punkt, an dem die Festplatte zum Engpass wird und das Hinzufügen weiterer paralleler Jobs keine bessere Leistung bringt
  • Aus MariaDB 11.4.1
-p[passwd], --password[=passwd Das Passwort, das bei der Verbindung mit dem Server verwendet werden soll
  • Wenn Sie die Kurzform der Option (-p) verwenden, darf zwischen der Option und dem Passwort kein Leerzeichen stehen
  • Wenn Sie den Passwortwert nach der Option --password oder -p in der Befehlszeile weglassen, fordert mariadb-dump zur Eingabe eines Passworts auf
  • Die Angabe eines Passworts in der Befehlszeile sollte als unsicher betrachtet werden
  • Sie können eine Optionsdatei verwenden, um die Angabe des Passworts in der Befehlszeile zu vermeiden
-W, --pipe Unter Windows über eine Named Pipe mit dem Server verbinden
  • Diese Option gilt nur, wenn der Server Named-Pipe-Verbindungen unterstützt
--plugin-dir Verzeichnis für clientseitige Plugins
-P num, --port=num Die für die Verbindung zu verwendende TCP/IP-Portnummer
--print-defaults
Diese Option ist nützlich, um große Tabellen zu entleeren
  • Sie zwingt „mariadb-dump“, Zeilen für eine Tabelle zeilenweise vom Server abzurufen und die Ergebnisse dann direkt an stdout zu senden, anstatt den gesamten Zeilensatz abzurufen und im Speicher zwischenzuspeichern, bevor er ausgegeben wird
  • Standardmäßig aktiviert, mit --skip-quick deaktivieren
-Q, --quote-names
Verwenden Sie REPLACE INTO-Anweisungen anstelle von INSERT INTO-Anweisungen
-r, --result-file=name Direkte Ausgabe in eine angegebene Datei
  • Diese Option sollte unter Windows verwendet werden, um zu verhindern, dass Zeilenumbruch-Zeichen „\n“ in Wagenrücklauf-/Zeilenumbruch-Sequenzen „\r\n“ konvertiert werden
  • Die Ergebnisdatei wird erstellt und ihr vorheriger Inhalt überschrieben, auch wenn beim Generieren des Speicherabbilds ein Fehler auftritt
-R, --routines Gespeicherte Routinen (procedures und functions) für die gesicherten Datenbanken in die Ausgabe einbeziehen
  • Für die Verwendung dieser Option ist das SELECT-Privileg für die Tabelle mysql.proc erforderlich
  • Die mit --routines generierte Ausgabe enthält die Anweisungen CREATE PROCEDURE und CREATE FUNCTION, um die Routinen neu zu erstellen
  • Diese Anweisungen enthalten jedoch keine Attribute wie die Zeitstempel für die Erstellung und Änderung der Routine
  • Das bedeutet, dass die Routinen beim erneuten Laden mit Zeitstempeln erstellt werden, die der Ladezeit entsprechen
  • Wenn Sie möchten, dass Routinen mit ihren ursprünglichen Zeitstempelattributen neu erstellt werden, verwenden Sie nicht --routines
  • Stattdessen sollten Sie den Inhalt der Tabelle mysql.proc direkt über ein MariaDB-Konto mit den entsprechenden Berechtigungen für die mysql-Datenbank ausgeben und neu laden
set-charset Fügen Sie „SET NAMES default_character_set“ zur Ausgabe hinzu, um den Zeichensatz festzulegen
  • Standardmäßig aktiviert; mit --skip-set-charset unterdrücken
-O, --set-variable=name Ändert den Wert einer Variablen
  • Beachten Sie, dass diese Option veraltet ist; Sie können Variablen direkt mit --variable-name=value setzen
--shared-memory-base-name Name des gemeinsam genutzten Speichers, der für Windows-Verbindungen verwendet werden soll, die gemeinsam genutzten Speicher für einen lokalen Server verwenden (gestartet mit der Option --shared-memory)
  • Groß-/Kleinschreibung beachten
  • Standardmäßig MYSQL
--single-transaction Diese Option sendet eine SQL-Anweisung START TRANSACTION an den Server, bevor Daten ausgegeben werden
  • Diese Option ist nur bei Transaktionstabellen wie InnoDB nützlich, da sie den konsistenten Zustand der Datenbank zum Zeitpunkt der Ausgabe von BEGIN ohne Blockierung von Anwendungen sichert
  • Bei Verwendung dieser Option sollten Sie bedenken, dass nur InnoDB-Tabellen in einem konsistenten Zustand gesichert werden
  • Die Funktion für Einzeltransaktionen hängt nicht nur davon ab, dass die Engine transaktional und zu REPEATABLE-READ fähig ist, sondern auch von START TRANSACTION WITH CONSISTENT SNAPSHOT
  • Bei anderen Speicher-Engines ist die Konsistenz des Speicherauszuges „nicht“ garantiert
  • Beispielsweise können Tabellen, die mit dieser Option als TokuDB-, MyISAM- oder MEMORY-Tabellen ausgegeben werden, ihren Status noch ändern
  • Während ein Einzeltransaktions-Dump ausgeführt wird, sollte keine andere Verbindung die folgenden Anweisungen verwenden, um eine gültige Dump-Datei (korrekte Tabelleninhalte und Binärprotokollkoordinaten) sicherzustellen: ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE oder TRUNCATE TABLE verwenden
  • Ein konsistenter Lesevorgang ist nicht von diesen Anweisungen isoliert, sodass die Verwendung dieser Anweisungen für eine zu entleerende Tabelle dazu führen kann, dass SELECT (ausgeführt von „mariadb-dump“, um die Tabelleninhalte abzurufen) falsche Inhalte erhält oder fehlschlägt
  • Die Optionen --single-transaction und --lock-tables schließen sich gegenseitig aus, da LOCK TABLES implizit einen Commit für alle ausstehenden Transaktionen auslöst
  • Diese Option deaktiviert also automatisch --lock-tables
  • Um große Tabellen zu sichern, sollten Sie die Option --single-transaction mit --quick kombinieren
--skip-add-locks Deaktiviert die Option --add-locks
--skip-comments Deaktiviert die Option --comments
--skip-disable-keys Deaktiviert die Option --disable-keys
--skip-extended-insert Deaktiviert die Option --extended-insert
--skip-opt Deaktiviert die Option --opt (deaktiviert --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset und --disable-keys)
--skip-quick Deaktiviert die Option --quick
--skip-quote-name Deaktiviert die Option --quote-names
--skip-set-charset Deaktiviert die Option --set-charset
--skip-triggers Deaktiviert die Option --triggers
--skip-tz-utc Deaktiviert die Option --tz-utc
-S name, --socket=name Für Verbindungen zu localhost die zu verwendende Unix-Socket-Datei oder unter Windows der Name der zu verwendenden Named Pipe
--ssl Aktiviert TLS
  • TLS ist auch ohne diese Option aktiviert, wenn bestimmte andere TLS-Optionen festgelegt sind
  • Die Option --ssl aktiviert standardmäßig nicht die Überprüfung des Serverzertifikats
  • Um das Serverzertifikat zu überprüfen, muss der Benutzer die Option --ssl-verify-server-cert angeben
--ssl-ca=name Definiert einen Pfad zu einer PEM-Datei, die ein oder mehrere X509-Zertifikate für vertrauenswürdige Zertifizierungsstellen (CAs) enthalten sollte, die für TLS verwendet werden können
--ssl-capath=name Definiert einen Pfad zu einem Verzeichnis, das eine oder mehrere PEM-Dateien enthält, die jeweils ein X509-Zertifikat für eine vertrauenswürdige Zertifizierungsstelle (CA) enthalten sollten, das für TLS verwendet werden kann
  • Diese Option erfordert, dass Sie den absoluten Pfad und keinen relativen Pfad verwenden
  • Das durch diese Option angegebene Verzeichnis muss über den Befehl openssl rehash ausgeführt werden
  • Weitere Informationen finden Sie unter Secure Connections Overview: Certificate Authorities (CAs)
  • Diese Option wird nur unterstützt, wenn der Client mit OpenSSL oder yaSSL erstellt wurde
  • Wenn der Client mit GnuTLS oder Schannel erstellt wurde, wird diese Option nicht unterstützt
  • Weitere Informationen darüber, welche Bibliotheken auf welchen Plattformen verwendet werden, finden Sie unter TLS and Cryptography Libraries Used by MariaDB
  • Diese Option impliziert die Option --ssl
--ssl-cert=name Definiert einen Pfad zur X509-Zertifikatsdatei, die für TLS verwendet werden soll
  • Diese Option erfordert, dass Sie den absoluten Pfad und keinen relativen Pfad verwenden
  • Diese Option impliziert die Option --ssl
--ssl-cipher=name Liste der zulässigen Chiffren oder Chiffren-Sammlungen, die für TLS verwendet werden sollen
  • Diese Option impliziert die Option --ssl
--ssl-crl=name Definiert einen Pfad zu einer PEM-Datei, die ein oder mehrere widerrufene X509-Zertifikate enthalten sollte, die für TLS verwendet werden sollen
--ssl-crlpath=name Definiert einen Pfad zu einem Verzeichnis, das eine oder mehrere PEM-Dateien enthält, die jeweils ein widerrufenes X509-Zertifikat enthalten sollten, das für TLS verwendet werden soll
  • Diese Option erfordert, dass Sie den absoluten Pfad und keinen relativen Pfad verwenden
  • Das durch diese Option angegebene Verzeichnis muss über den Befehl openssl rehash ausgeführt werden
  • Weitere Informationen finden Sie unter Secure Connections Overview: Certificate Revocation Lists (CRLs)
  • Diese Option wird nur unterstützt, wenn der Client mit OpenSSL erstellt wurde
  • Wenn der Client mit yaSSL, GnuTLS oder Schannel erstellt wurde, wird diese Option nicht unterstützt
  • Weitere Informationen darüber, welche Bibliotheken auf welchen Plattformen verwendet werden, finden Sie unter TLS and Cryptography Libraries Used by MariaDB
--ssl-key=name Definiert einen Pfad zu einer privaten Schlüsseldatei, die für TLS verwendet werden soll
  • Diese Option erfordert, dass Sie den absoluten Pfad und keinen relativen Pfad verwenden
  • Diese Option impliziert die Option --ssl
--ssl-verify-server-cert
-T, --tab=name Erzeugt tabulatorgetrennte Textdateien
  • Mit dieser Option erstellt mariadb-dump für jede ausgegebene Tabelle eine Datei tbl_name.sql, die die CREATE TABLE-Anweisung enthält, mit der die Tabelle erstellt wird, und eine Datei tbl_name.txt, die die Daten der Tabelle enthält
  • Der Optionswert ist das Verzeichnis, in das die Dateien geschrieben werden sollen
  • Hinweis: Diese Option kann nur verwendet werden, wenn mariadb-dump/ auf demselben Computer wie der mariadbd-Server ausgeführt wird
  • Sie müssen über die Berechtigung FILE verfügen und der Server muss über die Berechtigung zum Schreiben von Dateien in das von Ihnen angegebene Verzeichnis verfügen
  • Standardmäßig werden die .txt-Datendateien mit Tabulatorzeichen zwischen den Spaltenwerten und einem Zeilenumbruch am Ende jeder Zeile formatiert
  • Das Format kann mit den Optionen --fields-xxx und --lines-terminated-by explizit angegeben werden
  • Spaltenwerte werden in den Zeichensatz konvertiert, der mit der Option --default-character-set angegeben wurde
--tables Diese Option überschreibt die Option --databases (-B). „mariadb-dump“ betrachtet alle der Option folgenden Namensargumente als Tabellennamen
--tls-version=name Diese Option akzeptiert eine durch Kommas getrennte Liste von TLS-Protokollversionen
--triggers triggers für jede ausgegebene Tabelle in die Ausgabe einbeziehen
  • Diese Option ist standardmäßig aktiviert; deaktivieren Sie sie mit --skip-triggers
--tz-utc Diese Option ermöglicht das Entleeren und erneute Laden von TIMESTAMP-Spalten zwischen Servern in verschiedenen Zeitzonen. „mariadb-dump“ legt die Zeitzone für die Verbindung auf UTC fest und fügt der Entleerungsdatei SET TIME_ZONE=´+00:00´ hinzu
  • Ohne diese Option werden TIMESTAMP-Spalten in den Zeitzonen der Quell- und Zielserver ausgegeben und neu geladen, was dazu führen kann, dass sich die Werte ändern, wenn sich die Server in unterschiedlichen Zeitzonen befinden. --tz-utc schützt auch vor Änderungen aufgrund der Sommerzeit. --tz-utc ist standardmäßig aktiviert
  • Um es zu deaktivieren, verwenden Sie --skip-tz-utc
-u name, --user=name Der MariaDB-Benutzername, der beim Herstellen einer Verbindung zum Server verwendet werden soll
-v, --verbose Ausführlicher Modus
  • Es werden mehr Informationen darüber ausgegeben, was das Programm in verschiedenen Phasen tut
-V, --version Versionsinformationen ausgeben und beenden
-w cond, --where=cond Nur die Zeilen ausgeben, die durch die angegebene WHERE-Bedingung cond ausgewählt wurden
  • Die Bedingung muss in Anführungszeichen stehen, wenn sie Leerzeichen oder andere Zeichen enthält, die für Ihren Befehlsinterpreter spezifisch sind
  • Beispiele:--where=„user=´jimf´“-w„userid>1“-w"userid<1“
-X, --xml Eine Datenbank als wohlgeformtes XML ausgeben

Gruppenoptionen

Einige mariadb-dump-Optionen sind eine Kurzform für Gruppen anderer Optionen: * Die Verwendung von --opt ist dasselbe wie die Angabe von --add-drop-table, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick und --set-charset

  • Alle Optionen, für die --opt steht, sind standardmäßig aktiviert, da --opt standardmäßig aktiviert ist
  • Die Verwendung von --compact entspricht der Angabe der Optionen --skip-add-drop-table, --skip-add-locks, --skip-comments, --skip-disable-keys und --skip-set-charset

Um die Wirkung einer Gruppenoption rückgängig zu machen, verwenden Sie die Option --skip-xxx (--skip-opt oder --skip-compact)

  • Es ist auch möglich, nur einen Teil der Wirkung einer Gruppenoption auszuwählen, indem Sie ihr Optionen folgen lassen, die bestimmte Funktionen aktivieren oder deaktivieren
  • Hier einige Beispiele: * Um die Wirkung von --opt mit Ausnahme einiger Funktionen auszuwählen, verwenden Sie die Option --skip für jede Funktion
  • Um erweiterte Einfügungen und Speicherpufferung zu deaktivieren, verwenden Sie --opt --skip-extended-insert --skip-quick. (Tatsächlich ist --skip-extended-insert --skip-quick ausreichend, da --opt standardmäßig aktiviert ist.)
  • Um --opt für alle Funktionen außer Indexdeaktivierung und Tabellensperrung umzukehren, verwenden Sie --skip-opt --disable-keys --lock-tables

Wenn Sie die Wirkung einer Gruppenoption selektiv aktivieren oder deaktivieren, ist die Reihenfolge wichtig, da die Optionen von Anfang bis Ende verarbeitet werden

  • Beispielsweise hätte --disable-keys --lock-tables --skip-opt nicht die beabsichtigte Wirkung; es ist dasselbe wie --skip-opt allein

Sonderzeichen in Optionswerten

Einige Optionen, wie --lines-terminated-by, akzeptieren eine Zeichenkette

  • Die Zeichenkette kann bei Bedarf in Anführungszeichen gesetzt werden
  • Auf Unix-Systemen ist dies beispielsweise die Option, um Felder in doppelte Anführungszeichen zu setzen

--fields-enclosed-by='"'

Eine Alternative zur Angabe des Hexadezimalwerts eines Zeichens

  • Die folgende Syntax funktioniert beispielsweise auf jeder Plattform

--fields-enclosed-by=0x22