집 >데이터 베이스 >MySQL 튜토리얼 >MySQL, 전체 백업 및 복구 도입
추천 무료 학습: mysql 동영상 튜토리얼
문서 디렉토리
머리말
1. MySQL 전체 백업
1 . 데이터베이스 백업 방법에 대한 심층 설명
1.1 데이터베이스 백업의 중요성
생산 환경에서는 데이터 보안이 중요하며 데이터 손실은 심각한 결과를 초래할 수 있습니다.
데이터베이스 백업의 중요성은 주로 반영:
- 시스템 고가용성 및 재해 복구 능력 향상 데이터베이스 시스템이 충돌하면 데이터베이스 백업 없이는 데이터를 찾을 수 없습니다.
- 데이터베이스 백업을 사용하여 데이터베이스를 복원하는 것이 가장 저렴한 비용으로 데이터 복구를 제공하는 최고의 솔루션입니다. 데이터베이스가 충돌하면 데이터를 다시 추가하도록 허용하면 가격이 너무 높습니다.
- 데이터가 없으면 아무것도 없습니다. 데이터베이스 백업은 재해를 방지하는 강력한 수단입니다
데이터베이스, 데이터 손실에는 여러 가지 이유가 있습니다.
- 프로그램 오류: 데이터베이스 운영 프로그램에 불가피하게 일부 오류가 있어 데이터가 손실되는 것을 의미합니다.
- 휴먼 오류: 사용자의 부주의로 인해 데이터가 파괴되는 것을 말합니다.
- 컴퓨터 장애: 서버 운영체제나 데이터베이스를 운영하는 소프트웨어가 손상되어 데이터가 손상될 수 있는 경우를 말합니다.
- 디스크 장애: 하드 장애를 의미합니다. 데이터를 저장하는 디스크 및 기타 하드웨어 장치로 장기간 사용 시 손상되어 데이터가 손실될 수 있습니다
재난(화재, 지진 등) 및 도난: 천재지변 등으로 인해 발생할 수 있는 일을 말합니다. 데이터 손실
백업 방법에는 다양한 유형이 있습니다. 물리적, 논리적 관점에서 백업은 다음 범주로 나눌 수 있습니다.1.2.1 물리적 백업
데이터베이스 백업 전략의 관점에서 , 백업은 전체 백업, 차등 백업, 증분 백업으로 나눌 수 있습니다
백업 방법 | 전체 백업 | 차등 백업 | 증분 백업 |
---|---|---|---|
백업 중 완료 상태 | 테이블 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 |
MySQL의 백업 방법에는 주로 전체 백업과 증분 백업이 있습니다.
전체 백업은 데이터베이스 전체와 데이터베이스 구조, 파일 구조를 백업하는 것으로, 백업이 완료되는 시점에 데이터베이스를 저장하는 증분 백업입니다. 전체 백업의 기본MySQL 데이터베이스 백업은 두 가지 방법으로 할 수 있습니다
데이터베이스는 실제로 파일이기 때문에, 직접 데이터베이스 폴더에 패키지하거나 특수 백업 도구인 mysqldump를 사용하여 백업 작업을 수행합니다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#如果数据库文件损坏数据丢失,可以解压缩文件,相当于数据恢复
2.2 mysqldump 도구를 사용하여 백업
위 시연은 전체 MySQL 데이터베이스의 디렉터리를 압축하는 것입니다. 방법은 데이터베이스의 모든 내용을 백업하는 것입니다.
mysqldump는 유틸리티 프로그램입니다(포함됨) ) mysql이 저장된 데이터베이스를 전송하는 데 사용됩니다. 이는 주로 데이터베이스를 처음부터 다시 생성하는 데 필요한 명령(예: CREATE, TABLE, INSERT 등)이 포함된 SQL 스크립트를 생성합니다.#开始之前,创建库和表,用作例子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#退出数据库
위의 분석을 통해 백업의 본질은 데이터베이스의 현재 테이블 구조에 대한 생성 문과 기존 데이터의 삽입 문을 저장하는 것임을 쉽게 이해할 수 있습니다. . 이를 사용하면 데이터베이스 상태를 직접 복원할 수 있습니다
2. MySQL 완전 복구
1.1 소스 명령 전체 데이터베이스 복구
#使用 mysqldump 对某些表进行完全备份,命令格式如下:mysqldump -u[用户名] -p[密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名.sql#导出的为数据库脚本文件例:对库SCHOOL中的表class进行备份至/opt/目录下mysqldump -uroot -p[密码] SCHOOL CLASS01 > /opt/test01.sql
#对某些库进行完全备份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.1 소스 명령을 사용하여 테이블 복원
2.2 使用 mysql 命令恢复表 相关免费学习推荐:mysql数据库(视频)mysql -uroot -p123123use SCHOOL;show tables;drop table CLASS01;
source /opt/test01.sql#恢复表show tables;select * from CLASS01;#查看
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, 전체 백업 및 복구 도입의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!