Questo è il comando mysqldbcopy che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, l'emulatore online di Windows o l'emulatore online di MAC OS
PROGRAMMA:
NOME
mysqldbcopy - Copia oggetti di database tra server
SINOSSI
mysqldbcopy [Opzioni] nome_db [:nuovo_nome_db]
DESCRIZIONE
Questa utility copia un database su un server di origine in un database su un server di destinazione.
Se i server di origine e di destinazione sono diversi, i nomi del database possono essere uguali o
diversi. Se i server di origine e di destinazione sono gli stessi, i nomi del database devono essere
diverso.
L'utilità accetta una o più coppie di database sulla riga di comando. Per nominare un database
coppia, uso nome_db:nuovo_nome_db sintassi per specificare i nomi di origine e destinazione
in modo esplicito. Se i nomi del database di origine e di destinazione sono gli stessi, nome_db può essere utilizzata
come stenografia per nome_db:nome_db.
Per impostazione predefinita, l'operazione copia tutti gli oggetti (tabelle, viste, trigger, eventi, procedure,
funzioni e concessioni a livello di database) e dati al server di destinazione. Ci sono
opzioni per disattivare la copia di uno o tutti gli oggetti e per non copiare i dati.
Per escludere oggetti specifici per nome, usa il pulsante --escludere opzione con un nome in db.*oggetto*
formato, oppure puoi fornire un modello di ricerca. Per esempio, --exclude=db1.trig1 esclude il
trigger singolo e --exclude=trigono_ esclude tutti gli oggetti da tutti i database che hanno un nome
che inizia con trigonometrica e ha un carattere successivo.
Per impostazione predefinita, l'utilità crea ogni tabella sul server di destinazione utilizzando lo stesso
motore di archiviazione come la tabella originale. Per sovrascrivere questo e specificare il motore di archiviazione su
utilizzare per tutte le tabelle create sul server di destinazione, utilizzare il pulsante --nuovo-motore-di-archiviazione opzione.
Se il server di destinazione supporta il nuovo motore, tutte le tabelle utilizzano quel motore.
Per specificare il motore di archiviazione da utilizzare per le tabelle per le quali il server di destinazione non lo fa
supportare il motore di archiviazione originale sul server di origine, utilizzare il --default-storage-engine
opzione.
. --nuovo-motore-di-archiviazione l'opzione ha la precedenza su --default-storage-engine se entrambi lo sono
dato.
Se l' --nuovo-motore-di-archiviazione or --default-storage-engine l'opzione è data e il
il server di destinazione non supporta il motore di archiviazione specificato, viene emesso un avviso e
viene invece utilizzata l'impostazione del motore di archiviazione predefinita del server.
Per impostazione predefinita, l'operazione utilizza uno snapshot coerente per leggere i database di origine. Per
modificare la modalità di blocco, utilizzare il --blocco opzione con un valore di tipo di blocco. Usa un valore
of senza serrature disattivare del tutto il blocco oppure blocca tutto utilizzare solo i blocchi tabella. Il
il valore predefinito è istantanea. Inoltre, l'utility utilizza i blocchi WRITE per bloccare il
tabelle di destinazione durante la copia.
È possibile includere istruzioni di replicazione per copiare i dati tra un master e uno slave o
tra schiavi. Il --rpl l'opzione consente di selezionare dalla seguente replica
dichiarazioni da includere nell'esportazione.
· Mastercard
Includi il CAMBIAMENTO MASTER istruzione per avviare un nuovo slave con il server corrente
che agisce come master. Esegue le istruzioni slave STOP e START appropriate.
. STOP SCHIAVO l'istruzione viene eseguita all'inizio della copia e CAMBIAMENTO MASTER
seguito dal ENTRA IN SCHIAVO le istruzioni vengono eseguite dopo la copia.
· schiavo
Includi il CAMBIAMENTO MASTER istruzione per avviare un nuovo slave utilizzando il server corrente
informazioni master. Questo esegue le istruzioni slave STOP e START appropriate. Il
L'istruzione STOP SLAVE viene eseguita all'inizio della copia e CAMBIAMENTO MASTER
seguito dal ENTRA IN SCHIAVO le dichiarazioni seguono il testo.
Per includere l'utente di replica nel CAMBIAMENTO MASTER affermazione, usa il --rpl-utente opzione
per specificare l'utente e la password. Se questa opzione viene omessa, l'utilità tenta di
identificare l'utente della replica. Nel caso in cui ci siano più candidati o l'utente
richiede una password, l'utilità si interrompe con un errore.
Se si tenta di copiare i database su un server con GTID abilitati (GTID_MODE = ON), un
verrà generato un avviso se la copia non include tutti i database. Questo perché
Le istruzioni GTID generate includono i GTID per tutti i database e non solo per quei database
nell'esportazione.
L'utilità genererà anche un avviso se si copiano i database su un server abilitato GTID
ma usa il --skip-gtid opzione.
Per sfruttare al meglio i GTID, dovresti copiare tutti i database sul server con
--tutti opzione.
VERSIONI
mysqldbcopy accetta le seguenti opzioni della riga di comando:
· --aiuto
Visualizza un messaggio di aiuto ed esci.
· --default-storage-engine=
Il motore da utilizzare per le tabelle se il server di destinazione non supporta l'originale
motore di archiviazione sul server di origine.
· --destinazione=
Informazioni di connessione per il server di destinazione nel formato:
<Utente>[:passwd>]@host>[:porto>][:presa di corrente>] ologin-percorso>[:porto>][:presa di corrente>]
(Dove è facoltativo e O devono essere forniti).
· --exclude= , -X
Escludere uno o più oggetti dall'operazione utilizzando un nome specifico come
db1.t1 o un modello di ricerca. Usa questa opzione più volte per specificare più
esclusioni. Per impostazione predefinita, i modelli utilizzano COME corrispondenza. Con il --regexp opzione, modelli
uso REGEXP corrispondenza.
Questa opzione non si applica alle sovvenzioni.
· --forza
Eliminare ogni database da copiare se esiste prima di copiare qualsiasi cosa al suo interno. Senza
questa opzione, si verifica un errore se si tenta di copiare oggetti in un database esistente.
· --locking=
Scegli il tipo di blocco per l'operazione. I valori di blocco consentiti sono senza serrature (non usare
eventuali blocchi da tavolo), blocca tutto (usa i blocchi della tabella ma nessuna transazione e nessuna coerenza
leggi e istantanea (lettura coerente utilizzando una singola transazione). L'impostazione predefinita è
istantanea.
· --new-storage-engine=
Il motore da utilizzare per tutte le tabelle create sul server di destinazione.
· --silenzioso, -q
Disattiva tutti i messaggi per un'esecuzione silenziosa.
· --regexp, --basic-regexp, -G
Esegui le corrispondenze del modello usando il REGEXP operatore. L'impostazione predefinita è usare COME da
corrispondenza.
· --rpl= , --replica=
Includi informazioni sulla replica. I valori consentiti sono Mastercard (includi il CAMBIAMENTO
MASTER istruzione utilizzando il server di origine come master), schiavo (includi il CAMBIAMENTO
MASTER istruzione utilizzando le informazioni principali del server di destinazione), e entrambi (Include
, il Mastercard e schiavo opzioni ove applicabile).
· --rpl-user=
L'utente e la password per il requisito utente di replicazione nel formato:
<Utente>[:password>] ologin-percorso>. Ad esempio rpl:passwd Predefinito = Nessuno.
· l --skip-gtid
Salta la creazione e l'esecuzione delle istruzioni GTID durante l'operazione di copia.
· --Tutti
Copiare tutti i database sul server.
· --salta=
Specificare gli oggetti da saltare nell'operazione come un elenco separato da virgole (senza spazi).
I valori consentiti sono CREARE_DB, DATA, EVENTI, FUNZIONI, BORSE, PROCEDURE, TABELLE,
TRIGGERe VISUALIZZAZIONI.
· --source=
Informazioni di connessione per il server di destinazione nel formato:
<Utente>[:passwd>]@host>[:porto>][:presa di corrente>] ologin-percorso>[::porto>][::presa di corrente>]
(Dove è facoltativo e O devono essere forniti).
· --thread
Utilizza più thread per la copia tra server. Il valore predefinito è 1.
· --verboso, -v
Specifica la quantità di informazioni da visualizzare. Usa questa opzione più volte per aumentare
la quantità di informazioni. Per esempio, -v = verboso, -vv = più prolisso, -vvv =
eseguire il debug.
· --versione
Visualizza le informazioni sulla versione ed esci.
NOTE
È necessario fornire i parametri di connessione (utente, host, password e così via) per un account
che dispone dei privilegi appropriati per accedere a tutti gli oggetti nell'operazione.
Per copiare tutti gli oggetti da una sorgente, l'utente deve disporre dei seguenti privilegi: SELEZIONA e MOSTRARE
VISTA per il database e SELEZIONA per il database MySQL.
Per copiare tutti gli oggetti in una destinazione, l'utente deve disporre dei seguenti privilegi: CREA per l'
Banca dati, SUPER (quando la registrazione binaria è abilitata) per procedure e funzioni, e GRANT
OPZIONE per copiare le sovvenzioni.
I privilegi effettivi richiesti possono variare da un'installazione all'altra a seconda dell'
privilegi di sicurezza presenti e se il database contiene determinati oggetti come
visualizzazioni o eventi e se la registrazione binaria è abilitata.
. --nuovo-motore-di-archiviazione e --default-storage-engine le opzioni si applicano a tutte le destinazioni
tabelle nell'operazione.
Alcune combinazioni di opzioni potrebbero causare errori durante l'operazione. Ad esempio,
l'eliminazione delle tabelle ma non delle viste potrebbe causare un errore quando la vista viene copiata.
. --rpl l'opzione non è valida per la copia dei database sullo stesso server. Verrà visualizzato un errore
generato.
Durante la copia dei dati e l'inclusione dei comandi GTID, è possibile che si verifichi un errore simile a
"GTID_PURGED può essere impostato solo quando GTID_EXECUTED è vuoto". Ciò si verifica perché il
il server di destinazione non è in uno stato di replica pulita. Per alleviare questo problema, puoi
emettere un comando "RESET MASTER" sulla destinazione prima di eseguire la copia.
La clonazione di database che contengono vincoli di chiave esterna non modifica il vincolo in
la tabella clonata. Ad esempio, se la tabella db1.t1 ha un vincolo di chiave esterna sulla tabella
db1.t2, quando db1 viene clonato in db2, la tabella db2.t1 avrà un vincolo di chiave esterna su
db1.t2.
Il percorso degli strumenti client MySQL dovrebbe essere incluso nella variabile d'ambiente PATH in
per utilizzare il meccanismo di autenticazione con i percorsi di accesso. Ciò consentirà all'utilità di
utilizzare gli strumenti my_print_defaults necessari per leggere i valori del percorso di accesso dal
file di configurazione del login (.mylogin.cnf).
Se un identificatore di database specificato come argomento contiene caratteri speciali o è un
parola riservata, allora deve essere opportunamente citata con apici inversi (`). A turno, nomi
citati con apici inversi devono anche essere citati con virgolette singole o doppie a seconda del
sistema operativo, ovvero (") in Windows o (') in sistemi non Windows, affinché il
utilità per leggere gli identificatori con apice inverso come un singolo argomento. Ad esempio, per copiare un
database con il nome strano`db.name con altro: strano`db.name, la coppia di database deve essere
specificato utilizzando la seguente sintassi (in sistemi non Windows):
'`strano``db.name`:`altro:strano``db.name`'.
ESEMPI
L'esempio seguente mostra come utilizzare l'utilità per copiare un database denominato
util_test in un nuovo database denominato util_test_copy sullo stesso server:
$ mysqldbcopy \
--source=root:pass@localhost:3310:/test123/mysql.sock \
--destinazione=root:pass@localhost:3310:/test123/mysql.sock \
util_test:util_test_copy
# Sorgente su localhost: ... connesso.
# Destinazione su localhost: ... connesso.
# Copia del database util_test rinominato come util_test_copy
# Copia della TABELLA util_test.t1
# Copia dei dati della tabella.
# Copia della TABELLA util_test.t2
# Copia dei dati della tabella.
# Copia della TABELLA util_test.t3
# Copia dei dati della tabella.
# Copia della TABELLA util_test.t4
# Copia dei dati della tabella.
# Copia VIEW util_test.v1
# Copia di TRIGGER util_test.trg
# Copia della PROCEDURA util_test.p1
# Copia della FUNZIONE util_test.f1
# Copia dell'EVENTO util_test.e1
# Copia GRANTS da util_test
#...fatto.
Se il database da copiare non contiene solo tabelle InnoDB e si desidera garantire
integrità dei dati copiati bloccando le tabelle durante la fase di lettura, aggiungere un
--locking=blocca tutto opzione al comando:
$ mysqldbcopy \
--source=root:pass@localhost:3310:/test123/mysql.sock \
--destinazione=root:pass@localhost:3310:/test123/mysql.sock \
util_test:util_test_copy --locking=blocca-tutto
# Sorgente su localhost: ... connesso.
# Destinazione su localhost: ... connesso.
# Copia del database util_test rinominato come util_test_copy
# Copia della TABELLA util_test.t1
# Copia dei dati della tabella.
# Copia della TABELLA util_test.t2
# Copia dei dati della tabella.
# Copia della TABELLA util_test.t3
# Copia dei dati della tabella.
# Copia della TABELLA util_test.t4
# Copia dei dati della tabella.
# Copia VIEW util_test.v1
# Copia di TRIGGER util_test.trg
# Copia della PROCEDURA util_test.p1
# Copia della FUNZIONE util_test.f1
# Copia dell'EVENTO util_test.e1
# Copia GRANTS da util_test
#...fatto.
Per copiare uno o più database da un master a uno slave, è possibile utilizzare il seguente comando
per copiare i database. Utilizzare il master come origine e lo slave come destinazione:
$ mysqldbcopy --source=root@localhost:3310 \
--destinazione=root@localhost:3311 test123 --rpl=master \
--rpl-user=rpl
# Sorgente su localhost: ... connesso.
# Destinazione su localhost: ... connesso.
# Sorgente su localhost: ... connesso.
# Arresto dello schiavo
# Copia del database test123
# Copia della TABELLA test123.t1
# Copia dei dati per la TABELLA test123.t1
# Connessione al server corrente come master
# Avvio dello schiavo
#...fatto.
Per copiare un database da uno slave a un altro collegato allo stesso master, è possibile utilizzare
seguente comando utilizzando lo slave con il database da copiare come origine e il
slave in cui il database deve essere copiato come destinazione:
$ mysqldbcopy --source=root@localhost:3311 \
--destinazione=root@localhost:3312 test123 --rpl=slave \
--rpl-user=rpl
# Sorgente su localhost: ... connesso.
# Destinazione su localhost: ... connesso.
# Sorgente su localhost: ... connesso.
# Arresto dello schiavo
# Copia del database test123
# Copia della TABELLA test123.t1
# Copia dei dati per la TABELLA test123.t1
# Connessione al master del server corrente
# Avvio dello schiavo
#...fatto.
COPYRIGHT
Utilizzare mysqldbcopy online utilizzando i servizi onworks.net