Di Dmitri Joukovski e Pavel Pragin

Il database MySQL è diventato il database open source più popolare al mondo grazie alle sue prestazioni veloci e costanti, all'elevata affidabilità e alla facilità d'uso. Potresti usare il database MySQL per i tuoi forum online e wiki che si trova presso il provider di hosting gestito, o potresti usarlo in un ufficio remoto per tenere traccia dei bug con Bugzilla, o potresti semplicemente pensare di sviluppare una nuova applicazione Web 2.0 che utilizza MySQL . In ogni caso, se apprezzi le informazioni archiviate nel tuo database MySQL, dovrai garantire backup di MySQL efficaci, sicuri e coerenti con un impatto minimo sull'applicazione del database. Assicurati che la tua soluzione di backup offra l'uso più efficiente della rete, del server e delle risorse di archiviazione.

Se stai cercando una soluzione che ti semplifichi la vita fornendo un backup e ripristino facile da usare ma flessibile e robusto per MySQL, Zmanda Recovery Manager (ZRM) potrebbe essere la scelta giusta per te. Dettagli su Le funzionalità ZRM sono disponibili qui.

Per qualsiasi backup di un database, le considerazioni principali sono la coerenza del backup e l'impatto su utenti e applicazioni. Un backup del MySQL remoto, tuttavia, presenta ulteriori sfide legate a:

  • utilizzo della rete
  • sicurezza e
  • flessibilità di recuperabilità dei dati MySQL su un host diverso.

L'ultimo punto potrebbe essere importante quando non si ha il pieno controllo del proprio ambiente MySQL e si desidera avere un'opzione per ripristinare i dati su un provider di hosting gestito diverso con una versione diversa del server MySQL o un sistema operativo diverso.

I backup incrementali riducono notevolmente la finestra di backup e l'utilizzo della rete perché solo le modifiche dall'ultimo backup completo o dall'ultimo backup incrementale vengono spostate in rete. ZRM semplifica il ripristino dei dati da backup incrementali anche se è necessario utilizzare più immagini di backup incrementali per riportare i dati a un determinato momento. I backup incrementali richiedono che i log binari di MySQL siano abilitati, ma secondo la documentazione di MySQL, l'abilitazione dei log binari comporterà calo delle prestazioni inferiore a 1%.

I backup logici forniscono una maggiore flessibilità per il ripristino perché il file di backup è un file di testo che contiene tutte le istruzioni MySQL per ricreare sia lo schema del database che il contenuto. Il backup logico funziona per tutti i motori di archiviazione ad eccezione del motore NDB utilizzato per il clustering MySQL. Il più grande vantaggio del backup logico è la flessibilità per il ripristino del database. È possibile ripristinare il backup logico di MySQL su un'altra architettura e persino su un altro database. La trasportabilità delle immagini di backup ZRM logiche rende ZRM uno strumento conveniente per la migrazione. Ad esempio, puoi spostare i tuoi dati MySQL:

  • Da MySQL su Solaris a MySQL su Linux
  • Da uno storage engine all'altro
  • Da un server a 32 bit a un server a 64 bit
  • Da un provider di hosting gestito al tuo data center o un altro provider con diversa configurazione MySQL

Ovviamente c'è un prezzo da pagare per una ripresa così flessibile. Il ripristino dei dati dai backup logici potrebbe richiedere molto tempo poiché è necessario leggere e riprodurre tutte le istruzioni MySQL. Un altro aspetto negativo è che potrebbe essere difficile prevedere le dimensioni del backup logico. A seconda del tipo di dati e dello schema del database, la dimensione del backup logico potrebbe essere maggiore del database stesso. Un rimedio è che poiché il backup logico è fondamentalmente un file di testo, di solito è possibile ottenere una compressione decente.

Il backup non elaborato fornisce una copia coerente di un database con il backup come file binario. I vantaggi dei backup grezzi rispetto ai backup logici sono:

  • I backup e soprattutto i ripristini sono molto più veloci. Ad esempio, non è insolito vedere che per lo stesso database con dimensioni di 4-5 GB, il backup non elaborato è 5 volte più veloce del backup logico e il ripristino dell'immagine di backup non elaborata è 20 volte più veloce del ripristino del backup logico Immagine.
  • Saprai sempre la dimensione esatta del tuo backup poiché è solo una copia di un database.
  • Fornisce una migliore scalabilità che potrebbe essere importante se il tuo database MySQL è piuttosto grande, ad esempio 10-20 GB o più.

