Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Miscelánea  Backup diario de nuestra base de datos MySQLTema Solucionado

Guías phpBB 3.1 3.2 3.3


Cerrado
Avatar de Usuario
picaron
Moderador
Mensajes: 539
Registrado: 04 Abr 2010, 20:01
Género:
Edad: 58

Backup diario de nuestra base de datos MySQL  Tema Solucionado

#1

Mensaje por picaron »

Hola, aquí os dejo la forma alternativa que utilizo para automatizar una copia de respaldo diaria de mis Bases de Datos MySQL sin necesidad de instalar ningún MOD adicional y que funciona de forma totalmente independiente al software que utilicemos en nuestra web, por lo que la podemos utilizar con nuestras Bases de Datos de PHPBB3 o con las de cualquier otra aplicación que funcione con PHP.

Objetivo:

- Realizar de forma automática una copia diaria de nuestra Base de Datos MySQL comprimida en formato GZip y almacenarla en una carpeta concreta de nuestro servidor, eliminando de forma automática las copias realizadas 5 días atrás.
- Poder restaurar a partir de esta copia de una forma limpia nuestra base de datos sin el engorroso problema de los "caracteres extraños".

Requisitos:

- Servidor Linux.
- Servidor MySQL.
- CPanel 11 o alternativa para poder programar tareas del tipo Cron Job.
- Y aconsejable Apache y PHP.


CONFIGURAR BACKUP DIARIO AUTOMÁTICO DE LA BASE DE DATOS

Pasos a seguir:

1.- Desde nuestro Cpanel Acceder al Administrador de Archivos y crear la carpeta copiadiaria en el mismo nivel donde se encuentra la carpeta public_html.
Normalmente la ruta debería ser así /home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/

Imagen

2.- Dentro de la carpeta copiadiaria crear las carpetas archivos y logs
Las rutas deben quedar asi
/home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/archivos/
/home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/logs/

3.- Crear con nuestro editor de texto (yo os aconsejo el Notepad++) un archivo llamado copia_diaria.sh en el que copiaremos el código siguiente realizando previamente las modificaciones oportunas con relación a los datos de vuestra base de datos.

EL_USUARIO_DE_TU_HOSTING
NOMBRE_DE_USUARIO_DE_TU_BASE_DE_DATOS
PASSWORD_DEL_USUARIO_DE_TU_BASE_DE_DATOS
NOMBRE_DE_TU_BASE_DE_DATOS

Código: Seleccionar todo

#!/bin/bash

# Ruta y Archivo en la que se guarda el log de la operacion del backup.
logfile="/home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/logs/log.txt"

# Ruta en la que guardar los backups
backup_dir="/home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/archivos"

# Usuario y Password de la Base de Datos de la que queremos guardar una copia diaria
username="NOMBRE_DE_USUARIO_DE_TU_BASE_DE_DATOS"
password="PASSWORD_DEL_USUARIO_DE_TU_BASE_DE_DATOS"

# Nombre completo de la Base de Datos de la que queremos guardar una copia diaria
BBDD="NOMBRE_DE_TU_BASE_DE_DATOS"

# NO ES NECESARIO MODIFICAR NADA A PARTIR DE AQUI

# Mediante esta instruccion, generamos un nombre de fichero con el dia mes y ano del proceso de backup.
timeslot=`date +%d%m%y`

# Mediante esta instruccion, generamos una variable con la fecha y hora actual.
thisday=`date +%d-%m-%Y--%H:%M`

# Mediante esta variable definimos LA COPIA que fue creada 5 dias atras y que sera BORRADA.
timeslotbefore=`date --date='5 days ago' +%d%m%y`

# Creamos un nuevo log del proceso de backup
# (Descomentar la siguiente linea si queremos que se borre el archivo de log en cada backup).
# rm -f $logfile
touch $logfile

cd $backup_dir

echo "--------------------------------------------------------------------------------------" >> $logfile
echo "--------------------------------------------------------------------------------------" >> $logfile
echo "$thisday : Comienza el proceso de copia de seguridad de la base de datos: $BBDD en el archivo: mysql-$BBDD-$timeslot.sql.gz" >> $logfile

# Volcamos la base de datos en un fichero comprimido en formato sql.gz para ocupar lo mínimo.
# Se evita el problema con los caracteres raros tales como vocales acentuadas, letra egne, etc...
# El nombre del fichero resultante contiene el nombre de la base de datos y la fecha de la copia.
# De esta manera, cuando sea necesaria su restauracion sera mas sencillo de localizar.
mysqldump --user=$username --password=$password $BBDD --add-drop-table -Q | gzip > mysql-$BBDD-$timeslot.sql.gz

echo "$thisday : Backup completo en la base de datos: $BBDD en el archivo: mysql-$BBDD-$timeslot.sql.gz" >> $logfile
echo "$thisday : Se ha ELIMINADO por Obsoleto el archivo: mysql-$BBDD-$timeslotbefore.sql.gz" >> $logfile
echo "--------------------------------------------------------------------------------------" >> $logfile
echo "--------------------------------------------------------------------------------------" >> $logfile

