Table of Contents
Cómo hacer una copia de seguridad/restaurar MySQL/MariaDB y PostgreSQL usando las herramientas ‘Automysqlbackup’ y ‘Autopostgresqlbackup’
Si es administrador de bases de datos ( DBA. o es responsable de mantener, realizar copias de seguridad y restaurar bases de datos, sabe que no puede permitirse perder datos. La razón es simple: perder datos no solo significa la pérdida de información importante, sino que también puede dañar financieramente su negocio.
MySQL/MariaDB & PostgreSQL Backup/Restore
Por esa razón, siempre debe asegurarse de que:
1.. Se realizan copias de seguridad de sus bases de datos de forma periódica, 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 querrá encontrarse con un problema importante sin haber practicado lo que se debe hacer en tal situación.
En este tutorial, le presentará dos buenas utilidades para realizar copias de seguridad de las bases de datos MySQL. MariaDB. y PostgreSQL. respectivamente: automysqlbackup. y autopostgresqlbackup.
freestar.config.enabled_slots.push
Dado que el último se basa en el primero, centraremos nuestra explicación en automysqlbackup. y resalte las diferencias con autopgsqlbackup. si las hay.
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 de una falla en todo el sistema, aún estará cubierto.
Lea las siguientes guías útiles sobre MySQL:
Comandos de administración de base de datos básica de MySQL Comandos de copia de seguridad y restauración de MySQL para la administración de base de datos phpMyBackupPro-Un MySQL basado en web Herramienta de copia de seguridad MySQLDumper: una herramienta de copia de seguridad de base de datos MySQL basada en PHP y Perl 15 Preguntas básicas de la entrevista de MySQL para administradores de bases de datos
Instalación de bases de datos MySQL/MariaDB/PostgreSQL
1.. Esta guía asume 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 una prueba MySQL. MariaDB. PostgreSQL. base de datos que puede utilizar (se recomienda NO. utilizar automysqlbackup. o autopostgresqlbackup. en un entorno de producción hasta que se familiarice con estas herramientas).
De lo contrario, cree dos bases de datos de muestra y complételas con datos antes de continuar. En este artículo utilizaré las siguientes bases de datos y tablas:
MySQL/MariaDB CREAR BASE DE DATOS mariadb_db; CREAR TABLA tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, UserName VARCHAR (50), IsActive BOOL);
Crear base de datos MySQL PostgreSQL CREAR BASE DE DATOS postgresql_db; CREAR TABLA tecmint_tbl (UserID SERIAL PRIMARY KEY, UserName VARCHAR (50), IsActive BOOLEAN);
Crear base de datos PostgreSQL
Instalar 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 secciones siguientes, nos centraremos exclusivamente en instalar, configurar y probar estas herramientas en CentOS 7. ya que para Debian 8. donde casi funcionan de fábrica, lo haremos haga las aclaraciones necesarias más adelante en este artículo.
Instalando y configurando automysqlbackup en CentOS 7
4.. Comencemos por crear un directorio de trabajo dentro de/optar por descargar el script de instalación y ejecutar esto:
# 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
.
Instalación de AutoMysqlBackup en CentOS-7
5.. El El archivo de configuración para automysqlbackup. se encuentra dentro de /etc/automysqlbackup. con el nombre myserver.conf. Echemos un vistazo a las directivas de configuración más relevantes:
myserver.conf-Configure Automysqlbackup # Username para acceder al servidor MySQL CONFIG_mysql_dump_username = ‘ root. # Password CONFIG_mysql_dump_password = ‘ YourPasswordHere. ‘# Nombre de host (o dirección IP) del servidor MySQL CONFIG_mysql_dump_host =’ localhost. ‘# Directorio de respaldo CONFIG_backup_dir =’ /var/backup/db/automysqlbackup. ‘# Lista de bases de datos para la copia de seguridad diaria/semanal, por ejemplo (‘DB1’ ‘DB2’ ‘DB3’ …) # establecido en (), es decir, vacío, si desea hacer una copia de seguridad de todas las bases de datos CONFIG_db_names = ( Agregue los nombres de su base de datos aquí. ) # Lista de bases de datos para copias de seguridad mensuales. # establecido en (), es decir, vacío, si desea realizar una copia de seguridad de todas las bases de datos CONFIG_db_month_names = ( AddYourDatabase Names Here. # ¿Qué día desea realizar copias de seguridad mensuales? (01 a 31) # Si el día elegido es mayor que el último día del mes, se hará # el último día del mes. # Establecer en 0 para deshabilitar las copias de seguridad mensuales. CONFIG_do_monthly = “ 01. # ¿Qué día desea realizar copias de seguridad semanales? (1 a 7, donde 1 es el lunes) # Establecer en 0 para deshabilitar las copias de seguridad semanales. CONFIG_do_weekly = “ 5. # Establecer la rotación de las copias de seguridad diarias. VALOR * 24 horas # Si desea conservar solo las copias de seguridad de hoy, puede elegir 1, es decir, se eliminará todo lo que tenga más de 24 horas. CONFIG_rotation_daily = 6. # Establecer la rotación para las copias de seguridad semanales. VALOR * 24 horas. Un valor de 35 significa 5 semanas. CONFIG_rotation_weekly = 35. # Establecer la rotación para las copias de seguridad mensuales. VALOR * 24 horas. Un valor de 150 significa 5 meses. CONFIG_rotation_monthly = 150. # ¿Incluir la declaración CREATE DATABASE en la copia de seguridad? CONFIG_mysql_dump_create_database = ‘no’. # ¿Directorio y archivo de respaldo separados para cada DB? (sí o no) CONFIG_mysql_dump_use_separate_dirs = ‘yes’. # Elija el tipo de compresión. (gzip o bzip2) CONFIG_mysql_dump_compression = ‘gzip’. # ¿Qué le gustaría que le enviaran por correo? #-log: envía solo el archivo de registro #-files: envía el archivo de registro y los archivos sql como archivos adjuntos (consulte los documentos) #-stdout: simplemente mostrará el registro en la pantalla si se ejecuta manualmente. #-quiet: envíe registros solo si se produce un error a MAILADDR. CONFIG_mailcontent = ‘quiet’. # ¿Dirección de correo electrónico a la que enviar el correo? ([email protected]) CONFIG_mail_address = ‘root’. # ¿Desea cifrar sus copias de seguridad usando openssl? # CONFIG_encrypt = ‘no’ # Elija una contraseña para cifrar las copias de seguridad. # CONFIG_encrypt_password = ‘password0123’ # Comando para ejecutar antes de las copias de seguridad (descomentar para usar) #CONFIG_prebackup = “/etc/mysql-backup-pre” # Comando ejecutar después de las copias de seguridad (descomentar para usar) #CONFIG_postbackup = “/etc/mysql-backup-post “
Una vez que haya configurado automysqlbackup. según sus necesidades, le recomendamos encarecidamente que consulte el archivo README. que se encuentra en /etc/automysqlbackup/LÉAME.
Copia de seguridad de la base de datos MySQL
6.. Cuando esté listo, siga adelante y ejecute el programa, pasando el archivo de configuración como argumento:
# automysqlbackup/etc/automysqlbackup/myserver.conf
Configurar Automysqlbackup en CentOS 7
Una inspección rápida del directorio diario. mostrará que automysqlbackup. se ha ejecutado correctamente:
# pwd # ls-lR diario
Copia de seguridad diaria de la base de datos MySQL
Por supuesto, puede agregar una entrada crontab para ejecutar automysqlbackup. en el momento del día que mejor se adapte a sus 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 eliminemos la base de datos mariadb_db. a propósito:
Eliminar la base de datos MariaDB
Vamos a crearla de nuevo y restaurar la copia de seguridad. En el indicador de MariaDB, escriba:
CREATE DATABASE mariadb_db; salir
Luego, busque:
# cd/var/backup/db/automysqlbackup/daily/mariadb_db # ls
Localice la copia de seguridad de la base de datos MariaDB
Y restaure la copia de seguridad:
# mysql-u root-p mariadb_db
Restaurar la copia de seguridad de MariaDB
Instalación y configuración automática postgresqlbackup en CentOS 7
8.. Para que autopostgresql. funcione sin problemas en CentOS 7. necesitaremos instalar algunas dependencias primero:
# yum install mutt sendmail
Luego 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/autopostgresqlbackup.>/ 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 haber completado la configuración archivo de automysqlbackup. configurar esta herramienta es muy fácil (esa parte de la tarea queda en tus manos).
9.. En CentOS 7. a diferencia de Debian 8. autopostgresqlbackup. se ejecuta mejor como el usuario del sistema postgres. así que para hacer eso 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 respaldo, por el manera, debe crearse y sus permisos y la propiedad del grupo deben establecerse recursivamente en 0770. y postgres. (nuevamente, 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 diario Copia de seguridad diaria de la base de datos de PostgreSQL
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.Wed 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 sencilla, sino también sus respectivas configuraciones. Encontrarás los archivos de configuración en: