GoGPT Best VPN GoSearch

OnWorks-Favicon

mysqldbcopy – Online in der Cloud

Führen Sie mysqldbcopy im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl mysqldbcopy, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


mysqldbcopy – Datenbankobjekte zwischen Servern kopieren

ZUSAMMENFASSUNG


mysqldbcopy [Optionen] Datenbankname [:new_db_name]

BESCHREIBUNG


Dieses Dienstprogramm kopiert eine Datenbank auf einem Quellserver in eine Datenbank auf einem Zielserver.
Wenn Quell- und Zielserver unterschiedlich sind, können die Datenbanknamen identisch sein oder
anders. Wenn Quell- und Zielserver identisch sind, müssen die Datenbanknamen identisch sein
anders.

Das Dienstprogramm akzeptiert ein oder mehrere Datenbankpaare in der Befehlszeile. Um eine Datenbank zu benennen
koppeln, verwenden Datenbankname:neuer_Datenbankname Syntax zur Angabe der Quell- und Zielnamen
ausdrücklich. Wenn die Namen der Quell- und Zieldatenbank identisch sind, Datenbankname kann verwendet werden
als Abkürzung für Datenbankname:Datenbankname.

Standardmäßig kopiert der Vorgang alle Objekte (Tabellen, Ansichten, Trigger, Ereignisse, Prozeduren,
Funktionen und Gewährungen auf Datenbankebene) und Daten an den Zielserver. Es gibt
Optionen zum Deaktivieren des Kopierens einiger oder aller Objekte sowie zum Nichtkopieren der Daten.

Um bestimmte Objekte nach Namen auszuschließen, verwenden Sie die --ausschließen Option mit einem Namen in db.*obj*
Format eingeben oder ein Suchmuster angeben. Zum Beispiel, --exclude=db1.trig1 schließt die
Einzelauslöser und --exclude=trig_ schließt alle Objekte aus allen Datenbanken aus, die einen Namen haben
das mit trig beginnt und einen folgenden Charakter hat.

Standardmäßig erstellt das Dienstprogramm jede Tabelle auf dem Zielserver mit derselben Tabelle
Speicher-Engine wie die Originaltabelle. Um dies zu überschreiben und die Speicher-Engine anzugeben
Verwenden Sie für alle auf dem Zielserver erstellten Tabellen die --new-storage-engine .
Wenn der Zielserver die neue Engine unterstützt, verwenden alle Tabellen diese Engine.

Zum Angeben der Speicher-Engine, die für Tabellen verwendet werden soll, für die der Zielserver dies nicht tut
Um die ursprüngliche Speicher-Engine auf dem Quellserver zu unterstützen, verwenden Sie die --default-storage-engine
.

Die --new-storage-engine Option hat Vorrang --default-storage-engine wenn beides sind
gegeben.

Besitzt das --new-storage-engine or --default-storage-engine Option ist gegeben und die
Wenn der Zielserver die angegebene Speicher-Engine nicht unterstützt, wird eine Warnung ausgegeben
Stattdessen wird die Standard-Speicher-Engine-Einstellung des Servers verwendet.

Standardmäßig verwendet der Vorgang einen konsistenten Snapshot zum Lesen der Quelldatenbanken. Zu
Um den Sperrmodus zu ändern, verwenden Sie die --Verriegelung Option mit einem Sperrtypwert. Verwenden Sie einen Wert
of keine Schlösser um die Sperre ganz auszuschalten oder Sperre Alle nur Tabellensperren zu verwenden. Der
Standardwert ist Schnappschuss. Darüber hinaus verwendet das Dienstprogramm WRITE-Sperren zum Sperren
Zieltabellen während des Kopiervorgangs.

Sie können Replikationsanweisungen zum Kopieren von Daten zwischen einem Master und einem Slave einschließen
zwischen Sklaven. Der --rpl Mit der Option können Sie aus den folgenden Replikationen auswählen
Anweisungen, die in den Export einbezogen werden sollen.

· führen zu

Umfassen die ÄNDERN MASTER Anweisung, um einen neuen Slave mit dem aktuellen Server zu starten
fungiert als Meister. Dadurch werden die entsprechenden STOP- und START-Slave-Anweisungen ausgeführt.
Die STOP SLAVE Die Anweisung wird zu Beginn der Kopie ausgeführt und die ÄNDERN MASTER
gefolgt von der Starte das Spiel SLAVE Anweisungen werden nach dem Kopieren ausgeführt.

· Sklave

