RHEL7: Backup e restore di un database MariaDB

By | Dicembre 15, 2018

Nota: questo è un obiettivo d’esame RHCE 7.

Prerequisiti

Innanzitutto, è necessario installare un database MariaDB.

Quindi, è necessario creare un semplice schema, altrimenti non si avrà nulla per il backup.

Procedura di backup

Per eseguire il backup del database chiamato test, digitare:

# mysqldump --user=root --password="your password" --result-file=test.sql test

Nota 1: è possibile specificare uno o più database alla fine della riga.
Nota 2: l’opzione –single-transaction può anche essere utilizzata per eseguire il backup di uno o più database in un’unica transazione.

Ottieni il seguente contenuto nel file test.sql:

-- MySQL dump 10.14  Distrib 5.5.35-MariaDB, for Linux (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version	5.5.35-MariaDB

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 
*/;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `addresses`
--

DROP TABLE IF EXISTS `addresses`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `addresses` (
  `name` varchar(20) DEFAULT NULL,
  `address` varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `addresses`
--

LOCK TABLES `addresses` WRITE;
/*!40000 ALTER TABLE `addresses` DISABLE KEYS */;
/*!40000 ALTER TABLE `addresses` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-07-16 12:42:41

Procedura di ripristino


Ora, per ripristinare lo stesso contenuto nel database, digitare:

# mysql --user=root --password="your password" test<test.sql


Nota 1: il contenuto del file SQL (qui chiamato test.sql) gestisce automaticamente le ri-creazioni della tabella.
Nota 2: se si ripristina il database in un server in cui non esiste già, sarà necessario crearlo prima (il file SQL non ricrea il database stesso): mysql> create database test;

Risorse addizionali

Anche se mysqldump è lo strumento da utilizzare durante l’esame perché è direttamente disponibile, non è l’unica soluzione per eseguire il backup del database MySQL/MariaDB. Puoi anche dare uno sguardo allo strumento mydumper (vedi dettagli aggiuntivi qui).
Oltre agli obiettivi dell’esame, ci sono diversi modi per migrare i database MySQL da un server all’altro.
Si può anche essere interessati a questo documento di riferimento di architettura sulla distribuzione di database MySQL su storage Red Hat Ceph.
Ulteriori precauzioni possono essere necessarie quando si caricano grandi database MySQL.
Il sito Web di Percona fornisce un interessante articolo su come ripristinare MySQL Logical Backup alla massima velocità.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.