문제

서로 다른 작업(다른 데이터베이스 보유)을 갖고 있는 두 개의 mysql 서버가 있지만 다른 하나가 실패할 때 그 중 하나를 사용하여 사용할 수 있기를 원하는 경우 두 서버 모두의 데이터를 "close"로 유지하는 방법을 제안하시겠습니까? 실시간으로"?

분명히 x분마다 전체 데이터베이스 덤프를 만드는 것은 불가능합니다.

나는 다음에 대해 읽었습니다. 바이너리 로그, 내가 그 길로 가야 하는 걸까?그러면 대체 서버 속도가 많이 느려지지 않나요?데이터가 변경되었는지 여부는 중요하지 않은 바이너리 로그에 일부 테이블을 포함하지 않는 방법이 있습니까?

도움이 되었습니까?

해결책

바이너리 로그는 확실히 갈 길입니다.그러나 당신은 다음과 같은 점을 알아야 합니다. MySQL 그런 식으로 서버 사이를 왔다 갔다 할 수는 없습니다.

하나의 서버는 주인 다른 하나는 노예가 될 것입니다.마스터에는 쓰고 읽을 수 있지만 슬레이브 서버에서만 읽을 수 있습니다.슬레이브에 쓰기를 하면 동기화가 해제되고 다시 동기화할 수 있는 쉬운 방법이 없습니다. (기본적으로 마스터가 새 슬레이브가 되도록 교체해야 하지만 이는 지루한 수동 프로세스입니다. ).

진정한 핫스왑 가능한 백업 데이터베이스가 필요한 경우 다른 시스템으로 이동해야 할 수도 있습니다. MySQL.원하는 것이 최악의 시나리오(마스터가 영구적으로 파괴됨)에서 즉시 사용할 수 있는 읽기 전용 라이브 백업이라면 Binary Log가 적합합니다.

다른 팁

당신은 마스터-마스터 복제 시나리오이지만 약간의 변형이 있습니다.복제할 데이터베이스를 지정하고 각 서버에 대한 복제를 제한할 수 있습니다.

server1의 경우 추가하겠습니다. --replicate-do-db=server_2_db 그리고 server2에서 --replicate-do-db=server_1_db my.cnf(또는 Windows의 경우 my.ini)에 저장합니다.이는 server_1_db에 대한 명령문만 server2에 복제되고 그 반대의 경우도 마찬가지임을 의미합니다.

또한, 복제에만 의존하지 말고 정기적으로 전체 백업을 수행하시기 바랍니다. 이는 우발적인 사고로부터 안전을 보장하지 않습니다. DROP DATABASE 진술 또는 이와 유사한 것.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top