Umfassen die ÄNDERN MASTER Anweisung, um einen neuen Slave unter Verwendung des aktuellen Servers zu starten
Stamminformationen. Dadurch werden die entsprechenden STOP- und START-Slave-Anweisungen ausgeführt. Der
Die STOP SLAVE-Anweisung wird zu Beginn des Kopiervorgangs ausgeführt und die ÄNDERN MASTER
gefolgt von der Starte das Spiel SLAVE Aussagen folgen der Kopie.

Um den Replikationsbenutzer in die einzuschließen ÄNDERN MASTER Anweisung, verwenden Sie die --rpl-user ganz ohne irgendetwas tun oder drücken zu müssen.
um den Benutzer und das Passwort anzugeben. Wenn diese Option weggelassen wird, versucht das Dienstprogramm dies
Identifizieren Sie den Replikationsbenutzer. Für den Fall, dass es mehrere Kandidaten oder den Benutzer gibt
ein Passwort erfordert, bricht das Dienstprogramm mit einem Fehler ab.

Wenn Sie versuchen, Datenbanken auf einem Server mit aktivierten GTIDs zu kopieren (GTID_MODE = ON), a
Es wird eine Warnung generiert, wenn die Kopie nicht alle Datenbanken enthält. Dies liegt daran, dass die
Die generierten GTID-Anweisungen umfassen die GTIDs für alle Datenbanken und nicht nur für diese Datenbanken
im Export.

Das Dienstprogramm generiert außerdem eine Warnung, wenn Sie Datenbanken auf einen GTID-fähigen Server kopieren
aber benutze die --skip-gtid .

Um GTIDs optimal zu nutzen, sollten Sie alle Datenbanken auf dem Server mit kopieren
--alle .
OPTIONAL

mysqldbcopy akzeptiert die folgenden Befehlszeilenoptionen:

· --Hilfe

Eine Hilfemeldung anzeigen und beenden.

· --default-storage-engine=

Die für Tabellen zu verwendende Engine, wenn der Zielserver das Original nicht unterstützt
Speicher-Engine auf dem Quellserver.

· --destination=

Verbindungsinformationen für den Zielserver im Format:
<Benutzer>[:passwd>]@Gastgeber>[:port >>:Buchse>] oderLogin-Pfad>[:port >>:Buchse>]
(Wo ist optional und entweder oder muss zur Verfügung gestellt werden).

· --exclude= , -X

Schließen Sie ein oder mehrere Objekte von der Operation aus, indem Sie entweder einen bestimmten Namen verwenden, z. B
db1.t1 oder ein Suchmuster. Verwenden Sie diese Option mehrmals, um mehrere anzugeben
Ausschlüsse. Standardmäßig werden Muster verwendet LIKE passend. Mit dem --regexp Option, Muster
- REGEXP passend.

Diese Option gilt nicht für Zuschüsse.

· --Macht

Löschen Sie jede zu kopierende Datenbank, sofern vorhanden, bevor Sie etwas hineinkopieren. Ohne
Bei Verwendung dieser Option tritt ein Fehler auf, wenn Sie versuchen, Objekte in eine vorhandene Datenbank zu kopieren.

· --locking=

