>  기사  >  데이터 베이스  >  MySQL, 전체 백업 및 복구 도입

MySQL, 전체 백업 및 복구 도입

coldplay.xixi
coldplay.xixi앞으로
2021-02-13 10:00:136527검색

MySQL, 전체 백업 및 복구 도입

추천 무료 학습: mysql 동영상 튜토리얼

문서 디렉토리

  • 머리말
  • 1. MySQL 전체 백업
    • 1. 데이터베이스 백업 방법에 대한 심층 설명
      • 1.1 데이터베이스 백업 중요성
      • 1.2 데이터베이스 백업 분류
        • 1.2.1 물리적 백업
        • 1.2.2 논리적 백업
        • 1.2.3 전체 백업
        • 1.2.4 차등 백업
        • 1.2.5 증분 백업
        • 1.2.6 백업 방법 비교
      • 1.3 MySQL 전체 백업 개념 해석
    • 2.mysqldump 백업 드릴
      • 2.1 tar를 사용하여 폴더 백업 패키지
      • 2.2 mysqldump 도구를 사용하여 백업
  • 둘, MySQL 완전 복구
    • 1. 전체 데이터베이스 작업 복원
      • 1.1 전체 데이터베이스를 복원하는 소스 명령
      • 1.2 전체 데이터베이스를 복원하는 MySQL 명령
    • 2.테이블 작업 복원
      • 2.1 소스 명령을 사용하여 테이블 복원
      • 2.2 mysql 명령을 사용하여 테이블 복원
    • 3.MySQL 백업 아이디어

머리말

  • 사무 자동화 및 전자상거래, 기업의 정보시스템 의존도 증가 가치가 높을수록 데이터베이스는 정보시스템의 핵심으로 중요한 역할을 합니다
  • 데이터베이스 백업은 중요한 데이터를 적시에 복원하고, 만일의 데이터 손실을 방지하는 중요한 수단입니다 데이터 손실
  • 합리적인 데이터베이스 백업 솔루션으로 데이터 손실 시 효과적으로 데이터를 복원할 수 있으며 기술 구현의 어려움과 자원의 효과적인 사용도 고려해야 합니다

1. MySQL 전체 백업

1 . 데이터베이스 백업 방법에 대한 심층 설명

1.1 데이터베이스 백업의 중요성

생산 환경에서는 데이터 보안이 중요하며 데이터 손실은 심각한 결과를 초래할 수 있습니다.

데이터베이스 백업의 중요성은 주로 반영:

  1. 시스템 고가용성 및 재해 복구 능력 향상 데이터베이스 시스템이 충돌하면 데이터베이스 백업 없이는 데이터를 찾을 수 없습니다.
  2. 데이터베이스 백업을 사용하여 데이터베이스를 복원하는 것이 가장 저렴한 비용으로 데이터 복구를 제공하는 최고의 솔루션입니다. 데이터베이스가 충돌하면 데이터를 다시 추가하도록 허용하면 가격이 너무 높습니다.
  3. 데이터가 없으면 아무것도 없습니다. 데이터베이스 백업은 재해를 방지하는 강력한 수단입니다

데이터베이스, 데이터 손실에는 여러 가지 이유가 있습니다.

  1. 프로그램 오류: 데이터베이스 운영 프로그램에 불가피하게 일부 오류가 있어 데이터가 손실되는 것을 의미합니다.
  2. 휴먼 오류: 사용자의 부주의로 인해 데이터가 파괴되는 것을 말합니다.
  3. 컴퓨터 장애: 서버 운영체제나 데이터베이스를 운영하는 소프트웨어가 손상되어 데이터가 손상될 수 있는 경우를 말합니다.
  4. 디스크 장애: 하드 장애를 의미합니다. 데이터를 저장하는 디스크 및 기타 하드웨어 장치로 장기간 사용 시 손상되어 데이터가 손실될 수 있습니다
  5. 재난(화재, 지진 등) 및 도난: 천재지변 등으로 인해 발생할 수 있는 일을 말합니다. 데이터 손실
    데이터 손실은 심각한 경제적 손실을 초래할 수 있습니다. 예를 들어 2015년 5월 28일 Ctrip의 데이터베이스가 충돌하여 시간당 약 106만 달러의 손실이 발생했습니다
  • 따라서 기업 정보 시스템 구축에서는 데이터베이스 백업 관리가 필요합니다. 매우 중요합니다
