Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Server/MySql/BackupDatabase"
Differenze tra le versioni 3 e 10 (in 7 versioni)
Versione 3 del 07/04/2007 16.55.15
Dimensione: 3953
Commento:
Versione 10 del 12/12/2022 17.24.29
Dimensione: 3794
Autore: gnomefanatic
Commento: Revisione
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents(1)]]||
## page was renamed from Server/BackupDatabaseMySql
<<BR>>
<<Indice(depth=1)>>
Linea 6: Linea 7:
Questa guida spiega come automatizzare il backup dei database '''MySql''' attraverso un apposito script che crea ed archivia i backup. Questa guida spiega come automatizzare il backup dei database '''MySql''' attraverso un apposito script che crea e archivia i backup.
Linea 10: Linea 11:
Lo script effettua giornalmente tramite cron il backup di tutti i databases recuperando automaticamente l'elenco. Per maggiori approfondimenti su '''cron''', consulta anche la [:CronHowTo:Guida di Cron]. Lo script effettua giornalmente tramite [[AmministrazioneSistema/Cron|cron]] il backup di tutti i database recuperando automaticamente l'elenco.
Linea 14: Linea 15:
Dopo l'eventuale rimozione di un backup temporaneo precedente ottengo l'elenco dei databases tramite ''mysqlshow'' redirezionando l'output sul file ''EL_DBS'' dopo l'applicazione di una serie di filtri: ''head'', ''tail'' e ''tr''. Dopo l'eventuale rimozione di un backup temporaneo precedente ottengo l'elenco dei database tramite ''mysqlshow'' redirezionando l'output sul file ''EL_DBS'' dopo l'applicazione di una serie di filtri: ''head'', ''tail'' e ''tr''.
Linea 32: Linea 33:
Creare lo script {{{myback}}} ed inserirlo nella directory {{{/etc/cron.daily}}} Creare lo script {{{myback}}} e inserirlo nella directory `/etc/cron.daily`.
Linea 50: Linea 51:
MY_HST=localhost # Host del MySql server MY_HST=localhost # Host del server MySql
Linea 52: Linea 53:
MY_USR=root_mysql # User di MySql MY_USR=root_mysql # Utente di MySql
Linea 56: Linea 57:
EL_DBS=/var/backup/temp/elencodb # File Elenco Databases nel Backup EL_DBS=/var/backup/temp/elencodb # File Elenco Database nel Backup
Linea 69: Linea 70:
# Creazione Elenco Databases # Creazione Elenco Database
Linea 75: Linea 76:
# Conteggio Numero di Databases # Conteggio Numero di Database
Linea 81: Linea 82:
# Ciclo Dump dei Databases
#
# Ciclo Dump dei Database
Linea 117: Linea 118:
In testa ci sono alcune variabili per eventuale configurazione: In testa ci sono alcune variabili per un'eventuale configurazione:
Linea 120: Linea 121:
 * '''MY_HST''': l'hostname della macchina, potrebbe essere sufficiente {{{localhost}}}.
 * '''MY_USR''': l'utente del server '''MySql'''.
 * '''MY_PWD''': la password dell'utente '''MySql'''.
 * '''EL_DBS''': nome del file che conterrà l'elenco dei database.
 * '''BK_DIR''': la directory temporanea per il dump dei database.
 * '''BK_NAM''': nome del file di backup.
 * `MY_HST`: l'hostname della macchina, potrebbe essere sufficiente {{{localhost}}}.
 * `MY_USR`: l'utente del server '''MySql'''.
 * `MY_PWD`: la password dell'utente '''MySql'''.
 * `EL_DBS`: nome del file che conterrà l'elenco dei database.
 * `BK_DIR`: la directory temporanea per il dump dei database.
 * `BK_NAM`: nome del file di backup.
Linea 128: Linea 129:
CategoryServer CategoryServer CategoryDaRevisionare


Introduzione

Questa guida spiega come automatizzare il backup dei database MySql attraverso un apposito script che crea e archivia i backup.

Descrizione

Lo script effettua giornalmente tramite cron il backup di tutti i database recuperando automaticamente l'elenco.

Inizialmente viene costruito il nome del set di backup da creare utilizzando l'output del comando date.

Dopo l'eventuale rimozione di un backup temporaneo precedente ottengo l'elenco dei database tramite mysqlshow redirezionando l'output sul file EL_DBS dopo l'applicazione di una serie di filtri: head, tail e tr.

Effettuo il conteggio del numero di database e con un ciclo faccio il dump tramite mysqldump.

Al termine i backup sono raggruppati (tar) e compressi (gzip).

Installazione

Per il funzionamento è necessario creare la struttura delle directory di backup.

Si può, ad esempio, utilizzare la directory /var/backup che contiene due sottodirectory /var/backup/stored e /var/backup/temp, ma il tutto è configurabile nello script.

Creare le directory per archiviare i backup. A titolo di esempio:

sudo mkdir /var/backup
sudo mkdir /var/backup/temp
sudo mkdir /var/backup/stored

Creare lo script myback e inserirlo nella directory /etc/cron.daily.

Ricordarsi di modificare MY_USR e MY_PWD.

Impostare i permessi dello script:

sudo chmod 755 myback

Script

Lo script è il seguente:

# Created by Beniamino Caputo
#
# Definizione Variabili
#
MY_DIR=                                               # Directory Binari MySQL se non sono in PATH

MY_HST=localhost                                      # Host del server MySql

MY_USR=root_mysql                                     # Utente di MySql

MY_PWD=password_root_mysql                            # Password di accesso

EL_DBS=/var/backup/temp/elencodb                      # File Elenco Database nel Backup

BK_DIR=/var/backup/temp                               # Directory Backup

BK_NAM=/var/backup/stored/backup-$(date +%d-%m-%Y)    # Nome del Backup (costruita automaticamente con la data)

#
# Elimino Eventuali Backup Temporanei Presenti
#

rm -f ${BK_DIR}/*

#
# Creazione Elenco Database
#

${MY_DIR}mysqlshow --host=$MY_HST --user=$MY_USR --password=$MY_PWD | head -n -1 | tail -n +4 | tr -d " |" > $EL_DBS

#
# Conteggio Numero di Database
#

ndb=$(wc -l < "$EL_DBS")

#
# Ciclo Dump dei Database


for db in `seq $ndb`

do

   read db

   ${MY_DIR}mysqldump --host=$MY_HST --user=$MY_USR --password=$MY_PWD --databases $db > $BK_DIR/$db

done <"$EL_DBS"

#
# Creazione File TAR
#

tar -cf $BK_NAM.tar $BK_DIR

#
# Compressione File Tar
#

gzip -f $BK_NAM.tar

#
# Elimino Eventuali Backup Temporanei Presenti
#

rm -f ${BK_DIR}/*

exit 0

Configurazione

In testa ci sono alcune variabili per un'eventuale configurazione:

  • MY_DIR: directory contenente i binari di MySql. In Ubuntu non è necessaria in quanto presente in PATH}. Nel caso di installazione manuale si può inserirla, avendo l'accortezza di terminarla con /. Esempio: MY_DIR=/path/binari/mysql/.

  • MY_HST: l'hostname della macchina, potrebbe essere sufficiente localhost.

  • MY_USR: l'utente del server MySql.

  • MY_PWD: la password dell'utente MySql.

  • EL_DBS: nome del file che conterrà l'elenco dei database.

  • BK_DIR: la directory temporanea per il dump dei database.

  • BK_NAM: nome del file di backup.


CategoryServer CategoryDaRevisionare