MySQL 서버 백업


13

MySQL 서버를 백업하는 가장 좋은 방법은 무엇입니까? 서버를 중단시킬 필요가없는 방법을 원합니다. InnoDB 핫 백업이 필요하거나 MySQL 관리자 도구에서 제공하는 백업 도구를 사용할 수 있습니까? 하나는 다른 것보다 어떤 장점을 제공합니까?

답변:


12

MySQL이 실행되는 동안 작동하는 mysqldump를 사용합니다. 우리는 mysqldump를 사용하기 시작했습니다. 왜냐하면 우리의 요구가 적을 때 설정하는 것이 가장 쉬웠 기 때문에 그러한 요구를 충족시키는 것 같았습니다. 그 이후로 데이터베이스가 커졌지 만 mysqldump는 아직 커지지 않았습니다. 적합한 지 여부는 데이터베이스의 크기, 일반적인 운영로드 및 기타 여러 가지에 따라 다릅니다.


mysqldump는 훌륭합니다. 다른 RDMS의 바이너리 덤프와 달리, mysqldump가 생성하는 파일은 기본적으로 완전한 SQL 명령 (대부분 CREATE TABLE 문 및 행에 대한 INSERT)이있는 텍스트 파일입니다. 간단한 텍스트 파일로 쉽게 조작, 압축 또는 암호화 할 수 있습니다.
nedm

3
큰 데이터베이스가 있거나 MyISAM을 사용하면 mysqldump가 손상됩니다. 덤프를 가져올 때 다시 작성해야하는 인덱스가 많은 일부 400G 데이터베이스가 있으므로 백업 복구에는 트리 일이 걸립니다. LVM 스냅 샷은 mysqldump를 능가했을 때 훨씬 더 나은 복구 시간을 제공합니다.
Nils-Anders Nøttseter

4

percona의 xtrabackup을 살펴보십시오-innodb 데이터베이스의 mysqlhotcopy에 대한 흥미로운 오픈 소스 대안입니다.

여기 에 대해 더 자세히 읽을 수 있습니다


3

mysqldump를 사용할 수 있지만 덤프 기간 동안 모든 테이블을 잠그지 않는 한 일관된 데이터 세트를 보장하지는 않습니다 . 이렇게하면 데이터베이스가 읽기 전용 모드가되지만 덤프가 일관되게됩니다.

다음 명령으로 테이블을 잠글 수 있습니다.

FLUSH TABLES WITH READ LOCK;

그리고 완료되면 다음을 사용하여 잠금을 해제 할 수 있습니다.

UNLOCK TABLES;

7
mysqldump-단일 트랜잭션은 일관된 스냅 샷을 보장합니다
Dave Cheney

5
--single-transaction은 모든 테이블이 InnoDB 인 경우에만 작동합니다. MyISAM 테이블은 트랜잭션을 지원하지 않습니다.
Nils-Anders Nøttseter


2

MySQL 복제 설정 . 보너스로 서버는 주요 프로덕션 DB에 영향을 미치지 않으면 서 많은보고 작업과 mysqldump를 실행할 수 있습니다.


복제가 지연 될 수 있으므로 반드시 마스터의 특정 시점 백업은 아닙니다.

2
복제가 백업되지 않습니다. 실수로 마스터에서 무언가를 삭제하면 슬레이브도이를 삭제합니다. 슬레이브는 mysqldump를 사용하는 것이 좋습니다. Dave가 언급 한 것처럼 프로덕션 서버에는 영향을 미치지 않기 때문입니다.
Martijn Heemels


0

mysqlhotcopy 라는 도구가 있는데 한 번 보았고 많은 약속을했다고 생각했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.