Entorno Windows: copia de seguridad completa e incremental de MySQL y restauración de datos de bases de datos en la práctica

1. Preparación ambiental

1. Instalación del entorno MySQL

Al realizar operaciones de copia de seguridad y restauración de la base de datos MySQL, el entorno MySQL debe estar instalado con anticipación y el servicio MySQL se ha iniciado correctamente.

(1) Si el entorno MySQL no está instalado, puede consultar el blog: https://blog.csdn.net/weixin_43184774/article/details/106020174
(2) Si el entorno MySQL se ha instalado correctamente, abra la ejecución e ingrese: services.msc para abrir la ventana del servicio de Windows, verifique si MySQL está activado. Si no está habilitado, consulte el documento en el paso (1) para habilitar el servicio MySQL


 

2. Agregue la configuración de registro log-bin

(1) Busque el archivo de configuración my.ini en su directorio de instalación de MySQL

(2) Abra el archivo de configuración my.ini y agregue una línea debajo de [mysqld] en el archivo my.ini

log-bin = mysql-bin 

(3) Al reiniciar el servicio MySQL se generará un archivo de registro mysql-bin.000001 en el directorio de datos del directorio de instalación de MySQL

Observaciones: El archivo de registro mysql-bin.00000X se utiliza para operaciones posteriores de restauración incremental de la base de datos. Este archivo se puede generar automáticamente de acuerdo con las tareas programadas.

(4) Abra el entorno operativo MySQL, ejecute el siguiente comando para verificar si log-bin está encendido, si el estado es ON, significa que está encendido normalmente

show variables like 'log_bin';

Dos, crea una base de datos y una tabla de prueba

1. Cree una base de datos de prueba

(1) Inicie sesión en el entorno MySQL y cree una base de datos de clases. El comando es el siguiente:

create database class character set gbk;

(2) Ingrese al directorio de datos del directorio de instalación de MySQL, verá el archivo de base de datos creado con éxito

(3) Después de crear la base de datos de clases, para usar esta base de datos, ejecute el comando

use class


2. Cree una tabla de datos de prueba
 

(1) Ingrese el siguiente comando para crear una tabla de estudiantes

CREATE TABLE student

(

  id INT unsigned not null auto_increment primary key,

  username VARCHAR(8) not null

);



(2) Ejecute el siguiente comando para ver la tabla de estudiantes recién creada. En este momento, el estudiante es una tabla vacía sin ningún dato

SELECT *FROM student;

(3) Ejecute el siguiente comando para insertar datos en la tabla de estudiantes

insert into student values(1,'张学友');
insert into student values(2,'刘德华');

(4) La tabla de estudiantes después de ejecutar el comando para insertar los datos. En este momento, la tabla de estudiantes tiene dos piezas de datos

SELECT *FROM student;


 

Tres, copia de seguridad completa y restauración de la base de datos

1. Base de datos de respaldo completa

(1) Abra la ventana cmd, cd en el directorio bin del directorio de instalación de MySQL

(2) Ejecute el siguiente comando en el directorio bin para realizar una copia de seguridad completa de la base de datos de clases que acaba de crear

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=123456 class student > "D:\beifen20201119.sql"

Explicación:
--host = 127.0.0.1 es la dirección IP de la base de datos de la que desea hacer una copia de seguridad
--port = 3306 número de puerto de la base de datos
" D : \ beifen20201119.sql " Realice una copia de seguridad de la base de datos de la clase completa en el directorio raíz del Disco D, y asígnele el nombre Llamado beifen20201119.sql
class student es el nombre de la base de datos y la tabla que desea respaldar. Puede respaldar la base de datos completa de la clase, o puede respaldar la tabla de estudiantes por separado. Nota : La letra de la unidad de respaldo debe estar en el mismo disco que el directorio de instalación de MySQL. En el carácter, de lo contrario, aparecerá: Acceso denegado 

(3) Operaciones de tabla que no son necesarias para la copia de seguridad:
Sintaxis:

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=123456 dbname --ignore-table=dbname.table1 --ignore-table=dbname.table2 > ./db_files/test.sql


Ejemplos:

mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=123456 class --ignore-table=class.student > "D:\beifen20201124.sql

(4) Una vez completada la copia de seguridad, se generará automáticamente un archivo sql en el directorio correspondiente, ingrese al directorio y vea la base de datos de copia de seguridad completa

(5) Podemos encapsular los pasos anteriores en un archivo de secuencia de comandos por lotes .bat y luego hacer doble clic para ejecutar el archivo por lotes para ejecutar la base de datos de copia de seguridad completa, la
secuencia de comandos de la base de datos de copia de seguridad completa es la siguiente, nota: debe configurar esto de acuerdo con a su archivo de secuencia de comandos de configuración real

rem Auther By Anker
rem date:20201119
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::创建存储的文件夹
if not exist "D:\mysql_backup" md "D:\mysql_backup"

::执行备份操作
"D:\software\MySQL\mysql-8.0.22-winx64\bin\mysqldump" --opt --user=root --password=123456 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "class" >D:\software\beifen_%Ymd%.sql

::删除90天前的备份数据
forfiles /p "C:\mysql_backup" /m backup_*.sql -d -90 /c "cmd /c del /f @path"

