mysqlhotcopy
mysqlhotcopy
è uno script Perl scritto originariamente da Tim Bunce. Utilizza i comandi FLUSH TABLES, LOCK TABLES e cp o scp
per creare il backup di un database. E' un modo veloce per ottenere il backup di un database o di singole tabelle, ma deve essere eseguito sulla stessa macchina in cui si trovano le directory dei database. mysqlhotcopy
funziona solo su tabelle MyISAM e ARCHIVE. Funziona su Unix e NetWare.
Per usare mysqlhotcopy
occorre avere accesso ai file che compongono le tabelle che si desidera copiare, il privilegio SELECT sulle stesse tabelle, il privilegio RELOAD (per poter eseguire FLUSH TABLES) e il privilegio LOCK TABLES (per poter porre un lock sulle tabelle).
shell> mysqlhotcopy nome_db [/percorso/della/nuova/directory] shell> mysqlhotcopy nome_db_1 ... db_name_n /percorso/della/nuova/directory
Per fare il backup delle tabelle, all'interno di un database, che corrispondono a una certa espressione regolare:
shell> mysqlhotcopy nome_db./regex/
L'espressione regolare può essere invertito aggiungendo una tilde (“~
”):
shell> mysqlhotcopy nome_db./~regex/
mysqlhotcopy
supporta le opzioni seguenti, che possono essere specificate dalla riga di comando o nei file di configurazione, nei gruppi [mysqlhotcopy
] e
[client
].
--help
,-?
- Mostra un messaggio di help e termina.
--addtodest
- Non rinomina la directory di destinazione (se esiste): vi aggiunge i file.
--allowold
- Non abortisce se la directory di destinazione esiste; la rinomina aggiungendo il suffisso _old.
--checkpoint=nome_db.nome_tab
- Inserisce dei checkpoint nel database specificato
nome_db
e nella tabellanome_tab
.
- Inserisce dei checkpoint nel database specificato
--chroot=percorso
- Directory base della cella chroot nella quale opera mysqld. Il valore del percorso dovrebbe corrispondere a quello dell'opzione
--chroot
passata a mysqld.
- Directory base della cella chroot nella quale opera mysqld. Il valore del percorso dovrebbe corrispondere a quello dell'opzione
--debug
- Abilita il debug.
--dryrun
,-n
- Stampa le azioni che sta eseguendo.
--flushlog
- Svuota i log dopo aver posto un lock su tutte le tabelle.
--host=nome_host
,-h nome_host
- Il nome host dell'host locale per effettuare una connessione TCP/IP al server locale. Per default, la connessione è verso localhost e usa un file di socket Unix.
--keepold
- Non cancella la destinazione precedente (rinominata) quando ha finito.
--method=comando
- Il metodo per copiare i file (cp o scp). Quello predefinito è cp.
--noindices
- Non include gli indici dei file di MyISAM nel backup. Questo ne riduce le dimensioni e velocizza l'operazione. Gli indici delle tabelle possono essere ricostruiti in seguito con
myisamchk -rq
.
- Non include gli indici dei file di MyISAM nel backup. Questo ne riduce le dimensioni e velocizza l'operazione. Gli indici delle tabelle possono essere ricostruiti in seguito con
--password=password, -ppassword
- La password da usare per connettersi al server. Se si specifica questa opzione il valore non è opzionale, diversamente dalle altre utility di MariaDB.
Specificare una password dalla riga di comando potrebbe essere considerata una pratica non sicura. Per evitarlo, è possibile inserirla in un file di configurazione.
- La password da usare per connettersi al server. Se si specifica questa opzione il valore non è opzionale, diversamente dalle altre utility di MariaDB.
--port=num_porta,
-P port_num
- Il numero di porta TCP/IP da usare per connettersi al server locale.
--quiet, -q
- Silenzioso, stampa solo gli errori.
--record_log_pos=nome_db.nome_tab
- Registra lo stato del master e dello slave nella tabella specificata con nome_db e nome_tab.
--regexp=expr
- Copia tutti i database i cui nomi corrispondono all'espressione regolare specificata.
--resetmaster
- Resetta il log binario dopo aver creato un lock su tutte le tabelle.
--resetslave
- Resetta il file master.info dopo aver posto un lock su tutte le tabelle.
--socket=path
,-S path
- Il file di socket Unix da utilizzare per connettersi a localhost.
--suffix=str
- Il suffisso da aggiungere ai nomi dei database copiati.
--tmpdir=percorso
- La directory temporanea. Quella predefinita è /tmp.
--user=nome_utente
,-u nome_utente
- Il nome utente di MariaDB per connettersi al server.
Si può utilizzare perldoc per trovare ulteriore documentazione su mysqlhotcopy
,
compresi i dettagli sulla struttura delle tabelle necessarie per le opzioni --checkpoint
e --record_log_pos
options:
shell> perldoc mysqlhotcopy