Copia de seguridad completa y copia de seguridad incremental de la base de datos MySQL

copia de seguridad de la base de datos

En un entorno de producción, la seguridad de los datos es de suma importancia y cualquier pérdida de datos puede tener graves consecuencias.

Razones de la pérdida de datos

Error de programa Error
humano (la mayoría de las razones)
Fallo de la computadora,
falla del disco,
desastre (como incendio, terremoto) y robo

Realice copias de seguridad de la redacción publicitaria desde una perspectiva física y lógica

Copia de seguridad física: copia de seguridad de los archivos físicos (como archivos de datos, archivos de registro, etc.) del sistema operativo de la base de datos. La
base de datos está dividida en tres tipos de archivos a nivel físico. El nombre de cada archivo comienza con el nombre de la tabla y la extensión indica el tipo de archivo del archivo de
estructura de la tabla : .Frm definición de la tabla de almacenamiento de archivos
La extensión del archivo de datos de la tabla es .MYD (MYData)
La extensión del archivo de índice de la tabla es .MYI (MYIndex) La
copia de seguridad física se puede dividir en copia de seguridad fuera de línea (copia de seguridad en frío) y copia de seguridad en línea (copia de seguridad en caliente) )
Copia de seguridad en frío: se realiza cuando la base de datos está cerrada.
Copia de seguridad en caliente: la base de datos está en funcionamiento. Este método de copia de seguridad depende del archivo de registro de la base de datos.
Copia de seguridad lógica: la copia de seguridad de los componentes lógicos de la base de datos (como tablas y otros objetos de la base de datos)

Estrategia de respaldo de la base de datos

Copia de seguridad completa: realice una copia de seguridad completa de los datos cada vez.
Copia de seguridad diferencial : realice una copia de seguridad de los archivos que se han modificado desde la última copia de seguridad completa.
Copia de seguridad incremental: Solo se incluirán los archivos que se hayan modificado después de la última copia de seguridad completa o incremental. Apoyo

Copia de seguridad completa

Una copia de seguridad completa es una copia de seguridad de toda la base de datos, la estructura de la base de datos y la estructura de archivos. Una
copia de seguridad completa guarda la base de datos en el momento en que
se completa la copia de seguridad . Una copia de seguridad completa es la base de la copia de seguridad incremental.

Pros y contras de la copia de seguridad completa

Ventajas:
alta seguridad,
operaciones de copia de seguridad y recuperación sencillas y convenientes.
Desventajas:
una gran cantidad de repetición de datos,
que ocupa mucho espacio de copia de seguridad, poca utilización del espacio,
tiempo prolongado de copia de seguridad y recuperación

¡Dale! ¡Mostrar!

Realice una copia de seguridad de los archivos directamente

[root@5centos mysql]# tar jcvf /beifen/bk-$(date +%F).tar.gz data
[root@5centos mysql]# ls /beifen/
bk-2020-08-20.tar.gz  bk-.tar.gz

Utilice mysqldump

备份单个库(实际上是备份库里的所有表)
[root@5centos /]# mysqldump -u root -p LIU > /beifen/JUEJUE.sql
Enter password: 

多库备份
[root@5centos beifen]# mysqldump -u root -p --databases LIU PAN > /beifen/databases-LIU_PAN.sql
Enter password: 
[root@5centos beifen]# ls
databases-LIU_PAN.sql  JUEJUE.sql

备份所有库
[root@5centos beifen]# mysqldump -u root -p --opt --all-databases > /beifen/all_databases.sql
Enter password: 

备份指定表
[root@5centos beifen]# mysqldump -u root -p LIU SHUSHU > /beifen/LIU-SHUSHU.sql
Enter password:

Restaurar la base de datos
Hay dos formas de restaurar la base de datos:
una fuente
dos mysql -u username -p <script de respaldo

mysql -u root -p mysql < /beifen/JUEJUE.sql

Respaldo incremental

Solo se respaldarán los archivos que se hayan modificado
desde la última copia de seguridad completa o copia de seguridad incremental . Las copias de seguridad incrementales son los archivos o contenidos que se han agregado o cambiado desde la última copia de seguridad.

Ventajas y desventajas de la copia de seguridad incremental

Ventajas:
sin datos duplicados, alta eficiencia, máxima utilización del espacio
, pequeño volumen de respaldo, poco tiempo.
Desventajas:
restauración problemática: se necesita el último respaldo completo y todos los respaldos incrementales después del respaldo completo para restaurar, y se requieren todos los respaldos incrementales La recuperación de empuje inverso uno por uno
es menos segura

