Backup frio do banco de dados MySQL
Prefácio
Este ambiente é baseado no sistema Centos 7.8 para construir o MySQL-5.7.14 para
construção específica, consulte a construção do ambiente MySQL-5.7.14
O backup é a coisa mais importante a se considerar no sistema. Embora representem menos de 1% de todo o processo de planejamento, desenvolvimento e teste do sistema, trabalhos aparentemente sem importância e obscuros só podem ser realmente refletidos quando são restaurados. A importância disso é que qualquer perda de dados e qualquer tentativa de ver os dados inativos da máquina não podem ser recebidos. O backup do banco de dados também é importante.A seguir, apresentaremos a estratégia de banco de dados MySQL.
1. Tipo de backup de banco de dados
Classificação de backups
1. Backup quente, backup quente, backup frio (de acordo com o status do servidor)
- Backup ativo: leitura e gravação não são afetadas;
- Backup morno: apenas operações de leitura podem ser realizadas;
- Backup frio: backup offline; operações de leitura e gravação são canceladas;
2. Backup físico e backup lógico (dividido do objeto)
- Backup físico: copie arquivos de dados;
- Backup lógico: exporte dados para um arquivo de texto;
3. Backup completo, backup incremental, backup diferencial (dividido da coleta de dados)
- Backup completo: faça backup de todos os dados;
- Backup incremental: faça backup apenas dos dados que foram alterados desde o último backup completo ou backup incremental;
- Backup diferencial: faça backup apenas dos dados que foram alterados desde o último backup completo
Comparação de vantagens e desvantagens de estratégias de backup
Vantagens e desvantagens do backup lógico
1. Vantagens do backup lógico:
- Em termos de velocidade de backup, os dois tipos de backups dependem de diferentes mecanismos de armazenamento
- A velocidade de restauração do backup físico é muito rápida. Mas a granularidade mínima do backup físico só pode ser feita para tabelas
- A estrutura do backup lógico é geralmente ASCII puro, então podemos usar ferramentas de processamento de texto para processar
- O backup lógico tem compatibilidade muito forte, enquanto o backup físico tem requisitos de versão muito altos
- O backup lógico também garante a segurança dos dados
2. Desvantagens do backup lógico:
- O backup lógico coloca pressão extra no RDBMS, enquanto o backup simples não tem pressão
- O resultado do backup lógico pode ser maior do que o arquivo de origem. Muitas pessoas compactam o conteúdo do backup
- O backup lógico pode perder as informações de precisão dos números de ponto flutuante
Em segundo lugar, o conteúdo do backup do banco de dados
- arquivos de dados
- Arquivos de log (como logs de transações, logs binários)
- Procedimentos armazenados, funções armazenadas, gatilhos
- Arquivo de configuração (muito importante, cada arquivo de configuração deve ter backup)
- Scripts usados para implementar backup de banco de dados, Crontab para limpeza de banco de dados, etc ...
3. Backup frio do banco de dados MySQL
1. Preparação ambiental
Dois servidores MySQL-7.5.14
node01 e node02 baseados no sistema Centos
2. Requisitos de backup
Requisito: Faça backup de todos os dados do banco de dados MySQL de node01 para o servidor de banco de dados de node02 e garanta a disponibilidade dos dados de backup no servidor de node02
3. Processo de backup
Exibir informações do banco de dados do servidor node01
mysql> use db1;
Database changed
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| fruits |
+---------------+
1 row in set (0.00 sec)
mysql> select * from fruits;
+------+------+------------+---------+
| f_id | s_id | f_name | f_price |
+------+------+------------+---------+
| a1 | 101 | apple | 5.20 |
| a2 | 103 | apricot | 2.20 |
| b1 | 101 | blackberry | 10.20 |
| b2 | 104 | berry | 7.60 |
| b5 | 107 | xxxx | 3.60 |
| bs1 | 102 | orange | 11.20 |
| bs2 | 105 | melon | 8.20 |
| c0 | 101 | cherry | 3.20 |
| l2 | 104 | lemon | 6.40 |
| m1 | 106 | mango | 15.60 |
| m2 | 105 | xbabay | 2.60 |
| m3 | 105 | xxtt | 11.60 |
| o2 | 103 | coconut | 9.20 |
| t1 | 102 | banana | 10.30 |
| t2 | 102 | grape | 5.30 |
| t4 | 107 | xbababa | 3.60 |
+------+------+------------+---------+
16 rows in set (0.00 sec)
mysql>
nó node01, comece a empacotar os arquivos de backup do banco de dados
# 停止mysqld服务
[root@mysql-yum ~]# systemctl stop mysqld
# 打包文件
[root@mysql-yum ~]# cd /var/lib/mysql
[root@mysql-yum mysql]# ll
total 110660
-rw-r-----. 1 mysql mysql 56 Jan 14 13:38 auto.cnf
-rw-------. 1 mysql mysql 1679 Jan 14 13:38 ca-key.pem
-rw-r--r--. 1 mysql mysql 1074 Jan 14 13:38 ca.pem
-rw-r--r--. 1 mysql mysql 1078 Jan 14 13:38 client-cert.pem
-rw-------. 1 mysql mysql 1679 Jan 14 13:38 client-key.pem
drwxr-x--- 2 mysql mysql 56 Jan 16 17:30 db1
-rw-r----- 1 mysql mysql 309 Jan 16 17:34 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Jan 16 17:34 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Jan 16 17:34 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Jan 14 13:38 ib_logfile1
drwxr-x---. 2 mysql mysql 4096 Jan 14 13:38 mysql
drwxr-x---. 2 mysql mysql 8192 Jan 14 13:38 performance_schema
-rw-------. 1 mysql mysql 1679 Jan 14 13:38 private_key.pem
-rw-r--r--. 1 mysql mysql 451 Jan 14 13:38 public_key.pem
-rw-r--r--. 1 mysql mysql 1078 Jan 14 13:38 server-cert.pem
-rw-------. 1 mysql mysql 1675 Jan 14 13:38 server-key.pem
drwxr-x---. 2 mysql mysql 8192 Jan 14 13:38 sys
[root@mysql-yum mysql]# tar czf /opt/mysql_datafile.bak.tar.gz *
[root@mysql-yum mysql]# ll /opt/
total 1348
-rw-r--r-- 1 root root 1378773 Jan 16 17:42 mysql_datafile.bak.tar.gz
# 拷贝文件
[root@mysql-yum mysql]# scp /opt/mysql_datafile.bak.tar.gz 192.168.5.12:/opt/
node02 nó inicia, dados de resposta
# 查看备份数据包
[root@mysql-rpm ~]# ll /opt/mysql_datafile.bak.tar.gz
-rw-r--r-- 1 root root 1378773 Jan 16 17:43 /opt/mysql_datafile.bak.tar.gz
# 停止mysqld服务
[root@mysql-rpm ~]# systemctl stop mysqld
# 删除原有的mysqld服务数据存放目录的文件
[root@mysql-rpm ~]# cd /var/lib/mysql
[root@mysql-rpm mysql]# rm -rf ./*
# 解压备份数据到mysqld服务数据存放目录
[root@mysql-rpm mysql]# tar xf /opt/mysql_datafile.bak.tar.gz -C /var/lib/mysql
[root@mysql-rpm mysql]# ll
total 110660
-rw-r----- 1 mysql mysql 56 Jan 14 13:38 auto.cnf
-rw------- 1 mysql mysql 1679 Jan 14 13:38 ca-key.pem
-rw-r--r-- 1 mysql mysql 1074 Jan 14 13:38 ca.pem
-rw-r--r-- 1 mysql mysql 1078 Jan 14 13:38 client-cert.pem
-rw------- 1 mysql mysql 1679 Jan 14 13:38 client-key.pem
drwxr-x--- 2 mysql mysql 56 Jan 16 17:30 db1
-rw-r----- 1 mysql mysql 309 Jan 16 17:34 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Jan 16 17:34 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jan 16 17:34 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Jan 14 13:38 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 Jan 14 13:38 mysql
drwxr-x--- 2 mysql mysql 8192 Jan 14 13:38 performance_schema
-rw------- 1 mysql mysql 1679 Jan 14 13:38 private_key.pem
-rw-r--r-- 1 mysql mysql 451 Jan 14 13:38 public_key.pem
-rw-r--r-- 1 mysql mysql 1078 Jan 14 13:38 server-cert.pem
-rw------- 1 mysql mysql 1675 Jan 14 13:38 server-key.pem
drwxr-x--- 2 mysql mysql 8192 Jan 14 13:38 sys
# 启动mysqld服务
[root@mysql-rpm mysql]# systemctl start mysqld
[root@mysql-rpm mysql]# netstat -lnutp | grep mysqld
tcp6 0 0 :::3306 :::* LISTEN 2135/mysqld
efeito de backup de verificação de nó node02
[root@mysql-rpm mysql]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.14 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> use db1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| fruits |
+---------------+
1 row in set (0.00 sec)
mysql> select * from fruits;
+------+------+------------+---------+
| f_id | s_id | f_name | f_price |
+------+------+------------+---------+
| a1 | 101 | apple | 5.20 |
| a2 | 103 | apricot | 2.20 |
| b1 | 101 | blackberry | 10.20 |
| b2 | 104 | berry | 7.60 |
| b5 | 107 | xxxx | 3.60 |
| bs1 | 102 | orange | 11.20 |
| bs2 | 105 | melon | 8.20 |
| c0 | 101 | cherry | 3.20 |
| l2 | 104 | lemon | 6.40 |
| m1 | 106 | mango | 15.60 |
| m2 | 105 | xbabay | 2.60 |
| m3 | 105 | xxtt | 11.60 |
| o2 | 103 | coconut | 9.20 |
| t1 | 102 | banana | 10.30 |
| t2 | 102 | grape | 5.30 |
| t4 | 107 | xbababa | 3.60 |
+------+------+------------+---------+
16 rows in set (0.00 sec)
mysql>
O backup de dados está completo! ! !