[server] MySQL에서 멀티 기가 바이트 데이터베이스를 어떻게 백업 할 수 있습니까? 빠른 복원을위한 보너스 포인트

MySQL에 4GB 데이터베이스가 있습니다. 어떻게 백업 할 수 있습니까? 또한 복구가 필요한 경우 복원 프로세스 속도를 높일 수있는 방법이 있습니까?

나는 현재 매일 밤마다 크론 작업을 사용하여 mysqldump모든 것을 버리고 3 일 동안 백업을 유지합니다.



답변

MySQL에는 약 90GB가 있으므로 다음과 같은 제안 사항이 있습니다.

  • 다음 호출을 시도 할 수 있습니다. mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(문서를 사용하여 해당 스위치가 작동하는지 확인하십시오.)
  • MYISAM 테이블 만 사용하는 경우 데이터베이스를 다른 드라이브에 복사하고 대상을 지정하는 것도 대안이 될 수 있습니다. INNODB에서는 추가 파일을 유지하므로 INNODB에서는 작동하지 않습니다. 또한이를 신중하게 테스트해야합니다.
  • 이진 로그를 활성화하고 백업하십시오. (이것은 아마도 내가 가장 좋아하는 것입니다!)
  • 복제를 설정하고 슬레이브 중 하나에서 백업을 수행 한 다음 나머지를 따라 잡으십시오. 실행될 때 꽤 좋지만 문제는 실행 중입니다. MySQL의 복제는 재미가 없습니다. 🙁
  • 파일 시스템이 스냅 샷을 지원합니까? 그렇다면, 그것을 사용할 수있는 좋은 기회입니다.
  • Amanda 와 같은 상용 솔루션을 사용하십시오 .

답변

가장 좋은 방법은 정상적인 작동을 방해하지 않는 것입니다. 안정성이 높고 내결함성이있는 시스템을 위해 동기화 된 2 개의 DB가 있으며 보조 서버를 백업합니다. (예 : 이 howtoforge 기사 )

그렇지 않으면 매뉴얼을 읽으십시오 : 현재와 같이 myseldump를 사용하거나 mysqlhotcopy 스크립트를 사용하거나 (mysqldump와 마찬가지로 사용) DB를 중지하고 frm, MID, MYI 파일을 복사하십시오 (rsync 사용).

나는 stop + copy files 메커니즘이 가장 빠를 것이라고 생각합니다.


답변

일부 데이터베이스가 읽기 전용이거나 수정 된 경우 드물게 빈번한 크론으로 단일화되지 않습니다.


답변

귀하의 질문에 답변 -extended_insert 옵션이 효과적입니다. 복원하기에 충분한 자원이있는 경우 extended_insert는 단일 쿼리에 많은 양의 데이터를 삽입하여 복원 속도를 높입니다.


답변

Percona의 Xtrabackup을 고려해야합니다.

랩퍼 스크립트 “innobackupex”는 MyISAM을 처리 할 수 ​​있지만 비 잠금 / 온라인 백업의 경우 테이블이 모두 InnoDB 여야합니다.

건배


답변