1.2 데이터베이스 백업 분류

백업 방법에는 다양한 유형이 있습니다. 물리적, 논리적 관점에서 백업은 다음 범주로 나눌 수 있습니다.

1.2.1 물리적 백업

    을 의미합니다. 데이터베이스 운영 체제의 물리적 파일(예: 데이터 파일, 로그 파일 등)을 백업하는 것
  • 물리적 백업은 오프라인 백업(콜드 백업)과 온라인 백업(핫 백업)으로 나눌 수 있습니다. 백업)
  • 콜드 백업 (오프라인 백업): 데이터베이스가 닫힐 때 백업 작업이 수행되므로 데이터베이스의 무결성을 더 잘 보장할 수 있습니다.
  • 핫 백업(온라인 백업): 데이터베이스가 실행되는 동안 작업이 수행됩니다. 데이터베이스의 로그 파일에
1.2.2 논리적 백업

    은 데이터베이스의 논리적 구성 요소(예: 테이블 및 기타 데이터베이스 개체)의 백업을 의미합니다.
데이터베이스 백업 전략의 관점에서 , 백업은 전체 백업, 차등 백업, 증분 백업으로 나눌 수 있습니다

1.2.3 전체 백업

  • 매번 데이터 전체 백업
  • 사용자 테이블, 시스템 테이블, 인덱스, 뷰 및 저장 프로시저와 같은 모든 데이터베이스 개체를 포함하여 전체 데이터베이스를 백업할 수 있습니다.
  • 하지만 비용이 더 많이 듭니다. 시간적, 공간적으로 전체 백업을 하는 주기가 길어진다

1.2.4 차등 백업

  • 마지막 전체 백업 이후 수정된 파일을 백업한다. 즉, 데이터베이스 부분의 내용만 백업한다.
  • 마지막 전체 백업 이후 변경된 데이터베이스만 포함하기 때문에 초기 전체 백업보다 용량이 작습니다.
  • 저장 및 복구가 빠르다는 장점이 있습니다.

1.2.5 증분 백업

  • 마지막 전체 백업 이후 변경됨 백업 또는 증분 백업 후에는 수정된 파일만 백업됩니다

1.2.6 백업 방법 비교

백업 방법 전체 백업 차등 백업 증분 백업
백업 중 완료 상태 테이블 1, 테이블 2 테이블 1, 테이블 2 테이블 1, 테이블 2
처음으로 콘텐츠가 추가되었습니다 테이블 3 만들기 테이블 3 만들기 만들기 표 3
백업 내용 표 1, 표 2, 표 3 표 3 표 3
콘텐츠 2차 추가 테이블 4 만들기 테이블 4 만들기 테이블 4 만들기
백업 내용 표 1, 표 2, 표 3, 표 4 표 3, 표 4 표 4
  • 전체 백업은 데이터베이스 전체의 내용을 매번 백업합니다.
  • 차등 백업은 첫 번째 추가 후 새로 추가된 콘텐츠를 백업하고, 두 번째 추가 후 새로 추가된 콘텐츠도 백업합니다. 증분 백업은 이전에 차등 백업을 수행했는지 여부에 관계없이 매번 전체 백업 후에 모든 수정 사항을 백업합니다. 증분 백업은 새로 수정된 콘텐츠만 처음으로 백업합니다. 테이블 3을 생성하고 테이블 3을 백업합니다. 테이블 4를 두 번째 추가한 후에는 테이블 3이 이전에 백업되었기 때문에 테이블 4의 내용만 백업됩니다
  • 1.3 MySQL 전체 백업 개념 해석

MySQL의 백업 방법에는 주로 전체 백업과 증분 백업이 있습니다.