I backup non elaborati possono essere ripristinati SOLO sulla stessa versione del server MySQL sullo stesso sistema operativo dei dati originali. Significa che le tue possibilità di recuperare immagini di backup non elaborate di MySQL su un altro provider di hosting gestito non sono molto alte e dovresti tenerne conto quando scegli il backup grezzo rispetto a quello logico.

Sia i backup grezzi che quelli logici forniscono backup a caldo, il che significa che non è necessario chiudere il server MySQL per il backup, ma tutte le tabelle sono bloccate durante il backup e gli utenti non possono inserire i propri dati. Questo è il motivo per cui dovresti considerare l'utilizzo del plug-in di pianificazione ZRM che consente di ritardare i backup in base alle soglie definite. Ad esempio, è possibile posticipare il backup di un'ora se più di 50 utenti accedono al database.

Una delle considerazioni importanti per il backup remoto di MySQL è la decisione sul tipo di connessione da stabilire tra ZRM e il server MySQL remoto. ZRM fornisce un plug-in per la connessione basata su socket e un altro plug-in per la connessione basata su SSH. L'architettura flessibile di ZRM consente agli utenti di scrivere i propri plug-in.

Come suggerisce il nome, il plug-in di copia del socket stabilisce un socket che fornisce la comunicazione tra ZRM e MySQL su una rete basata su IP. Il plug-in per la copia del socket richiede che il servizio xinetd sia in esecuzione sul server MySQL e che la porta predefinita 25300 sia aperta. Se necessario, un amministratore di backup può modificare la porta. Il plug-in di copia del socket non è sicuro e deve essere utilizzato solo quando la sicurezza non è un problema o quando la sicurezza viene stabilita con altri mezzi, ad esempio, quando si dispone di una connessione VPN tra ZRM e il server MySQL remoto.

Il plug-in di copia SSH fornisce un canale sicuro tra ZRM e il server MySQL remoto. Utilizza la crittografia a chiave pubblica per autenticare il server MySQL remoto e l'utente di backup che esegue ZRM. Il plug-in SSH richiede che la porta TCP standard 22 sia aperta e che il daemon SSH sia in esecuzione. Il plug-in di copia SSH è più adatto quando è importante garantire la sicurezza dei dati di backup. Poiché la connessione SSH richiede cicli aggiuntivi della CPU per la crittografia, potrebbe esserci un impatto sulle prestazioni di backup rispetto al backup con connessione socket.

La tabella seguente riassume le considerazioni quando si sceglie il plug-in di copia socket e SSH per il backup remoto di MySQL:

Connessione remota
collegare
Porta utilizzata Sicurezza Prestazioni relative Commenti sull'installazione
Copia SSH 22 (fisso) Fornisce autenticazione e crittografia avanzate per lo spostamento dei dati di backup in rete Prestazioni inferiori e dipende dalla memoria del server MySQL, dalle risorse della CPU e dalla larghezza di banda disponibile. Spesso potresti avere una connessione SSH a un server MySQL remoto già stabilito per motivi diversi dal backup e dal ripristino. Altrimenti devi stabilire una connessione SSH tra ZRM e il server MySQL.
Copia socket 25300 (potrebbe essere cambiato) I dati di backup via cavo non sono protetti Prestazioni più elevate È necessario installare software aggiuntivo sul server MySQL. Ad esempio, per la versione Enterprise di ZRM 1.1 utilizzare MySQL-zrm-enterprise-socket-server-1.1-1.noarch.rpm. Per la versione comunitaria, vedere la pagina dei download per il pacchetto esatto.

Per maggiori dettagli tecnici registrati gratuitamente a Zmanda Network e scarica la versione completa di questo white paper. Imparerai come utilizzare ZRM per diversi scenari comuni. Ad esempio, forniremo dettagli tecnici su come eseguire il backup con i dati protetti in rete e inattivi utilizzando il plug-in di copia SSH per questo caso d'uso:

ZRM su Internet

Inoltre, forniremo dettagli tecnici su backup logici e raw più efficienti utilizzando il plug-in di copia del socket.

Con tutte le sue ricche funzionalità, ZRM per MySQL è solo uno strumento per implementare la strategia di backup e ripristino ottimale per le tue specifiche esigenze di protezione dei dati. ZRM è robusto e facile da usare, ma a seconda della tua implementazione del server MySQL remoto e dei tuoi requisiti specifici per il backup e il ripristino, dovresti considerare tutti i compromessi associati a ciascuna opzione operativa fornita da ZRM per MySQL.

Riferimenti:
ZRM per MySQL
ZRM per MySQL Wiki
Forum Zmanda