sql >> Base de Datos >  >> RDS >> Mysql

Cómo hacer una copia de seguridad/restaurar MySQL/MariaDB y PostgreSQL usando las herramientas 'Automysqlbackup' y 'Autopostgresqlbackup'

Si es administrador de base de datos (DBA ) o son responsables de mantener, respaldar y restaurar bases de datos, sabe que no puede permitirse el lujo de perder datos. La razón es simple:la pérdida de datos no solo significa la pérdida de información importante, sino que también puede dañar financieramente su negocio.

Por esa razón, siempre debe asegurarse de que:

1. sus bases de datos se respaldan periódicamente,
2. esas copias de seguridad se almacenan en un lugar seguro, y
3. realiza simulacros de restauración con regularidad.

Esta última actividad no debe pasarse por alto, ya que no desea encontrarse con un problema importante sin haber practicado lo que se debe hacer en tal situación.

En este tutorial, le presentaremos dos buenas utilidades para realizar copias de seguridad de MySQL / MariaDB y PostgreSQL bases de datos, respectivamente:automysqlbackup y autopostgresqlbackup .

Dado que este último se basa en el primero, centraremos nuestra explicación en automysqlbackup y resalte las diferencias con autopgsqlbackup , si es que hay alguno.

Se recomienda encarecidamente almacenar las copias de seguridad en un recurso compartido de red montado en el directorio de copias de seguridad para que, en caso de que se produzca un bloqueo en todo el sistema, aún esté cubierto.

Lea las siguientes guías útiles sobre MySQL:

Comandos básicos de administración de bases de datos MySQLComandos de copia de seguridad y restauración de MySQL para la administración de bases de datosphpMyBackupPro:una herramienta de copia de seguridad MySQL basada en webMySQLDumper:una herramienta de copia de seguridad de bases de datos MySQL basada en PHP y Perl15 Preguntas básicas de entrevista MySQL para administradores de bases de datos

Instalación de bases de datos MySQL / MariaDB / PostgreSQL

1. Esta guía asume que debe tener MySQL / MariaDB / PostgreSQL instancia en ejecución, si no, instale los siguientes paquetes:

Distribuciones basadas en Fedora:

# yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs

Debian y derivados:

# aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common

2. Tienes un MySQL de prueba / MariaDB / PostgreSQL base de datos que puede usar (se recomienda NO utilice automysqlbackup o autopostgresqlbackup en un entorno de producción hasta que se haya familiarizado con estas herramientas).

De lo contrario, cree dos bases de datos de muestra y rellénelas con datos antes de continuar. En este artículo usaré las siguientes bases de datos y tablas:

MySQL/MariaDB
CREATE DATABASE mariadb_db;
CREATE TABLE tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, 
UserName VARCHAR(50), 
IsActive BOOL);
PostgreSQL
CREATE DATABASE postgresql_db;
CREATE TABLE tecmint_tbl (
UserID SERIAL PRIMARY KEY,
UserName VARCHAR(50),
IsActive BOOLEAN);

Instalación de automysqlbackup y autopgsqlbackup en CentOS 7 y Debian 8

3. En Debian 8 , ambas herramientas están disponibles en los repositorios, por lo que instalarlas es tan simple como ejecutar:

# aptitude install automysqlbackup autopostgresqlbackup

Mientras que en CentOS 7 deberá descargar los scripts de instalación y ejecutarlos. En las siguientes secciones, nos centraremos exclusivamente en instalar, configurar y probar estas herramientas en CentOS 7. desde para Debian 8 – donde casi funcionan de inmediato, haremos las aclaraciones necesarias más adelante en este artículo.

Instalación y configuración de automysqlbackup en CentOS 7

4. Comencemos por crear un directorio de trabajo dentro de /opt para descargar el script de instalación y ejecutarlo:

# mkdir /opt/automysqlbackup
# cd /opt/automysqlbackup
# wget http://ufpr.dl.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
# tar zxf automysqlbackup-v3.0_rc6.tar.gz
# ./install.sh

.

5. El archivo de configuración para automysqlbackup se encuentra dentro de /etc/automysqlbackup bajo el nombre myserver.conf . Echemos un vistazo a las directivas de configuración más relevantes:

myserver.conf – Configure Automysqlbackup
# Username to access the MySQL server
CONFIG_mysql_dump_username='root'
# Password
CONFIG_mysql_dump_password='YourPasswordHere'
# Host name (or IP address) of MySQL server
CONFIG_mysql_dump_host='localhost'
# Backup directory
CONFIG_backup_dir='/var/backup/db/automysqlbackup'
# List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_names=(AddYourDatabase Names Here)
# List of databases for Monthly Backups.
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_month_names=(AddYourDatabase Names Here)
# Which day do you want monthly backups? (01 to 31)
# If the chosen day is greater than the last day of the month, it will be done
# on the last day of the month.
# Set to 0 to disable monthly backups.
CONFIG_do_monthly="01"
# Which day do you want weekly backups? (1 to 7 where 1 is Monday)
# Set to 0 to disable weekly backups.
CONFIG_do_weekly="5"
# Set rotation of daily backups. VALUE*24hours
# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.
CONFIG_rotation_daily=6
# Set rotation for weekly backups. VALUE*24hours. A value of 35 means 5 weeks.
CONFIG_rotation_weekly=35
# Set rotation for monthly backups. VALUE*24hours. A value of 150 means 5 months.
CONFIG_rotation_monthly=150
# Include CREATE DATABASE statement in backup?
CONFIG_mysql_dump_create_database='no'
# Separate backup directory and file for each DB? (yes or no)
CONFIG_mysql_dump_use_separate_dirs='yes'
# Choose Compression type. (gzip or bzip2)
CONFIG_mysql_dump_compression='gzip'
# What would you like to be mailed to you?
# - log   : send only log file
# - files : send log file and sql files as attachments (see docs)
# - stdout : will simply output the log to the screen if run manually.
# - quiet : Only send logs if an error occurs to the MAILADDR.
CONFIG_mailcontent='quiet'
# Email Address to send mail to? ([email protected])
CONFIG_mail_address='root'
# Do you wish to encrypt your backups using openssl?
#CONFIG_encrypt='no'
# Choose a password to encrypt the backups.
#CONFIG_encrypt_password='password0123'
# Command to run before backups (uncomment to use)
#CONFIG_prebackup="/etc/mysql-backup-pre"
# Command run after backups (uncomment to use)
#CONFIG_postbackup="/etc/mysql-backup-post"