전체 백업은 데이터베이스 전체와 데이터베이스 구조, 파일 구조를 백업하는 것으로, 백업이 완료되는 시점에 데이터베이스를 저장하는 증분 백업입니다. 전체 백업의 기본
  • 전체 백업의 장점은 백업 및 복구 작업이 간단하고 편리하다는 점입니다. 단점은 데이터 중복이 많아 백업 공간을 많이 차지하고 백업 시간이 오래 걸린다는 점입니다. long
  • 프로덕션 환경에서는 두 가지 백업 방법이 모두 사용되며 공식화되어야 합니다. 데이터 백업 목적을 달성하고 데이터 손실로 인한 심각한 결과를 피하기 위한 합리적이고 효율적인 솔루션
  • 2.mysqldump 백업 훈련

MySQL 데이터베이스 백업은 두 가지 방법으로 할 수 있습니다

데이터베이스는 실제로 파일이기 때문에, 직접 데이터베이스 폴더에 패키지하거나 특수 백업 도구인 mysqldump를 사용하여 백업 작업을 수행합니다
  • 2.1 tar 패키징 폴더 백업을 사용합니다

MySQL 데이터베이스 파일은 기본적으로 안전 디렉터리의 데이터 폴더에 저장되며, 데이터 폴더를 직접 저장할 수 있습니다. 공간을 많이 차지하기 때문에 데이터 패키징 및 압축을 사용하여 저장할 수 있습니다

  • yum -y install xz#数据库文件很大,可以使用压缩率较大的xz格式压缩,首选需要安装xz压缩格式工具tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/#对数据库文件夹进行打包操作ls /opt#查看打包命令是否运行成功,已经生成了备份文件du -sh /opt/mysql-2021-02-05.tar.xz #对比打包前后的文件大小,可以看到压缩的备份文件所占用空间很小tar -Jxvf /opt/mysql-2021-02-05.tar.xz -C /usr/local/mysql/data/systemctl restart mysql#如果数据库文件损坏数据丢失,可以解压缩文件,相当于数据恢复

    MySQL, 전체 백업 및 복구 도입

2.2 mysqldump 도구를 사용하여 백업MySQL, 전체 백업 및 복구 도입

위 시연은 전체 MySQL 데이터베이스의 디렉터리를 압축하는 것입니다. 방법은 데이터베이스의 모든 내용을 백업하는 것입니다.

mysqldump는 유틸리티 프로그램입니다(포함됨) ) mysql이 저장된 데이터베이스를 전송하는 데 사용됩니다. 이는 주로 데이터베이스를 처음부터 다시 생성하는 데 필요한 명령(예: CREATE, TABLE, INSERT 등)이 포함된 SQL 스크립트를 생성합니다.
  • mysqldump를 사용하면 보다 유연하게 제어할 수 있습니다. 예를 들어 특정 테이블이나 라이브러리를 개별적으로 백업할 수 있습니다. 데이터베이스의 테이블 구조만 저장되고, 테이블에는 하나의 라이브러리만 존재한다는 것을 알 수 있는데, 같은 이름의 테이블이 먼저 삭제된 후 생성되는 것을 볼 수 있습니다. MySQL 명령. MySQL에서는 어떤 명령문이든 실행할 수 있습니다. 이 명령문을 사용하면 현재 테이블과 동일한 구조의 테이블을 생성할 수 있습니다.
  • -d 옵션을 사용하지 않으면 데이터도 백업됩니다. 데이터를 살펴보면 저장된
  • #开始之前,创建库和表,用作例子mysql -uroot -p123123#输入密码进入数据库,以上为我的密码create database SCHOOL;#创建库use SCHOOL;create table CLASS01 ( id int(2) not null auto_increment, name varchar(10) not null, sex char(5) not null, hobby varchar(10), primary key (id));#创建表结构#字段一:id,最大显示长度2,不能为空,自动递增从1开始#字段二:name,可变长度字段,10,不能为空#字段三:sex,固定长度5,不能为空#字段四:hobby,可变长度,最多10字符#字段四:主键(id)insert into CLASS01 values(1,'wangyi','man','reading');insert into CLASS01 values(2,'wanger','woman','singing');#插入2条数据select * from CLASS01;#检查一下quit#退出数据库

