C#을 사용하여 로컬 및 원격과 동기화하는 MySQL 데이터베이스

C#을 사용하여 로컬 및 원격과 동기화하는 MySQL 데이터베이스

나는 이것을 C#보다 mysql에 대한 질문으로 여기에 게시했습니다. 처음 시작할 때 mysql의 로컬 인스턴스를 실행하는 일부 소프트웨어를 작성했습니다. 이제 mysql이 작동되면 원격 데이터베이스 테이블 간에 데이터를 동기화하고 싶습니다. 그리고 소프트웨어가 실행하는 로컬 데이터베이스 테이블(다른 데이터베이스/테이블이 많기 때문에 동기화해서는 안 됩니다).

서버가 다운되지 않으면 작동하는 다른 서버와 전체 데이터베이스를 동기화하는 복제 설정이 있습니다. 따라서 소프트웨어가 닫힐 때 MySQL도 닫히는 것처럼 복제가 작동하지 않을 것이라고 생각합니다.

그렇다면 원격 및 로컬 데이터베이스를 동기화하는 가장 좋은 방법은 무엇일까요?

답변1

시간 초과를 조정하고 "STOP SLAVE" 및 "START SLAVE" 명령을 다시 실행하여 MySQL 마스터/슬레이브 복제가 작동하도록 할 수 있습니다. 슬레이브 구성 파일에서 연결이 끊어진 것으로 간주되는 시간(초)으로slave-net-timeout을 설정하고, 재연결 시도 사이에 일시 중지해야 하는 시간(초)으로 master-connect-retry를 설정할 수 있습니다. 둘 다 86400초 또는 1일로 설정됩니다. 예를 들어 다음과 같이 30초 동안 시도해 볼 수 있습니다.

slave-net-timeout = 30
master-connect-retry = 30

대안은 다음과 같은 솔루션을 시도하는 것입니다.대칭DS 데이터베이스 동기화또는 텅스텐. 저는 네트워크가 느리거나 때때로 사용할 수 없는 상황에서 SymmetricDS를 사용해 본 적이 있으며 자동으로 복구됩니다. 독립형 복제 서버로 실행하거나 애플리케이션에 내장하여 제어할 수 있습니다.

관련 정보