MySQL을 사용하여 데이터를 저장하는 웹 앱이 있습니다. 웹 앱은 내부 용입니다 (인터넷을 통해 제공되지 않음).여러 지역에 걸쳐 MySQL 데이터베이스 동기화
이제이 응용 프로그램을 3 개 이상의 지점 (지사)에 배포해야합니다. 데이터를 동기화 할 수 있어야합니다 (한 위치에서 생성 된 항목은 다른 지점 위치에서 사용할 수 있어야 함).
요구 사항
-
각 위치에 읽기 및 로컬 기록/
- 데이터베이스가 하루에 한을 동기화되어 자신의 네트워크에
- (아마도 SSH를 통해 스크립트를 통해) 웹 응용 프로그램 + MySQL 데이터베이스의
- 지역의 인스턴스 각 위치는 동일한 데이터를 갖습니다.
UUID (고유 식별자)를 만들고 소스 비트 (원래 위치) 및 동기 비트 (new = 0)를 사용하여 각 행을 인코딩하는 것이 유일한 방법입니다. , synced = 1) 그런 다음 스크립트를 작성하여 각 위치에 매일 밤 SSH를 보내고 각 위치에 = 내 소스 및 동기화 = 0 행을 추가하십시오 ...이 스크립트는 짐작하고 매우 우아하지만 신뢰할 수는 없지만 확실하지 않습니다 그 밖에 할일.
클라이언트는 인터넷 연결이 실패하면 앱이 로컬로 작동 할 수 있기를 원하지만 야간 스크립트 나 다른 방법을 통해 다른 브랜치간에 동기화가 유지되는 것을 두려워합니다. 제가 말했듯이, 이미 총 3 곳이 있으며, 아마도 올해 말에 더 많이 들어올 것입니다.
아키텍처에 대한 조언을 보내 주시면 감사하겠습니다.
추신. 보안상의 이유로 데이터베이스를 인터넷에 연결하지 않습니다. 그러나 모든 제안에 열려 있습니다.
감사합니다.
데이터에 삭제 또는 업데이트가 없으면 매일 밤 새 행을 삽입하는 것이 간단하지만 업데이트 또는 삭제가있는 경우 수행하려고하면 많은 고통을 느끼게됩니다. 그것을 손으로.참조 설명서에서 '복제'를 확인하십시오. http://dev.mysql.com/doc/refman/5.6/en/replication.html – Barranka
수정하십시오. 중대한 통증 (변화가 없을 경우조차도 위험한 상황 임) –