>  기사  >  데이터 베이스  >  MySQL 백업 및 복구에 대한 자세한 설명

MySQL 백업 및 복구에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-01 13:43:041100검색

MySQL 데이터 백업

mySQL에는 논리적 백업과 물리적 백업이 있습니다. 논리적 백업의 가장 큰 장점은 다양한 스토리지 엔진의 백업에도 동일한 방법을 사용할 수 있다는 점이다. 물리적 백업은 다르며, 스토리지 엔진마다 백업 방법이 다릅니다.

논리적 백업 및 복구

백업

MySQL에서 논리적 백업은 mysqldump를 사용하여 데이터베이스의 데이터를 텍스트 파일로 백업한 내용을 볼 수 있다. 그리고 편집되었습니다. 백업 범위에 따라 백업은 다음 세 가지 백업 유형으로 나눌 수 있습니다.

  • 지정된 데이터베이스 또는 데이터베이스의 일부 테이블 백업
    mysqldump [옵션] 데이터베이스 이름 [테이블 이름] > data.sql

  • 지정된 여러 데이터베이스 백업
    mysqldump [옵션] –database > data.sql 데이터베이스 1 데이터베이스 2 데이터베이스 3...

  • 모든 데이터베이스 백업
    mysqldump [옵션] –all-database > data.sql
    분석: [옵션] 백업 시 필요한 권한 정보 등 mysqldump –help를 통해 볼 수 있는 mysqldump에 대한 많은 옵션이 있습니다. 데이터 백업의 일관성을 보장하려면 MySQL 스토리지 엔진이 북쪽에 있을 때 -l 매개변수를 추가해야 합니다. 이는 백업 기간 동안 모든 테이블에 읽기 잠금을 추가한다는 의미입니다. , 쓰지 않았습니다. 그러나 InnoDB 엔진의 경우 –single-transaction을 사용할 수 있습니다. data.sql이 백업한 데이터 파일
    매개변수:
    l: 모든 테이블 잠금을 나타냅니다.
    f: 새 날짜 파일 생성을 나타냅니다.

인스턴스는 xxpt입니다. 데이터베이스의 모든 테이블은 dequan.sql 테이블에 백업됩니다. 명령은 다음과 같습니다.
mysqldump -uroot -p xxpt >dequan.sql
MySQL 백업 및 복구에 대한 자세한 설명
위에서 백업 경로를 지정하지 않았기 때문에 기본적으로 현재 경로로 백업됩니다. 경로이므로 백업은 D:wampbinmysqlmysql5에 있습니다. .6.17bin 경로가 다운되었습니다.

복원

전체 복원

Mysqldump 복구도 매우 간단합니다. 백업을 입력으로 사용하면 됩니다. 그 결과는 다음과 같습니다.
mysql -uroot -p dbname

불완전 복구

불완전 복구에는 시점 복구와 위치 기반 복구가 포함됩니다. 시점과 위치는 바이너리 로그(binlog log)의 시점과 위치에 해당합니다.
MySQL 백업 및 복구에 대한 자세한 설명

시점 기준

데이터룸이 오후 4시부터 5시 사이에 잘못 설정되어 있으면 복구 시 건너뛰어야 합니다. . 먼저 binlog 로그를 살펴보겠습니다. 예를 들어, 오후 4시 이후에 데이터를 업데이트하는 것은 잘못된 것이므로 복구 중에 건너뛰어야 합니다. 오후 5시 이후에 데이터를 삭제하는 것은 정확하며 유지되어야 합니다.
MySQL 백업 및 복구에 대한 자세한 설명
1. mysql -uroot -p dbname을 통해

위치 기반 복구

위치 복구를 사용할 때는 먼저 binlog 로그 파일을 확인해야 합니다. 위치 번호를 입력한 후 다음 명령을 사용하여 복원합니다.
mysqlbinlog D:wampbinmysqlmysql5.6.17datamybinlog.000012 –stop-position=716406|mysql -uroot -p
5포인트 이후 작업 복원
D: wampbinmysqlmysql5.6.17datamybinlog .000012 –start-position=723613|mysql -uroot -p
MySQL 백업 및 복구에 대한 자세한 설명

물리적 백업 및 복구

물리적 백업은 콜드 백업과 핫 백업으로 구분됩니다. . 논리적 백업에 비해 가장 큰 장점은 빠른 백업 및 복구 속도입니다. 물리적 백업의 원칙은 파일 cp를 기반으로 하기 때문입니다.

콜드 백업 및 복구

콜드 백업은 실제로 데이터베이스 서비스를 중지하고 데이터 파일을 복사하는 방법입니다. 이 방법은 MyISAM과 InnoDB 모두에 적합합니다.
복원: 먼저 Mysql 서비스를 중지하고 운영 체제 수준에서 MySQL 데이터 파일을 복원한 다음 Mysql 서비스를 다시 시작하고 Mysqlbinlog 도구를 사용하여 백업 이후의 모든 binlog를 복원합니다.

핫 백업

mysql의 다양한 스토리지 엔진의 핫 백업은 다릅니다.

MyISAM 스토리지 엔진

MyISAM 스토리지 엔진의 백업 원리는 백업할 테이블에 읽기 잠금을 추가한 후 해당 데이터 파일을 백업 디렉터리에 복사하는 것입니다. 일반적인 방법

  • 방법 1: mysqlhotcop 사용
    mysqlhotcop db_name [디렉토리]

  • 방법 2: 수동으로 테이블 복사본 잠금
    먼저 데이터베이스의 모든 테이블에 읽기 잠금을 추가한 다음 데이터를 보호합니다.
    읽기 잠금으로 모든 테이블 플러시 테이블을 잠급니다.
    MySQL 백업 및 복구에 대한 자세한 설명

InnoDB 스토리지 엔진

학습...

테이블 가져오기 및 내보내기

내보내기

  • SELECT …INTO OUTFILE …+[options] 명령을 사용하여 구현합니다.
    옵션 매개변수는 다음과 같습니다
    MySQL 백업 및 복구에 대한 자세한 설명
    기본 경로는 데이터에 해당하는 경로입니다.
    MySQL 백업 및 복구에 대한 자세한 설명
    MySQL 백업 및 복구에 대한 자세한 설명

  • mysqldump 사용
    mysqldump - u 사용자 이름 -T targetDir dbname tableName[options]
    예:
    mysqldump -uroot -p -T D:/wamp/bin/mysql/mysql5.6.17/ xxpt t1
    표시된 것처럼 두 개의 파일이 생성됩니다. 아래:
    MySQL 백업 및 복구에 대한 자세한 설명
    t1.txt에 데이터 정보가 저장됩니다. t1.sql 파일의 내용은 다음과 같습니다

-- MySQL dump 10.13  Distrib 5.6.17, for Win32 (x86)
---- Host: localhost    Database: xxpt
-- ------------------------------------------------------
-- Server version   5.6.17-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
---- Table structure for table `t1`--DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (  `id1` int(11) NOT NULL DEFAULT '0',  
`id2` int(3) unsigned zerofill NOT NULL DEFAULT '000') ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2016-04-18 19:30:51

가져오기

방법 1:
데이터 인파일 로드
예:
데이터 인파일 'D:/wamp/bin/mysql/mysql5.6.17/t1.txt'를 테이블 t1에 로드
MySQL 백업 및 복구에 대한 자세한 설명

방법 2: mysqlinport 사용

위 내용은 MySQL 백업 및 복구에 대한 자세한 설명이며, 보다 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고하시기 바랍니다. !


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.