Una vez que haya configurado automysqlbackup según sus necesidades, le recomendamos encarecidamente que consulte el README archivo encontrado en /etc/automysqlbackup/README .

Copia de seguridad de la base de datos MySQL

6. Cuando esté listo, continúe y ejecute el programa, pasando el archivo de configuración como argumento:

# automysqlbackup /etc/automysqlbackup/myserver.conf

Una inspección rápida del diario directorio mostrará que automysqlbackup se ha ejecutado correctamente:

# pwd
# ls -lR daily

Por supuesto, puede agregar una entrada crontab para ejecutar automysqlbackup a la hora del día que mejor se adapte a tus necesidades (1:30 am todos los días en el siguiente ejemplo):

30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf

Restauración de una copia de seguridad de MySQL

7. Ahora dejemos caer el mariadb_db base de datos a propósito:

Vamos a crearlo de nuevo y restaurar la copia de seguridad. En el indicador de MariaDB, escriba:

CREATE DATABASE mariadb_db;
exit

Luego busque:

# cd /var/backup/db/automysqlbackup/daily/mariadb_db
# ls

Y restaurar la copia de seguridad:

# mysql -u root -p mariadb_db < daily_mariadb_db_2015-09-01_23h19m_Tuesday.sql
# mysql -u root -p
MariaDB [(none)]> USE mariadb_db; 
MariaDB [(none)]> SELECT * FROM tecmint_tb1;

Instalación y configuración de autopostgresqlbackup en CentOS 7

8. Para autopostgresql para funcionar perfectamente en CentOS 7 , primero necesitaremos instalar algunas dependencias:

# yum install mutt sendmail

Entonces repitamos el proceso como antes:

# mkdir /opt/autopostgresqlbackup
# cd /opt/autopostgresqlbackup
# wget http://ufpr.dl.sourceforge.net/project/autopgsqlbackup/AutoPostgreSQLBackup/AutoPostgreSQLBackup-1.0/autopostgresqlbackup.sh.1.0
# mv autopostgresqlbackup.sh.1.0 /opt/autopostgresqlbackup/autopostgresqlbackup.sh

Hagamos que el script sea ejecutable y comencemos / habilitar el servicio:

# chmod 755 autopostgresqlbackup.sh
# systemctl start postgresql
# systemctl enable postgresql

Finalmente, editaremos el valor de la configuración del directorio de respaldo a:

autopostgresqlbackup.sh - Configurar Autopostgresqlbackup
BACKUPDIR="/var/backup/db/autopostgresqlbackup"

Después de revisar el archivo de configuración de automysqlbackup , configurar esta herramienta es muy fácil (esa parte de la tarea te la dejamos a ti).

9. En CentOS 7 , a diferencia de Debian 8 , autopostgresqlbackup es mejor ejecutarlo como postgres usuario del sistema, por lo que para hacerlo debe cambiar a esa cuenta o agregar un trabajo cron a su archivo crontab:

# crontab -u postgres -e
30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh

El directorio de copia de seguridad, por cierto, debe crearse y sus permisos y propiedad del grupo deben establecerse recursivamente en 0770 y postgres (de nuevo, esto NO será necesario en Debian ):

# mkdir /var/backup/db/autopostgresqlbackup
# chmod -R 0770 /var/backup/db/autopostgresqlbackup
# chgrp -R postgres /var/backup/db/autopostgresqlbackup

El resultado:

# cd /var/backup/db/autopostgresqlbackup
# pwd
# ls -lR daily

10. Ahora puede restaurar los archivos cuando sea necesario (recuerde hacer esto como usuario postgres después de recrear la base de datos vacía):

# gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db

Consideraciones en Debian 8

Como mencionamos anteriormente, no solo la instalación de estas herramientas en Debian es más sencillo, pero también sus respectivas configuraciones. Encontrará los archivos de configuración en:

  1. Copia de seguridad de Automysql :/etc/default/automysqlbackup
  2. Copia de seguridad automática postgresql :/etc/default/autopostgresqlbackup

Resumen

En este artículo hemos explicado cómo instalar y usar automysqlbackup y autopostgresqlbackup (aprender a usar el primero también lo ayudará a dominar el segundo), dos excelentes herramientas de respaldo de bases de datos que pueden facilitar mucho sus tareas como DBA o administrador / ingeniero de sistemas.

Tenga en cuenta que puede ampliar este tema configurando notificaciones por correo electrónico o enviar archivos de copia de seguridad como archivos adjuntos por correo electrónico; no es estrictamente necesario, pero a veces puede resultar útil.

Como nota final, recuerde que los permisos de los archivos de configuración deben establecerse al mínimo (0600 en la mayoría de los casos). Esperamos escuchar lo que piensas sobre este artículo. No dude en enviarnos una nota utilizando el siguiente formulario.