2011-03-25 6 views
1

현재 급속도로 커지고있는 데이터베이스를 백업하기 위해 mysqldump를 사용하고 있습니다. 나는 밤늦게까지 운행하지만, 때때로 교통량이 많은 (때때로 밤에 일어나는) 순간에 운행 될 때가끔 문제가 발생합니다. 예를 들어 어제 밤 완전히 완전히 (그리고 삭제되지 않은) 프로세스 목록으로 데이터베이스 백업이 끝난 직후에 사이트 중 하나가 잠겼습니다.트래픽이 많은 사이트를위한 MySQL 백업 전략

누군가에게 더 좋은 방법을 제안 할 의향이 있습니까? 가용성을 극대화하는 것이 목표이기 때문에 백업 중에 사이트를 임시 유지 관리 상태로 두는 것은 옵션이 아닙니다 (일부 SQL 덤프에는 잠시 시간이 걸립니다). 한 가지 생각은 마스터 복사본과 슬레이브 복사본을 모두 실행하고 슬레이브 복사본을 종료하고 마스터 복사본을 프로세스 중에 단독으로 남겨 두는 것입니다. 바라건대 간단한 해결책이 있습니다. 필자는 절대적으로 필요한 경우가 아니면 백업 목적으로 슬레이브 복사본을 실행하지 않을 것입니다. 어떤 제안?

감사합니다.

+0

왜 백업을 위해 슬레이브를 사용하지 않는지 물어볼 수 있습니까? 너는 노예에 우리의 특정 테이블을 걸러 내고 있니? 특정 시간에 데이터의 스냅 샷을 얻는 것이 목표 인 경우, 슬레이브와 마스터가 동기화되어있는 한 모든 것이 정상이어야합니다. –

+0

복제 경로를 사용하는 것에 반대하지 않습니다. 백업과 달리 아무것도 필요하지 않기 때문에 과도한 것처럼 보입니다. 이 문제를 해결하는 가장 좋은 방법이라면 그 길로 갈 것입니다. – modulaaron

+0

노예에서 스냅 샷을 찍는 것이 주된 DB를 방해하고 싶지 않은 경우 이동하는 방법이라고 생각합니다. 복제본은 당신이 핫스왑 할 수있는 서버라는 추가적인 이점을 가질 것이고, 가지고있는 덤프는 다른 슬레이브를 설정할 수있게하여 슬레이브 업데이트를 로깅하도록합니다. –

답변

2

두 가지 생각 :

  1. 실행 슬레이브. 그 외의 경우, 장애가 발생할 경우 프로덕션 트래픽을위한 따뜻한 예비를 제공합니다. 또한 보고서 및 도구를 실행하여 프로덕션 서버의주기를 확보 할 수 있습니다.
  2. 는 이노 디비 및 mysqldump는 - 단일 거래 (see man page)

행운을 사용하여 얻을!

0

나는 더 많은 기능을 가진 InnoDB Hot Backup과 유사하며 무료로 배포되는 Percona Xtrabackup을 사용합니다. Xtrabackup은 innodb 테이블을 잠그지 않고 스냅 샷을 찍고 현재 마스터 로그 파일 정보를 기록하고 요청이있는 경우 슬레이브에서 백업을 가져 오는 경우 슬레이브 정보를 기록합니다.

슬레이브를 실행하고 mysqldump와 같은 백업을 수행하는 것이 좋습니다. 슬레이브는 하드웨어 문제 또는 서버를 꺼내는 다양한 소프트웨어 또는 사용자 오류 문제로 인해 주인이 망가 뜨리면 신속하게 전환하여 몇 분 안에 가동 할 수있는 핫 백업을 제공합니다. xtrabackup 또는 mysqldump로 백업하면 우연히 테이블을 삭제하거나 가질 필요가없는 행을 삭제 한 경우에 대비하여 데이터를 복원하는 데 사용할 수있는 백업이 제공됩니다. 복제 된 서버가 사용자를 저장하지 않기 때문입니다.

관련 문제