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


11

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

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

답변:


14

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

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

10

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

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

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


3

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


2

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


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