Sauvegarde à froid de la base de données MySQL
Préface
Cet environnement est basé sur le système Centos 7.8 pour construire MySQL-5.7.14 pour
une construction spécifique, veuillez vous référer à la construction de l'environnement MySQL-5.7.14
La sauvegarde est la chose la plus importante à prendre en compte dans le système. Bien qu'elle représente moins de 1% de l'ensemble du processus de planification, de développement et de test du système, un travail apparemment insignifiant et obscur ne peut être véritablement reflété que lorsqu'il est restauré. L'importance de ceci est que toute perte de données et toute tentative de voir les données vers le bas de la machine ne peuvent pas être reçues. La sauvegarde de la base de données est également importante, puis nous présenterons la stratégie de base de données MySQL.
1. Type de sauvegarde de la base de données
Classification des sauvegardes
1. Sauvegarde à chaud, sauvegarde à chaud, sauvegarde à froid (selon l'état du serveur)
- Sauvegarde à chaud: la lecture et l'écriture ne sont pas affectées;
- Sauvegarde à chaud: seules les opérations de lecture peuvent être effectuées;
- Sauvegarde à froid: sauvegarde hors ligne, les opérations de lecture et d'écriture sont abandonnées;
2. Sauvegarde physique et sauvegarde logique (séparées de l'objet)
- Sauvegarde physique: copie des fichiers de données;
- Sauvegarde logique: exportez les données vers un fichier texte;
3. Sauvegarde complète, sauvegarde incrémentielle, sauvegarde différentielle (séparée de la collecte de données)
- Sauvegarde complète: sauvegarde toutes les données;
- Sauvegarde incrémentielle: ne sauvegardez que les données qui ont changé depuis la dernière sauvegarde complète ou incrémentielle;
- Sauvegarde différentielle: ne sauvegardez que les données qui ont changé depuis la dernière sauvegarde complète
Comparaison des avantages et des inconvénients des stratégies de sauvegarde
Avantages et inconvénients de la sauvegarde logique
1. Avantages de la sauvegarde logique:
- En termes de vitesse de sauvegarde, les deux types de sauvegardes dépendent de moteurs de stockage différents
- La vitesse de restauration de la sauvegarde physique est très rapide. Mais la granularité minimale de la sauvegarde physique ne peut être effectuée que pour les tables
- La structure de la sauvegarde logique est généralement pur ASCII, nous pouvons donc utiliser des outils de traitement de texte pour traiter
- La sauvegarde logique a une très forte compatibilité, tandis que la sauvegarde physique a des exigences de version très élevées
- La sauvegarde logique garantit également la sécurité des données
2. Inconvénients de la sauvegarde logique:
- La sauvegarde logique met une pression supplémentaire sur le SGBDR, tandis que la sauvegarde nue n'a aucune pression
- Le résultat de la sauvegarde logique peut être plus volumineux que le fichier source. Tant de personnes compressent le contenu de la sauvegarde
- La sauvegarde logique peut perdre les informations de précision des nombres à virgule flottante
Deuxièmement, le contenu de la sauvegarde de la base de données
- fichiers de données
- Fichiers journaux (tels que les journaux de transactions, les journaux binaires)
- Procédures stockées, fonctions stockées, déclencheurs
- Fichier de configuration (très important, chaque fichier de configuration doit être sauvegardé)
- Scripts utilisés pour implémenter la sauvegarde de la base de données, Crontab pour le nettoyage de la base de données, etc ...
3. Sauvegarde à froid de la base de données MySQL
1. Préparation de l'environnement
Deux serveurs MySQL-7.5.14
node01 et node02 basés sur le système Centos
2. Exigences de sauvegarde
Condition: sauvegarder toutes les données de la base de données MySQL de node01 sur le serveur de base de données de node02, et assurer la disponibilité des données de sauvegarde sur le serveur de node02
3. Processus de sauvegarde
Afficher les informations de base de données du serveur de nœuds 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>
node01, commencez à emballer les fichiers de sauvegarde de la base de données
# 停止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 démarre le nœud, répondez aux données
# 查看备份数据包
[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
noeud02 effet de sauvegarde de vérification de nœud
[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>
La sauvegarde des données est terminée! ! !