# Borramos LA COPIA que fue creada 5 días atrás.
rm -f mysql-$BBDD-$timeslotbefore.sql.gz
4.- Una vez hechas las modificaciones en el archivo copia_diaria.sh lo debemos de subir a la carpeta copiadiaria del servidor (si usamos un cliente FTP debemos de seleccionar el modo ASCII) y una vez subido le deberemos asignar permisos (Atributos CHMOD) 755.
Las carpetas copiadiaria - archivos - logs también tienen que tener permisos (Atributos CHMOD) 755.

5.- Accedemos a Cron Job en nuestro Cpanel y creamos una tarea diaria con el comando:

/home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/copia_diaria.sh

Imagen

Y listo, cuando llegue la hora programada podras verificar como en la ruta /home/EL_USUARIO_DE_TU_HOSTING/copiadiaria/archivos/ tienes disponibles tus copias diarias de respaldo.

IMPORTAR BASE DE DATOS A PARTIR DE UNA COPIA DE RESPALDO

Pasos a seguir:

1.- Crea una Base de Datos nueva y asigna un usuario con poderes de acceso desde tu Cpanel en la opción MySQL Bases de Datos.

2.- Edita con Notepad++ el archivo bigdump.php que encontraras en el archivo adjunto dentro de la carpeta importar_bd, editandolo previamente con los datos de la nueva base de datos creada.

// Database configuration

$db_server = 'localhost';
$db_name = 'NOMBRE_DE_TU_BASE_DE_DATOS';
$db_username = 'NOMBRE_DE_USUARIO_DE_TU_BASE_DE_DATOS';
$db_password = 'PASSWORD_DEL_USUARIO_DE_TU_BASE_DE_DATOS';


3.- Sube la carpeta importar_bd la cual incluye el archivo bigdump.php con las modificaciones ya realizadas, en la ruta /home/EL_USUARIO_DE_TU_HOSTING/public_html/

4.- Sube a la ruta /home/EL_USUARIO_DE_TU_HOSTING/public_html/importar_bd/ el archivo con extensión sql.gz que previamente te has descargado de una de las copias de respaldo realizadas a tu base de datos.

5.- Accede a través de tu navegador al enlace:

http://TU_DOMINO/importar_bd/bigdump.php

6.- Veras una opción donde aparece el nombre de tu BACKUP y al lado la opcion "Star Import", haz clic y se paciente, pues dependiendo del tamaño de la Base de Datos el proceso sera mas o menos rápido.
No lo interrumpas, déjalo acabar sin cerrar el navegador.

7.- Una vez concluido el proceso borra por completo la carpeta importar_bd del servidor.

Ya puedes verificar (desde phpMyAdmin por ejemplo) que los datos se han importado correctamente en la nueva Base de Datos.

Espero que este método os sirva de ayuda.

Saludos :cerveza:
Respaldo Auto Diario BD Mysql.rar
(11.67 KiB) Descargado 390 veces
Datos de Soporte

URL: http://www.ascensoristas.net
Versión phpBB: 3.3.9
EXT Instaladas:
Adsense & Ads
Advanced BBCode Box
Anti Adblock
Background Image in Text Area
Ban Hammer
Board3 Portal
Browser & OS in Viewtopic
cBB QuickMod
Contact Admin
Cron Status
Extensions .yml check
External Links Open in New Window
Favorite icon
File Download
Google Analytics
Google Search
Image Upload
Imgur
Lightbox
Manage Attachments
mChat
mChat on Board3 Portal
No DEA Emails
Pages
Pay For Link
Paypal Donation
Post Links
Pretty Topic
Private Message Box Status Bars
Quick Style
Scroll Page
Search Back
Simple mentions
Simple News Admin
Slideshow for Header
Sortables Captcha
Stop Browser Back Button
Store To MEGA
Tabs BBCode
Thanks for posts
Topic Preview
Ultimate Points Extension
[**] Breadcrumb Menu

Plantilla(s) usada(s):
prosilver
Black-Silver
Black-Silver-Slim
Black-Silver-Split
Carbon
CleanSilver
cubes
Elegance
Elegance Aqua
Elegance Green
Elegance LightBlue
Elegance SoftBlue
Elegance SoftGreen
Elegance SteelBlue
Flat Style
Flat Style Blue
Flat Style Gold
Flat Style Green
Flat Style Purple
Flat Style Red
Maxthon
ne-blackgreen
Orange_BBEs
prosilver Special Edition
Rock'n Roll
we_universal
X-Creamy

Servidor: Servidor Dedicado (No Administrado) Debian GNU/Linux 10 (buster) (x86_64) ovh.com
Servidor de base de datos:MySQL(i) 10.3.36-MariaDB-0+deb10u2
Versión PHP: 7.4.32
Actualización desde otra versión: Pasito a pasito desde la 3.0.9
Conversión desde otro sistema de foros: No


Cerrado
  • Temas similares
    Respuestas
    Vistas
    Último mensaje

Volver a “📝 Guías sobre phpBB”