2012-08-15 4 views
1

빠른 질문 :MySQL의 마스터 - 슬레이브 - 슬레이브 구성

나는 현재 마스터 - 슬레이브 지금 설정하고 난 또 다른 노예를 추가하고 싶습니다. 슬레이브를 실행하는 서버를 복제 한 다음 슬레이브의 이미지가있는 새 서버를 돌려서 중단 한 부분부터 다시 시작하도록 할 수 있습니까? 그래서 복제물이 있던 시점에 binlog가 무엇이든 그것이 마스터와 충돌 할 때까지 그냥 실행됩니다.

이상적으로 - 백업을 위해 마스터를 종료하지 않고 마스터에 연결하는 다른 슬레이브를 시작하려고합니다. 조언이나지도가 도움이 될 것입니다. 감사!

+1

[DBA.SE] (http://dba.stackexchange.com/)에서 이와 같은 질문을하는 것이 좋을 수 있습니다. 이들은 아마도 사소한 MySQL 설정에 대한 더 많은 지식을 갖고있을 것입니다. – derobert

답변

2

예 가능합니다. 가장 좋은 방법은 슬레이브의 복제를 일시적으로 일시 중지하고 마스터 바이너리 로그 위치 정보를 확인한 다음 복제가 일시 중지 된 상태에서 복제본에서 덤프를 생성하는 것입니다 (다른 데이터는 복제본에서 변경되지 않습니다). 덤프가 완료되면 복제본을 다시 시작할 수 있습니다.

새 서버에서는 덤프를 설치하고 binlog 좌표를 설정 한 다음 복제를 시작하십시오. 그래도 한 마디. 마스터의 바이너리 로그를 삭제하는 설정으로 바이너리 로그를 오래 보존 할 수 있도록 설정하고 빈 로그가 제거되기 전에 새로운 슬레이브를 잡아 당길 수 있도록하십시오.

+1

그가 MySQL의 활성 MySQL 슬레이브의 리터럴 스냅 샷을 가져 와서 부팅하고, 스냅 샷을 찍은 곳에서 시작하는 것처럼 동작하도록 요청할 것이라고 생각합니다 (데이터 덤프를 수행하고 다시로드하지 않아도 됨) – Michael

4

예. 슬레이브 인스턴스를 종료하고 모든 데이터를 다른 슬레이브 (로그 포함)에 복사 할 수 있습니다.
여기에 좋은 튜토리얼입니다
다음 두 슬레이브 서버

+0

그리고 그것은 "멈추기 (shutting down)"전에 중단 된 부분을 집어들 것인가? "shut it down"이라고 말하면, 슬레이브가 로그에서 읽지 못하도록 (또는 마스터 - 슬레이브 통신을 중지 시키십시오) 맞습니까? – gregavola

+1

슬레이브 인스턴스를 종료하면 로그 읽기도 중지됩니다. 모든 데이터가 일관성있게 유지됩니다. – CyberDem0n

0

를 시작합니다 (당신이 server-id을 변경해야합니다) 두 번째 슬레이브에 my.cnf을 편집하는 것을 잊지 마세요 방법 마스터 서버에 대한 설정 여러 복제 노예로 : http://arcib.dowling.edu/cgi-bin/info2html?%28mysql%29replication-howto

시나리오를 설명하지는 않지만 중요 한 힌트를 제공합니다. 두 번째 슬레이브에 고유 한 서버 ID를 할당해야합니다.

문제점 : 마스터 바이너리 로그를 충분히 길게 유지하면 문제가 발생하지 않습니다. 슬레이브를 잠시 종료하고 클론하여 슬레이브의 MASTER_LOG_FILE 및 MASTER_LOG_POS; 원래의 슬레이브를 재시작하고 두 번째 슬레이브를 올바르게 설정하십시오 : 즉, 주어진 MASTER_LOG_POS 및 * _FILE 세트와 my.cnf의 고유 한 서버 ID;

그런 다음 두 번째 슬레이브를 시작하십시오. "START SLAVE"를 사용하여 복제를 시작한 다음 "SLAVE STATUS;

감사합니다, 스테판

추신 : 작업이 약속 할 수 없다, 그러나 나는 무엇을해야 확실 종료하고 있습니다.

0

당신은 새로운 하나를 만들기 위해 기존의 MySQL의 노예를 사용할 수있는 바로 다음 단계, 슬레이브

  1. 중지 복제를 수행.
  2. show slave status;을 실행하고이 값 Master_Log_File: master-bin.000002 & Read_Master_Log_Pos: 1307
  3. mysqldump을 가지고 새로운 MySQL의 슬레이브 서버에 복원주의, 당신은 기존의 MySQL 슬레이브 서버에서 my.cnf 파일을 복사 그냥 server-id을 변경할 수 있습니다.
  4. 새로운 슬레이브 서버에서 change master to 명령을 실행하면 기존의 mysql 슬레이브에서 얻은 mysql 마스터 서버와 로그 파일 이름 및 로그 위치에 대한 세부 정보를 제공한다.
  5. 기존의 mysql 슬레이브에서 start slave;을 실행하십시오.
  6. 슬레이브 상태를 확인하려면 show slave status을 실행하십시오.

새로운 MySQL 서버가 있습니다.

행운을 빈다.

관련 문제