두 데이터베이스 간의 Mysql 데이터베이스 동기화
MySql 백엔드를 사용하여 다양한 매장에서 Java PoS(Point of Sale) 애플리케이션을 실행하고 있습니다.상점 내 데이터베이스를 호스트 서버의 데이터베이스와 동기화 상태로 유지하고 싶습니다.
상점에서 변경 사항이 발생하면 호스트 서버에서 업데이트해야 합니다.어떻게 하면 좋을까요?
레플리케이션 작성은 그다지 어렵지 않습니다.
여기 몇 가지 좋은 튜토리얼이 있습니다.
http://www.ghacks.net/2009/04/09/set-up-mysql-database-replication/
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication
여기에서는, 몇개의 간단한 룰을 염두에 둘 필요가 있습니다(물론, 그 밖에도 있습니다만, 그것이 주된 개념입니다).
- 데이터 쓰기를 위한 서버(마스터) 1개를 설정합니다.
- 데이터를 읽기 위해 하나 이상의 서버(슬레이브)를 설정합니다.
이렇게 하면 오류를 피할 수 있습니다.
예를 들어 다음과 같습니다.스크립트가 마스터와 슬레이브의 같은 테이블에 삽입되면 프라이머리 키가 중복됩니다.
"슬레이브"를 마스터와 동일한 정보를 보유하지만 데이터를 직접 추가할 수 없는 "백업" 서버로 볼 수 있으며, 마스터 서버의 지시에 따를 뿐입니다.
메모: 물론 마스터에서 읽을 수도 있고 슬레이브에 쓸 수도 있지만 동일한 테이블(마스터에서 슬레이브로, 슬레이브에서 마스터로)에 쓰지 마십시오.
모든 것이 정상인지 확인하기 위해 서버를 감시할 것을 권장합니다.
추가 도움이 필요하시면 연락주세요.
3가지 접근법:
기존의 클라이언트/서버 어프로치:데이터베이스를 매장에 두지 않고 애플리케이션이 서버에 액세스 할 수 있도록 합니다.물론 VPN을 설정하는 것이 좋습니다만, 접속을 SSL 또는 ssh로 랩하는 것은 합리적입니다.찬성: 이것은 원래 데이터베이스의 사고방식입니다.단점: 레이텐시가 길면 복잡한 조작이 느려질 수 있으므로 스토어드 프로시저를 사용하여 라운드 트립 횟수를 줄일 필요가 있습니다.
복제된 마스터/마스터: @Book Of Zeus 제안대로.단점: 셋업이 다소 복잡합니다(특히 여러 점포를 가지고 있는 경우). 어떤 숍머신이라도 침입하면 시스템 전체가 손상될 수 있습니다.장점: 읽기 작업이 완전히 로컬이고 쓰기 작업이 비동기적으로 전파되므로 응답성이 향상됩니다.
오프라인 조작 + 동기화 순서: 모든 작업을 로컬로 수행하고, 마지막 동기화 조작의 모든 신규/신규 레코드와 함께 요약을 작성하여 서버에 전송합니다.장점: 네트워크 없이도 빠르고 쉽게 작업할 수 있습니다(요약 내용을 읽을 수 있는 경우).단점: 실시간 정보가 없습니다.
SymmetricDS가 정답입니다.단방향 또는 양방향 비동기 데이터 복제로 여러 가입자를 지원합니다.웹 및 데이터베이스 기술을 사용하여 관계형 데이터베이스 간에 원하는 경우 거의 실시간으로 테이블을 복제합니다.
고객의 요구에 맞는 포괄적이고 견고한 Java API.
dbForge Studio for MySQL의 Schema 및 Data Comparison 툴을 참조하십시오.이러한 도구를 사용하여 차이점을 확인하고 동기화 스크립트를 생성하고 두 데이터베이스를 동기화할 수 있습니다.
언급URL : https://stackoverflow.com/questions/7707859/mysql-database-sync-between-two-databases
'programing' 카테고리의 다른 글
php의 mysql 테이블에서 count)를 선택합니다. (0) | 2022.11.22 |
---|---|
MariaDB: 연결할 수 없음: 예기치 않은 스트림 종료 (0) | 2022.11.22 |
Python에서 쉼표로 구분된 문자열을 목록으로 변환하는 방법은 무엇입니까? (0) | 2022.11.22 |
시간대 변환 시 필터 간 mysql 선택 (0) | 2022.11.22 |
왜 잠기지 않는 거죠? 다른 사용자가 업데이트를 하지 못하게 하는 거죠? (0) | 2022.11.22 |