MySQL, 전체 백업 및 복구 도입

과 -d 매개변수의 차이점은 insert into 문이 마지막에 나타나고 두 개의 데이터가 데이터베이스에 삽입된다는 점입니다. 데이터의 백업은 저장된 insert 문 작업입니다.

MySQL, 전체 백업 및 복구 도입위의 분석을 통해 백업의 본질은 데이터베이스의 현재 테이블 구조에 대한 생성 문과 기존 데이터의 삽입 문을 저장하는 것임을 쉽게 이해할 수 있습니다. . 이를 사용하면 데이터베이스 상태를 직접 복원할 수 있습니다

MySQL, 전체 백업 및 복구 도입
MySQL, 전체 백업 및 복구 도입 2. MySQL 완전 복구

MySQL, 전체 백업 및 복구 도입

앞서 mysqldump 도구를 사용하여 데이터 생성 문을 백업에 저장하는 방법을 소개했습니다. 스크립트 파일
  • 오류가 발생하면 다음 방법을 사용하여 복원할 수 있습니다.
  • 1. 복구 전체 데이터베이스 작업

MySQL, 전체 백업 및 복구 도입1.1 소스 명령 전체 데이터베이스 복구

    #使用 mysqldump 对某些表进行完全备份,命令格式如下:mysqldump -u[用户名] -p[密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名.sql#导出的为数据库脚本文件例:对库SCHOOL中的表class进行备份至/opt/目录下mysqldump -uroot -p[密码] SCHOOL CLASS01 > /opt/test01.sql
  • 1.2 MySQL 명령 전체 데이터베이스 Recovery

    #对某些库进行完全备份mysqldump -uroot -p[密码] [数据库名] > /目录/备份文件名.sql例:mysqldump -uroot -p123123 SCHOOL > /opt/test02#对多个库进行完全备份mysqldump -uroot -p123123 --databases SCHOOL sys > /opt/test03.sql#对所有库进行完全备份mysqldump -uroot -p123123 --all-databases > /opt/test04.sql#直接备份表结构mysqldump -uroot -p123123 -d SCHOOL CLASS01 > /opt/test05.sqlls /opt/#查看打包命令是否运行成功,已经生成了备份文件
    • 2. 복구 테이블 작업
    데이터 테이블도 사용할 수 있습니다. 소스 명령 및 mysql 명령 작업

    2.1 소스 명령을 사용하여 테이블 복원

    mysql -uroot -p123123use SCHOOL;show tables;drop table CLASS01;
     source /opt/test01.sql#恢复表show tables;select * from CLASS01;#查看

    MySQL, 전체 백업 및 복구 도입
    MySQL, 전체 백업 및 복구 도입

    2.2 使用 mysql 命令恢复表

    quitmysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'mysql -uroot -p123123 -e 'DROP TABLES SCHOOL.CLASS01;'mysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'mysql -uroot -p123123 SCHOOL <p><img src="https://img.php.cn/upload/article/000/000/052/29945f61915e1a240cc5e16f53f849e5-12.png" alt="MySQL, 전체 백업 및 복구 도입"></p><p><strong>3.MySQL 备份思路</strong></p>
    • MySQL 需要定期实施备份,指定合适的备份计划或策略,并严格遵守
    • 除了进行完全备份,开启 MySQL 服务器的日志功能也很重要,完全备份加上日志,可以对 MySQL 进行最大化还原
    • 备份文件的名字还需钥使用统一的易于理解的名称,推荐使用库名或表名加上时间的命名规则,在需要恢复数据库时能很容易的定位到相应的所需备份文件

    相关免费学习推荐:mysql数据库(视频)

    위 내용은 MySQL, 전체 백업 및 복구 도입의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

  • 성명:
    이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제