MySQL 사례 해결-MySQL 데이터베이스의 콜드 백업

머리말

이 환경은 Centos 7.8 시스템을 기반으로
특정 구성 을 위해 MySQL-5.7.14를 빌드 합니다. MySQL-5.7.14 환경 구성을 참조하십시오.

백업은 시스템에서 고려해야 할 가장 중요한 사항입니다. 시스템의 전체 계획, 개발 및 테스트 프로세스에서 차지하는 비중은 1 % 미만이지만 중요하지 않고 모호해 보이는 작업은 복원 되어야만 진정으로 반영 될 수 있습니다. 이는 데이터 손실 및 데이터 다운 머신을 보려는 시도를 수신 할 수 없다는 것입니다. 데이터베이스 백업도 중요하며 다음으로 MySQL 데이터베이스 전략을 소개합니다.


1. 데이터베이스 백업 유형

백업 분류

1. 핫 백업, 웜 백업, 콜드 백업 (서버 상태에 따라 다름)

  • 핫 백업 : 읽기 및 쓰기는 영향을받지 않습니다.
  • 웜 백업 : 읽기 작업 만 수행 할 수 있습니다.
  • 콜드 백업 : 오프라인 백업, 읽기 및 쓰기 작업이 중단됩니다.

2. 물리적 백업 및 논리적 백업 (개체에서 분리)

  • 물리적 백업 : 데이터 파일 복사;
  • 논리적 백업 : 데이터를 텍스트 파일로 내 보냅니다.

3. 전체 백업, 증분 백업, 차등 백업 (데이터 수집에서 분리)

  • 전체 백업 : 모든 데이터를 백업합니다.
  • 증분 백업 : 마지막 전체 백업 또는 증분 백업 이후 변경된 데이터 만 백업합니다.
  • 차등 백업 : 마지막 전체 백업 이후 변경된 데이터 만 백업

백업 전략의
여기에 사진 설명 삽입
장단점 비교
여기에 사진 설명 삽입

논리적 백업의 장단점

1. 논리적 백업의 장점 :

  • 백업 속도 측면에서 두 가지 유형의 백업은 서로 다른 스토리지 엔진에 따라 다릅니다.
  • 물리적 백업의 복원 속도는 매우 빠릅니다. 그러나 물리적 백업의 최소 세분성은 테이블에 대해서만 수행 할 수 있습니다.
  • 논리적 백업의 구조는 일반적으로 순수 ASCII이므로 텍스트 처리 도구를 사용하여
  • 논리적 백업은 호환성이 매우 강력하지만 물리적 백업은 버전 요구 사항이 매우 높습니다.
  • 논리적 백업은 데이터 보안도 보장합니다.

2. 논리적 백업의 단점 :

  • 논리 백업은 RDBMS에 추가 부담을주는 반면 베어 백업에는 부담이 없습니다.
  • 논리적 백업의 결과는 소스 파일보다 클 수 있습니다. 너무 많은 사람들이 백업 내용을 압축합니다.
  • 논리 백업은 부동 소수점 숫자의 정밀도 정보를 잃을 수 있습니다.

둘째, 데이터베이스 백업의 내용

  • 데이터 파일
  • 로그 파일 (예 : 트랜잭션 로그, 바이너리 로그)
  • 저장 프로 시저, 저장 함수, 트리거
  • 구성 파일 (매우 중요하며 각 구성 파일을 백업해야 함)
  • 데이터베이스 백업을 구현하는 데 사용되는 스크립트, 데이터베이스 정리를위한 Crontab 등

3. MySQL 데이터베이스의 콜드 백업

1. 환경 준비

Centos 시스템을 기반으로하는 두 개의 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> 

데이터 백업이 완료되었습니다! ! !

추천

출처blog.csdn.net/XY0918ZWQ/article/details/112716143