This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-03. For the latest, interactive version please visit https://mariadb.com/kb/.

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 tabella nome_tab.
  • --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.
  • --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.
  • --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.
  • --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
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.