@echo on
rem ******Backup MySQL End******

2. Restaurar la base de datos por completo 

(1) Ejecute el siguiente comando para eliminar la base de datos de clases creada de antemano

drop database class;

(2) Ejecute el siguiente comando para consultar la tabla de estudiantes, encontrará que no se puede encontrar la base de datos de la clase

SELECT *FROM student;

(3) Debido a que el comando de caída se ejecutó en el paso anterior, es equivalente a eliminar todos los datos y la estructura de la base de datos. En este momento, es necesario volver a crear la estructura de la base de datos antes de que se pueda realizar la operación de restauración. Entonces, ejecute el comando create database nuevamente, y luego use esta base de datos de clase, es decir, use class

create database class character set gbk; 
use class

(4) Ejecute el siguiente comando para restaurar la base de datos de clases eliminada

source D:\beifen20201119.sql

(5) Ejecute el siguiente comando nuevamente para consultar la tabla de estudiantes, encontrará que los datos de la tabla de estudiantes anterior están de vuelta 

SELECT *FROM student;

Cuatro, copia de seguridad incremental y restauración de la base de datos

1. Base de datos de respaldo incremental

(1) Ejecute el siguiente comando, inserte 2 datos más en la tabla de estudiantes

insert into student values(3,'郭富城');
insert into student values(4,'黎明');

 

(2) Ejecute el comando de consulta para consultar la tabla de estudiantes, en este momento encontrará dos datos más

SELECT *FROM student;

 

(3) Ejecute el comando truncar alumno; comando para borrar los datos en la tabla de alumnos.
Atención especial: si se ejecuta el comando drop student;, toda la estructura y los datos de la tabla de estudiantes se eliminan, y solo se puede restaurar la cantidad completa en este momento

truncate student;

 

(4) Ejecute el comando de consulta nuevamente para consultar la tabla de estudiantes, encontrará que no hay datos en la tabla de estudiantes

SELECT *FROM student;

(5) Podemos encapsular los pasos anteriores en un archivo de secuencia de comandos por lotes .bat y luego hacer doble clic para ejecutar el archivo por lotes para realizar una copia de seguridad incremental de la base de datos. La
secuencia de comandos de la base de datos de copia de seguridad incremental es la siguiente. Nota: Debe configurarlo según su propia configuración actual. Configure este archivo de secuencia de comandos

rem Auther By Anker
rem date:20201119
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::执行增量备份操作
mysqladmin -u root -p123456 flush-logs

@echo on
rem ******Backup MySQL End******

2. Recuperación incremental de la base de datos 

(1) Antes de realizar la recuperación incremental, primero debe realizar una recuperación completa para restaurar los datos de la base de datos a los datos más recientes en un período de tiempo determinado, es decir, ejecutar el comando: fuente D: \ beifen20201119.sql

(2) Ejecute el comando de consulta nuevamente para consultar la tabla de estudiantes, y encontrará que los datos de la tabla de estudiantes anteriores están nuevamente, pero los datos en la tabla son solo Jacky Cheung y Andy Lau, y no hay Guo Fucheng y Liming más tarde.

SELECT *FROM student;

 

(3) Si desea restaurar los datos de Guo Fucheng y Liming recién agregados, debe usar el archivo bin-log. Es decir, ejecute el siguiente comando en el entorno mysql

show binlog events in 'mysql-bin.000001';

 

(4) Ver las posiciones inicial y final de los datos del amanecer registrados en el contenido del binlog

(5) Ejecute el siguiente comando en el directorio de datos del directorio de instalación de MySQL para convertir el archivo bin-log que necesita ser respaldado en el directorio de datos en un archivo sql

mysqlbinlog --no-defaults mysql-bin.000001 --start-position=3898 --stop-position=4034 > d:\\zengliang.sql

(6) En este momento, encontrará que la unidad D genera automáticamente un archivo zengliang.sql

(7) Ejecute el siguiente comando para restaurar los datos del amanecer eliminados

source d://zengliang.sql

(8) Ejecute el comando de consulta nuevamente para consultar la tabla de estudiantes, y encontrará que los datos del amanecer anterior de la tabla de estudiantes están de vuelta.

SELECT *FROM student;

Cinco, realice tareas de respaldo con regularidad

(1) Busque "Programador de tareas" en la lista de búsqueda del programa de inicio y abra

(2) Después de abrir el programador de tareas, haga clic en "Crear tarea básica" a la derecha y escriba el nombre y la descripción de la tarea programada.

(3) Elija un nombre arbitrariamente y haga clic en "Siguiente"

(4) Según sus necesidades, haga clic para seleccionar el período de ejecución del tiempo y haga clic en "Siguiente"

(5) Establezca el tiempo de ejecución requerido y haga clic en "Siguiente"

(6) Seleccione "Iniciar el programa" y haga clic en "Siguiente"

(7) Busque y seleccione el archivo de secuencia de comandos de copia de seguridad completo y haga clic en "Siguiente"

(8) Después de confirmar que la información es correcta, haga clic en "Finalizar"

(9) Una vez creada la tarea cronometrada, la tarea que creamos se puede ver en la lista de tareas y la tarea se puede eliminar haciendo clic con el botón derecho en la tarea.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_43184774/article/details/109830081
Recomendado
Clasificación