Wählen Sie den Sperrtyp für den Vorgang. Zulässige Sperrwerte sind keine Schlösser (verwende nicht
eventuelle Tabellensperren), Sperre Alle (Verwenden Sie Tabellensperren, aber keine Transaktion und keine Konsistenz
lesen und Schnappschuss (konsistentes Lesen mit einer einzigen Transaktion). Die Standardeinstellung ist
Schnappschuss.

· --new-storage-engine=

Die Engine, die für alle auf dem Zielserver erstellten Tabellen verwendet werden soll.

· --ruhig, -q

Deaktivieren Sie alle Nachrichten für die stille Ausführung.

· --regexp, --basic-regexp, -G

Führen Sie Musterabgleiche mit dem REGEXP Operator. Die Standardeinstellung ist zu verwenden LIKE für
passend.

· --rpl= , --replication=

Fügen Sie Replikationsinformationen hinzu. Zulässige Werte sind führen zu (umfassen die ÄNDERN
MASTER Anweisung, die den Quellserver als Master verwendet), Sklave (umfassen die ÄNDERN
MASTER Anweisung unter Verwendung der Masterinformationen des Zielservers) und beide (Beinhaltet
die führen zu und Sklave Optionen, sofern zutreffend).

· --rpl-user=

Der Benutzer und das Passwort für die Replikationsbenutzeranforderung im Format:
<Benutzer>[:Passwort>] oderLogin-Pfad>. Beispiel: rpl:passwd Standard = Keine.

· l --skip-gtid

Überspringen Sie die Erstellung und Ausführung von GTID-Anweisungen während des Kopiervorgangs.

· --alle

Kopieren Sie alle Datenbanken auf den Server.

· --skip=

Geben Sie Objekte an, die im Vorgang übersprungen werden sollen, als durch Kommas getrennte Liste (ohne Leerzeichen).
Zulässige Werte sind CREATE_DB, DATEN, EVENTS, FUNKTIONEN, STIPENDIEN, VERFAHREN, TISCHE,
LÖST AUS und ANSICHTEN.

· --source=

Verbindungsinformationen für den Zielserver im Format:
<Benutzer>[:passwd>]@Gastgeber>[:port >>:Buchse>] oderLogin-Pfad>[::port >][::Buchse>]
(Wo ist optional und entweder oder muss zur Verfügung gestellt werden).

· --threads

Verwenden Sie mehrere Threads für serverübergreifendes Kopieren. Der Standardwert ist 1.

· --verbose, -v

Geben Sie an, wie viele Informationen angezeigt werden sollen. Verwenden Sie diese Option mehrmals, um zu erhöhen
die Informationsmenge. Zum Beispiel, -v = ausführlich, -vv = ausführlicher, -vvv =
debuggen.

· --Ausführung

Versionsinformationen anzeigen und beenden.
ANMERKUNG

Sie müssen Verbindungsparameter (Benutzer, Host, Passwort usw.) für ein Konto angeben
der über die entsprechenden Berechtigungen für den Zugriff auf alle Objekte im Vorgang verfügt.

Um alle Objekte aus einer Quelle zu kopieren, muss der Benutzer über die folgenden Berechtigungen verfügen: SELECT und SHOW
ENTDECKE für die Datenbank und SELECT für die MySQL-Datenbank.

Um alle Objekte an ein Ziel zu kopieren, muss der Benutzer über die folgenden Berechtigungen verfügen: CREATE für die
Datenbank, SUPER (wenn die binäre Protokollierung aktiviert ist) für Prozeduren und Funktionen und GRANT
zur Auswahl Zuschüsse kopieren.

Die tatsächlich erforderlichen Berechtigungen können je nach Installation unterschiedlich sein
vorhandene Sicherheitsrechte und ob die Datenbank bestimmte Objekte enthält, z
Ansichten oder Ereignisse und ob die binäre Protokollierung aktiviert ist.

Die --new-storage-engine und --default-storage-engine Die Optionen gelten für alle Ziele
Tabellen im Betrieb.

Einige Optionskombinationen können während des Vorgangs zu Fehlern führen. Zum Beispiel,
Das Entfernen von Tabellen, aber nicht von Ansichten kann zu einem Fehler führen, wenn die Ansicht kopiert wird.

Die --rpl Die Option ist nicht für das Kopieren von Datenbanken auf demselben Server gültig. Ein Fehler wird sein
generiert.

Beim Kopieren von Daten und Einbinden der GTID-Befehle kann ein Fehler ähnlich dem folgenden auftreten
„GTID_PURGED kann nur gesetzt werden, wenn GTID_EXECUTED leer ist.“ Dies geschieht, weil die
Der Zielserver befindet sich nicht in einem sauberen Replikationsstatus. Um dieses Problem zu lindern, können Sie Folgendes tun:
Geben Sie einen „RESET MASTER“-Befehl auf dem Ziel aus, bevor Sie die Kopie ausführen.

Durch das Klonen von Datenbanken, die Fremdschlüsseleinschränkungen enthalten, wird die Einschränkung in nicht geändert
die geklonte Tabelle. Wenn beispielsweise die Tabelle db1.t1 eine Fremdschlüsseleinschränkung für die Tabelle aufweist
db1.t2: Wenn db1 auf db2 geklont wird, gilt für die Tabelle db2.t1 eine Fremdschlüsseleinschränkung
db1.t2.

Der Pfad zu den MySQL-Client-Tools sollte in der Umgebungsvariable PATH enthalten sein
um den Authentifizierungsmechanismus mit Anmeldepfaden zu verwenden. Dadurch kann das Dienstprogramm
Verwenden Sie die my_print_defaults-Tools, die erforderlich sind, um die Login-Pfadwerte aus dem
Anmeldekonfigurationsdatei (.mylogin.cnf).

Wenn ein als Argument angegebener Datenbankbezeichner Sonderzeichen enthält oder ein ist
Reserviertes Wort, dann muss es entsprechend mit Backticks in Anführungszeichen gesetzt werden (`). Im Gegenzug Namen
Mit Backticks zitierte Wörter müssen je nach Text auch in einfache oder doppelte Anführungszeichen gesetzt werden
Betriebssystem, also (") in Windows oder (') in Nicht-Windows-Systemen, damit die
Dienstprogramme zum Lesen von Backtick-Anführungszeichen als einzelnes Argument. Um beispielsweise a zu kopieren
Datenbank mit dem Namen seltsamer Datenbankname mit other:seltsamer Datenbankname, das Datenbankpaar muss sein
wird mit der folgenden Syntax angegeben (in Nicht-Windows):
''weird``db.name`:`other:weird``db.name`'.
Beispiele:

Das folgende Beispiel zeigt, wie Sie mit dem Dienstprogramm eine Datenbank mit dem Namen kopieren
util_test in eine neue Datenbank namens util_test_copy auf demselben Server:

$ mysqldbcopy \
--source=root:pass@localhost:3310:/test123/mysql.sock \
--destination=root:pass@localhost:3310:/test123/mysql.sock \
util_test:util_test_copy
# Quelle auf localhost: ... verbunden.
# Ziel auf localhost: ... verbunden.
# Kopieren der Datenbank util_test, umbenannt in util_test_copy
# Tabelle util_test.t1 kopieren
# Tabellendaten kopieren.
# Tabelle util_test.t2 kopieren
# Tabellendaten kopieren.
# Tabelle util_test.t3 kopieren
# Tabellendaten kopieren.
# Tabelle util_test.t4 kopieren
# Tabellendaten kopieren.
# Kopieren von VIEW util_test.v1
# Kopieren von TRIGGER util_test.trg
# PROCEDURE util_test.p1 kopieren
# Kopieren von FUNCTION util_test.f1
# Kopieren von EVENT util_test.e1
# Kopieren von GRANTS aus util_test
#...getan.

Wenn die zu kopierende Datenbank nicht nur InnoDB-Tabellen enthält und Sie dies sicherstellen möchten
Datenintegrität der kopierten Daten durch Sperren der Tabellen während des Leseschritts, fügen Sie a hinzu
--locking=alles sperren Option zum Befehl:

$ mysqldbcopy \
--source=root:pass@localhost:3310:/test123/mysql.sock \
--destination=root:pass@localhost:3310:/test123/mysql.sock \
util_test:util_test_copy --locking=lock-all
# Quelle auf localhost: ... verbunden.
# Ziel auf localhost: ... verbunden.
# Kopieren der Datenbank util_test, umbenannt in util_test_copy
# Tabelle util_test.t1 kopieren
# Tabellendaten kopieren.
# Tabelle util_test.t2 kopieren
# Tabellendaten kopieren.
# Tabelle util_test.t3 kopieren
# Tabellendaten kopieren.
# Tabelle util_test.t4 kopieren
# Tabellendaten kopieren.
# Kopieren von VIEW util_test.v1
# Kopieren von TRIGGER util_test.trg
# PROCEDURE util_test.p1 kopieren
# Kopieren von FUNCTION util_test.f1
# Kopieren von EVENT util_test.e1
# Kopieren von GRANTS aus util_test
#...getan.

Um eine oder mehrere Datenbanken von einem Master auf einen Slave zu kopieren, können Sie den folgenden Befehl verwenden
um die Datenbanken zu kopieren. Verwenden Sie den Master als Quelle und den Slave als Ziel:

$ mysqldbcopy --source=root@localhost:3310 \
--destination=root@localhost:3311 test123 --rpl=master \
--rpl-user=rpl
# Quelle auf localhost: ... verbunden.
# Ziel auf localhost: ... verbunden.
# Quelle auf localhost: ... verbunden.
# Sklave stoppen
# Datenbank test123 kopieren
# TABLE test123.t1 kopieren
# Kopieren von Daten für TABLE test123.t1
# Verbindung zum aktuellen Server als Master herstellen
# Startslave
#...getan.

Um eine Datenbank von einem Slave auf einen anderen zu kopieren, der an denselben Master angeschlossen ist, können Sie die verwenden
Folgender Befehl verwendet den Slave mit der zu kopierenden Datenbank als Quelle und der
Slave, auf den die Datenbank als Ziel kopiert werden muss:

$ mysqldbcopy --source=root@localhost:3311 \
--destination=root@localhost:3312 test123 --rpl=slave \
--rpl-user=rpl
# Quelle auf localhost: ... verbunden.
# Ziel auf localhost: ... verbunden.
# Quelle auf localhost: ... verbunden.
# Sklave stoppen
# Datenbank test123 kopieren
# TABLE test123.t1 kopieren
# Kopieren von Daten für TABLE test123.t1
# Verbindung zum Master des aktuellen Servers herstellen
# Startslave
#...getan.

URHEBERRECHT


Verwenden Sie mysqldbcopy online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad




×
Werbung
❤ ️Hier einkaufen, buchen oder kaufen – kostenlos, damit die Dienste kostenlos bleiben.