2012-06-19 13 views
0

MySql 5.1을 실행 중입니다. 마스터와 슬레이브가 2 대의 컴퓨터에 있고 복제를 설정합니다.mysql 백업에서 슬레이브를 복원하는 방법은 무엇입니까?

필자는 슬레이브 서버에서 주기적으로 백업을 수행합니다. 나는 mysql을 멈추고 모든 파일을 복사하고 mysql을 다시 시작한다.

마스터가 분실 된 경우 마지막 백업에서 새 마스터를 설정할 수 있습니다.

만약 내가 슬레이브를 잃으면? 마지막 백업에서 슬레이브를 다시 시작할 수 있습니까? 백업 할 때마다 복제 위치를 추적해야합니까?

답변

1

이 문제를 해결 한 방법은 다음과 같습니다.
매월 (또는 주간/매일) 백업을 가져 와서 로그 파일을 다시 시작하도록 마스터를 재설정하십시오. 파이프 백업을 마스터로 보내서 한 번에 하나의 테이블을 다시 채 웁니다. 노예를 다시 시작하십시오.
나는 더 많은 노예가 있었고 테이블 재 장전에는 너무 오래 걸리지 않았다. 백업 시간이 너무 오래 걸리는 경우 다른 방법으로 백업 할 수 있습니다.
슬레이브를 잃어버린 경우에는 테이블을 다시로드하기 만하면 로그 파일을 통해 다시 시작할 수 있습니다. 슬레이브 중 하나에서 백업하는 경우 마스터와 먼저 동기화하는 것이 중요합니다.

다른 방법이 있지만 정기적으로 로그 파일을 새로 시작하는 것이 매우 유용합니다.
마스터 코드 (이것은 당신은 당신을 위해 작동 확인해야합니다, 다시 길에서이다) 크론에 갈 : 노예에

#!/usr/bin/ksh 
date=`date +%y%m%d` 
mysql -u root db_name -e "flush tables with read lock;" 
mysqldump -u root -pYrPass --add-drop-table --add-locks natl_inv > /path/to/backup/db_name$date 
mysql -u root -e "reset master;" 
mysql -u root db_name -e "unlock tables;" 
mysql -u root –pYrPass db_name < /path/to/backup/db_name$date 
mysql -u root -e "flush logs;" 

: 사용 쇼 노예 상태 명령 당신이 동기화되어 확인 주인. 마스터에 재 동기화 할 경우, 실행

slave stop; 
reset slave; 
slave start; 

당신은, mysql을 중지 슬레이브 빈 로그 파일이 다시 시작 삭제하고 위의를 실행해야 할 수도 있습니다.

+0

귀하의 절차를 따르지 않을 것입니다. 마스터 또는 슬레이브에서 실행해야하는 명령을 포함하면 도움이됩니다. – robsf

+0

답변으로 표시하거나 아직 필요한 것이 있습니까? – DTecMeister

관련 문제