MySQLデータベースのコールドバックアップ
序文
この環境は、
特定の構築のためにMySQL-5.7.14を構築するためのCentos7.8システムに基づいています。MySQL-5.7.14環境構築を参照してください。
バックアップは、システムで考慮すべき最も重要なことです。バックアップは、システムの計画、開発、およびテストプロセス全体の1%未満しか占めていませんが、一見重要でなく、あいまいな作業は、復元されたときにのみ真に反映されます。重要性これは、データの損失やデータダウンマシンを確認しようとする試みを受信できないことです。データベースのバックアップも重要です。次に、MySQLデータベース戦略を紹介します。
1.データベースのバックアップタイプ
バックアップの分類
1.ホットバックアップ、ウォームバックアップ、コールドバックアップ(サーバーのステータスに応じて)
- ホットバックアップ:読み取りと書き込みは影響を受けません。
- ウォームバックアップ:読み取り操作のみを実行できます。
- コールドバックアップ:オフラインバックアップ。読み取りおよび書き込み操作は中止されます。
2.物理バックアップと論理バックアップ(オブジェクトから分割)
- 物理バックアップ:データファイルをコピーします。
- 論理バックアップ:データをテキストファイルにエクスポートします。
3.完全バックアップ、増分バックアップ、差分バックアップ(データ収集から分割)
- フルバックアップ:すべてのデータをバックアップします。
- 増分バックアップ:最後の完全バックアップまたは増分バックアップ以降に変更されたデータのみをバックアップします。
- 差分バックアップ:最後の完全バックアップ以降に変更されたデータのみをバックアップします
バックアップ戦略の
長所と短所の比較
論理バックアップの長所と短所
1.論理バックアップの利点:
- バックアップ速度に関しては、2つのタイプのバックアップは異なるストレージエンジンに依存します
- 物理バックアップの復元速度は非常に高速です。ただし、物理バックアップの最小粒度はテーブルに対してのみ実行できます
- 論理バックアップの構造は通常純粋なASCIIであるため、テキスト処理ツールを使用して処理できます
- 論理バックアップには非常に強力な互換性がありますが、物理バックアップには非常に高いバージョン要件があります
- 論理バックアップはデータのセキュリティも保証します
2.論理バックアップのデメリット:
- 論理バックアップはRDBMSに余分なプレッシャーをかけますが、ベアバックアップにはプレッシャーはありません
- 論理バックアップの結果は、ソースファイルよりも大きくなる可能性があります。非常に多くの人がバックアップの内容を圧縮します
- 論理バックアップでは、浮動小数点数の精度情報が失われる可能性があります
第二に、データベースバックアップの内容
- データファイル
- ログファイル(トランザクションログ、バイナリログなど)
- ストアドプロシージャ、ストアド関数、トリガー
- 構成ファイル(非常に重要です。各構成ファイルをバックアップする必要があります)
- データベースのバックアップ、データベースのクリーニング用のCrontabなどを実装するために使用されるスクリプト...
3.MySQLデータベースのコールドバックアップ
1.環境への備え
Centosシステムに基づく2つのMySQL-7.5.14サーバー
node01およびnode02
2.バックアップ要件
要件:node01のMySQLデータベースのすべてのデータをnode02のデータベースサーバーにバックアップし、node02のサーバーでバックアップデータの可用性を確保します
3.バックアッププロセス
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ノード、データベースバックアップファイルのパックを開始します
# 停止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ノードが起動し、データに応答します
# 查看备份数据包
[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
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>
データのバックアップが完了しました。!!