programing

두 데이터베이스 간의 Mysql 데이터베이스 동기화

randomtip 2022. 11. 22. 22:12
반응형

두 데이터베이스 간의 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. 데이터 쓰기를 위한 서버(마스터) 1개를 설정합니다.
  2. 데이터를 읽기 위해 하나 이상의 서버(슬레이브)를 설정합니다.

이렇게 하면 오류를 피할 수 있습니다.

예를 들어 다음과 같습니다.스크립트가 마스터와 슬레이브의 같은 테이블에 삽입되면 프라이머리 키가 중복됩니다.

"슬레이브"를 마스터와 동일한 정보를 보유하지만 데이터를 직접 추가할 수 없는 "백업" 서버로 볼 수 있으며, 마스터 서버의 지시에 따를 뿐입니다.

메모: 물론 마스터에서 읽을 수도 있고 슬레이브에 쓸 수도 있지만 동일한 테이블(마스터에서 슬레이브로, 슬레이브에서 마스터로)에 쓰지 마십시오.

모든 것이 정상인지 확인하기 위해 서버를 감시할 것을 권장합니다.

추가 도움이 필요하시면 연락주세요.

3가지 접근법:

  1. 기존의 클라이언트/서버 어프로치:데이터베이스를 매장에 두지 않고 애플리케이션이 서버에 액세스 할 수 있도록 합니다.물론 VPN을 설정하는 것이 좋습니다만, 접속을 SSL 또는 ssh로 랩하는 것은 합리적입니다.찬성: 이것은 원래 데이터베이스의 사고방식입니다.단점: 레이텐시가 길면 복잡한 조작이 느려질 수 있으므로 스토어드 프로시저를 사용하여 라운드 트립 횟수를 줄일 필요가 있습니다.

  2. 복제된 마스터/마스터: @Book Of Zeus 제안대로.단점: 셋업이 다소 복잡합니다(특히 여러 점포를 가지고 있는 경우). 어떤 숍머신이라도 침입하면 시스템 전체가 손상될 수 있습니다.장점: 읽기 작업이 완전히 로컬이고 쓰기 작업이 비동기적으로 전파되므로 응답성이 향상됩니다.

  3. 오프라인 조작 + 동기화 순서: 모든 작업을 로컬로 수행하고, 마지막 동기화 조작의 모든 신규/신규 레코드와 함께 요약을 작성하여 서버에 전송합니다.장점: 네트워크 없이도 빠르고 쉽게 작업할 수 있습니다(요약 내용을 읽을 수 있는 경우).단점: 실시간 정보가 없습니다.

SymmetricDS가 정답입니다.단방향 또는 양방향 비동기 데이터 복제로 여러 가입자를 지원합니다.웹 및 데이터베이스 기술을 사용하여 관계형 데이터베이스 간에 원하는 경우 거의 실시간으로 테이블을 복제합니다.

고객의 요구에 맞는 포괄적이고 견고한 Java API.

dbForge Studio for MySQL의 Schema Data Comparison 툴을 참조하십시오.이러한 도구를 사용하여 차이점을 확인하고 동기화 스크립트를 생성하고 두 데이터베이스를 동기화할 수 있습니다.

언급URL : https://stackoverflow.com/questions/7707859/mysql-database-sync-between-two-databases

반응형