¡Dale! ¡Mostrar!

Agregue el elemento log-bin = filepath (filepath es la ruta del archivo binario) en el elemento [mysqld] del archivo de configuración de MySQL, como log-bin = mysql-bin, y luego reinicie el servicio mysqld.

La ruta predeterminada del archivo de registro binario es / usr / local / mysql / data

La importancia del registro binario de MySQL para la copia de seguridad

El registro binario guarda todas las actualizaciones u operaciones que pueden actualizar la base de datos. El
registro binario comienza a grabar después de que se inicia el servidor MySQL y recrea un nuevo archivo de registro después de que el archivo alcanza el tamaño establecido por max_binlog_size o recibe el comando flush logs.
Solo necesita ejecutar flush logs con regularidad El método recrea un nuevo registro, genera una secuencia de archivos binarios y guarda estos registros en un lugar seguro a tiempo para completar un período de respaldo incremental.

Archivo de datos de respaldo

[root@5centos data]# systemctl stop mysqld
tar zcvf /beifen/mysql-$(date +%F).tar.gz /usr/local/mysql/data/
[root@5centos data]# systemctl start mysqld

Abrir archivo binario

[root@5centos data]# vim /etc/my.cnf
[mysqld]
……省略部分……
log-bin=mysql-bin

[root@5centos data]# systemctl restart mysqld
[root@5centos data]# ll
总用量 122928
……省略部分……发现已生成二进制文件
-rw-r-----. 1 mysql mysql      154 8月  22 22:47 mysql-bin.000001

Crear una tabla y una biblioteca de demostración

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| JUEJUE             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use JUEJUE;
Database changed
mysql> show tables;
+------------------+
| Tables_in_JUEJUE |
+------------------+
| LIULIU           |
+------------------+
1 row in set (0.00 sec)
mysql> select * from LIULIU;
+----+------+-------+
| ID | NAME | HIGHT |
+----+------+-------+
|  1 | JIAN | 175.0 |
|  2 | HAO  | 174.0 |
+----+------+-------+
2 rows in set (0.00 sec)

Haz una copia de seguridad completa

[root@5centos data]# mysqldump -u root -p JUEJUE > /beifen/JUEJUE.sql
Enter password: 

增量备份
[root@5centos data]# mysqladmin -u root -p flush-logs;
Enter password: 

查看增量日志文件
[root@5centos data]# ls
mysql-bin.000001  mysql-bin.000002

Simular mal funcionamiento

mysql> insert into LIULIU values (4,'GU',190);
Query OK, 1 row affected (0.01 sec)

mysql> insert into LIULIU values (5,'cai',180);
Query OK, 1 row affected (0.00 sec)

mysql> insert into LIULIU values (3,'SHA',180);
Query OK, 1 row affected (0.00 sec)

[root@5centos data]# mysqladmin -u root -p flush-logs;
Enter password: 

Archivos de vista

[root@5centos data]# mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000003 > /beifen/bk03.txt

[root@5centos data]# vim /beifen/bk03.txt 
##最后一条执行
# at 625
#200822 23:54:34 server id 1  end_log_pos 673 CRC32 0xd27d03dd  Write_rows: table id 108 flags: STMT_END_F
### INSERT INTO `JUEJUE`.`LIULIU`
### SET
###   @1=5
###   @2='cai'
###   @3=180.0

Recuperación simulada

mysql> drop table LIULIU;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
Empty set (0.00 sec)


基于时间
[root@5centos data]# mysqlbinlog --no-defaults --stop-datetime='2020-8-22  23;54:34' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p
Enter password: 

+----+------+-------+
| ID | NAME | HIGHT |
+----+------+-------+
|  1 | JIAN | 175.0 |
|  2 | HAO  | 174.0 |
|  4 | GU   | 190.0 |
|  5 | cai  | 180.0 |
+----+------+-------+
如果想恢复特定的,恢复时开始和结束时间分开写就行

基于位置
我这又删了,不掩饰了
[root@5centos data]# mysqlbinlog --no-defaults --stop-position='625' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p123123


+----+------+-------+
| ID | NAME | HIGHT |
+----+------+-------+
|  1 | JIAN | 175.0 |
|  2 | HAO  | 174.0 |
|  4 | GU   | 190.0 |
|  5 | cai  | 180.0 |
+----+------+-------+

Supongo que te gusta

Origin blog.csdn.net/Ora_G/article/details/108123009
Recomendado
Clasificación