Copia de seguridad y restauración de la base de datos MySQL usando el comando Mysqldump – 2xsoftware

Hoy en día, los datos son parte de lo que sustenta la vida de cualquier organización. La mayoría de las veces, una organización almacenaría sus datos en la solución de base de datos que elija. Muchos sistemas de administración de bases de datos están disponibles; un excelente ejemplo es MySQL.

Ya sea que almacene detalles de empleados, datos de ventas y clientes o documentación interna, la copia de seguridad de su base de datos no es negociable. En MySQL, puede realizar copias de seguridad y restaurar bases de datos utilizando el mysqldump y aprenderemos cómo hacerlo en esta publicación de blog.

Requisitos

Este tutorial demostrará cómo hacer una copia de seguridad y restaurar bases de datos MySQL. Como tal, ya debe tener lo siguiente en su lugar.

  • Una instalación de servidor MySQL. Este tutorial usa MySQL en Ubuntu 22.04.
  • Una base de datos MySQL de muestra con datos. Utilizará esta base de datos para el proceso de copia de seguridad y restauración. No se preocupe si no tiene una base de datos existente para jugar. Tenemos una sección que muestra cómo crear la base de datos de ejemplo.

Crear bases de datos y tablas de muestra

Antes de comenzar, creemos dos bases de datos de muestra con datos para la demostración. Crearemos dos bases de datos llamadas catalogar y ventas.

Introducir el mysql inmediato.

# As the root user 
sudo mysql 

# As another MySQL user 
mysql -u <username> -p

Ejecute el código SQL a continuación para crear el catalogar base de datos y libros mesa:

## Create the catalog database 
CREATE DATABASE catalog; 

USE catalog; 

## Create the books table 
CREATE TABLE books ( 
id INT NOT NULL AUTO_INCREMENT, 
title VARCHAR(255) NOT NULL, 
author VARCHAR(255) NOT NULL, 
PRIMARY KEY (id) 
);

Ahora, ejecute el siguiente código para insertar diez registros en el libros mesa:

## Insert records into the books table 
INSERT INTO books (title, author) VALUES 
('The Great Gatsby', 'F. Scott Fitzgerald'), 
('To Kill a Mockingbird', 'Harper Lee'), 
('1984', 'George Orwell'), 
('Animal Farm', 'George Orwell'), 
('Pride and Prejudice', 'Jane Austen'), 
('Jane Eyre', 'Charlotte Bronte'), 
('Wuthering Heights', 'Emily Bronte'), 
('The Catcher in the Rye', 'J.D. Salinger'), 
('One Hundred Years of Solitude', 'Gabriel Garcia Marquez'), 
('The Lord of the Rings', 'J.R.R. Tolkien');

A continuación, cree otra base de datos llamada ventas con una mesa llamada clientes:

## Create the sales database 
CREATE DATABASE sales; 

USE sales; 

## Create the customers table 
CREATE TABLE customers ( 
id INT AUTO_INCREMENT PRIMARY KEY, 
name VARCHAR(255) NOT NULL, 
email VARCHAR(255) NOT NULL, 
phone VARCHAR(20) NOT NULL, 
address VARCHAR(255) NOT NULL 
);

Ahora, inserte estos diez registros de clientes ficticios en el clientes mesa:

## Insert records into the customers table 
INSERT INTO customers (name, email, phone, address) VALUES 
('John Doe', '[email protected]', '555-1234', '123 Main St'), 
('Jane Smith', '[email protected]', '555-5678', '456 Broadway'), 
('Bob Johnson', '[email protected]', '555-9876', '789 Park Ave'), 
('Alice Lee', '[email protected]', '555-5555', '555 Elm St'), 
('David Kim', '[email protected]', '555-4444', '444 Pine St'), 
('Emily Davis', '[email protected]', '555-7777', '777 Oak St'), 
('Tom Wilson', '[email protected]', '555-8888', '888 Maple Ave'), 
('Mary Brown', '[email protected]', '555-2222', '222 Cherry St'), 
('Bill Jones', '[email protected]', '555-1111', '111 Walnut St'), 
('Samantha Green', '[email protected]', '555-3333', '333 Cedar St');

Al final, ahora tiene dos bases de datos con datos de muestra. Para verlos:

select * from catalog.books; 
select * from sales.customers;

Finalmente, escriba salida y presione Entrar para salir de la mysql inmediato:

volcado mysql

Ahora que tenemos dos bases de datos, tablas y datos de muestra con los que trabajar, comencemos a trabajar con los ejemplos de MySQLDump.

MySQLDump Ejemplo 1: copia de seguridad de bases de datos completas

Para hacer una copia de seguridad de una base de datos completa, use el siguiente comando:

Reemplazar nombre de usuario con su nombre de usuario MySQL, nombre de la base de datos con el nombre de la base de datos que desea respaldar, y db_backup.sql con el nombre que le quieras dar al archivo de respaldo. Se le pedirá su contraseña de MySQL.

mysqldump -u username -p database_name > db_backup.sql

En el siguiente ejemplo, utilicé el raíz Cuenta MySQL para hacer una copia de seguridad de la catalogar base de datos a la ~/catalog_db_backup.sql archivo.

volcado de base de datos mysql

Si bien la copia de seguridad de las bases de datos individualmente facilita la organización, puede realizar una copia de seguridad de varias o todas las bases de datos de una sola vez.

Utilizar el –bases de datos seguida de una lista de bases de datos para respaldar múltiples bases de datos en un solo archivo. Por ejemplo, el siguiente comando realiza una copia de seguridad del catálogo y las bases de datos de ventas en el ~/catalog_sales_db_backup.sql archivo.

mysqldump -u root -p --databases catalog sales > ~/catalog_sales_db_backup.sql

ejemplo mysqldump

Si desea hacer una copia de seguridad de todas las bases de datos en el servidor MySQL, use el –todas las bases de datos o -A argumento.

El siguiente ejemplo realiza una copia de seguridad de mysqldump de todas las bases de datos en el ~/all_db_backup.sql archivo.

mysqldump -u root -p --all-databases > ~/all_db_backup.sql 
# OR 
mysqldump -u root -p -A > ~/all_db_backup.sql

comando mysqldump

Ejemplo 2 de MySQLDump: copia de seguridad del esquema de la base de datos sin datos

Puedes usar el -sin datos opción para hacer una copia de seguridad de un esquema de base de datos MySQL sin sus datos. Esta copia de seguridad sin datos de MySQLDump exporta la estructura de la base de datos, incluidas las tablas y los campos, a un archivo.

Este tipo de respaldo mysql es útil cuando crea nuevas bases de datos con una estructura predefinida, como una plantilla.

Por ejemplo, ejecute el siguiente comando para crear la copia de seguridad mysql sin datos de la base de datos de ventas. La copia de seguridad resultante es el ~/sales_schema_backup.sql archivo.

mysqldump -u root -p --no-data sales > ~/sales_schema_backup.sql

mysqldump todas las bases de datos

MySQLDump Ejemplo 3: Copia de seguridad de las tablas de la base de datos

A veces, hacer una copia de seguridad de tablas específicas en lugar de una base de datos completa tiene mucho más sentido. La copia de seguridad de bases de datos específicas puede ser más pequeña y portátil. Además, puede restaurar datos más granulares en lugar de restaurar todas las tablas desde una copia de seguridad de la base de datos.

Para crear una copia de seguridad de la tabla de la base de datos, la sintaxis es la siguiente:

mysqldump [OPTIONS] database_name [table1 table2...] > table_backup.sql

Por ejemplo, ejecute lo siguiente para ejecutar para realizar una copia de seguridad del clientes mesa de la ventas base de datos. El archivo de copia de seguridad de la tabla mysqldump es ~/sales_customers_table_backup.sql.

mysqldump -u root -p sales customers > ~/sales_customers_table_backup.sql

copia de seguridad y restauración mysql

Restauración de la base de datos MySQL desde MySQLDump Backup

Las cosas pueden salir mal. Y lo hacen de vez en cuando. Un administrador de base de datos puede descartar una base de datos o purgar una tabla sin querer. Y cuando suceda, se alegrará de haber realizado copias de seguridad de la base de datos con MySQLDump.

Pero para restaurar bases de datos MySQL, lo hará dentro del mysql caparazón.

En este ejemplo, usemos la base de datos de **ventas** para la demostración. Primero hagamos una copia de seguridad completa de la base de datos de **ventas**.

mysqldump -u root -p sales > ~/sales_db_backup.sql

Ahora que ha realizado la copia de seguridad, simulemos una pérdida de datos soltando el ventas base de datos. Introducir el mysql caparazón:

mysql -u root -p

Ejecute los siguientes comandos. El primer comando elimina el ventas base de datos, y el segundo comando enumera todas las bases de datos en el servidor.

drop database sales; 
show databases;

Como puede ver en el siguiente resultado, la base de datos de ventas se eliminó.

restauración de copia de seguridad mysql

Ahora, vamos a restaurarlo. Para ello, cree una base de datos en blanco con el mismo nombre.

create database sales;

Una vez que se haya creado la base de datos en blanco, restaure la base de datos de respaldo mysqldump.

use sales; 
source ~/sales_db_backup.sql;

base de datos mysqldump a archivo

Finalmente, enumeremos el contenido de la clientes mesa dentro de la ventas base de datos.

select * from customers;

mysql restaurar base de datos desde volcado

Restauración de la copia de seguridad de la tabla MySQLDump

En este ejemplo, restauraremos una sola tabla en una base de datos. Específicamente, restauraremos el clientes mesa a la ventas base de datos.

Primero, asegurémonos de que se elimine la tabla de clientes.

use sales; 
drop table customers; 
show tables;

Como puede ver, ya no hay ninguna tabla en la base de datos de ventas.

opción mysqldump

Ahora, restauremos una copia de seguridad anterior de la tabla MySQLDump:

source ~/sales_customers_table_backup.sql;

mysql copia de seguridad de todas las bases de datos

Confirme que la tabla ha sido restaurada.

show tables; 
select * from customers;

base de datos de exportación mysqldump

Conclusión

La copia de seguridad de la base de datos es una tarea operativa esencial que debe realizarse regularmente, ya sea diariamente, semanalmente o cuando sea; estará seguro de que puede recuperarse de la pérdida de la base de datos en cualquier momento.

MySQLDump es lo suficientemente sencillo como para usarlo, por lo que realmente no hay razón para que ningún administrador de base de datos no lo use. MySQLDump es flexible y le permite realizar copias de seguridad de bases de datos completas o solo de tablas seleccionadas.

Valora este artculo post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *