두 개의 다른 위치에서 두 개의 MySQL 데이터베이스 동기화


19

내부 서버와 웹 호스팅 서버에 각각 동일한 두 개의 MySQL 데이터베이스가 있습니다. 내부 서버의 데이터베이스로 매일 웹 호스트의 데이터베이스를 업데이트하고 싶습니다. 이 프로세스를 자동화하는 방법이 있습니까? 또한 수동으로 수행 할 수 있습니까? 수동으로 수행하려면 내부 서버에서 데이터베이스의 SQL 덤프를 가져온 다음 웹 호스트의 데이터베이스로 가져와야합니까? 조언을 부탁드립니다.


당신은 대답에 유래에 여기에 게시 기존 참조 할 수 있습니다 stackoverflow.com/questions/52583/...
마헤시 파틸에게

약 # 2 내부에서 전체 덤프를 수행하고 프로덕션에서 가져 오기하면 온라인 데이터베이스를 덮어 쓰게됩니다. 데이터베이스 웹에 온라인 구매자가 있으며 내부 데이터베이스 구매를 라이브로 마이그레이션하고 싶습니다 .BTW를 명확히 할 수 있습니까? 둘 다 같은 ID를 보유하고 있다면 둘 사이의 자동 무분별한 일이 발생합니다.
shareef

답변:


20

몇 가지 옵션이 있습니다.

  1. 서버간에 MySQL 복제를 설정하십시오. 내부 서버는 마스터 역할을하고 웹 호스트 서버는 슬레이브 역할을 할 수 있습니다. 마스터에서 수행 된 모든 업데이트는 작동중인 연결을 가정하여 즉시 슬레이브에 복제됩니다. 가장 쉽고 효과적인 옵션 일 것입니다. 복제를 사용하려면 웹 호스트에서 네트워크를 통해 내부 데이터베이스에 액세스 할 수 있어야합니다.

    복제에 대한 자세한 내용은 여기를 참조 하십시오 .

  2. 매일 내부 서버에서 mysqldump를 수행하고 덤프 파일을 웹 호스트에 업로드하고 데이터를 가져올 수 있습니다. 이것은 전체 덤프이므로 매우 큰 데이터베이스가있는 경우에는 이것이 불가능할 수 있습니다. 원하는 경우이 절차를 수동으로 수행하지 않아도되도록 스크립트를 작성할 수 있습니다.

  3. 내부 서버에서 이진 로깅 을 설정할 수 있습니다 . 그런 다음 이진 로그를 웹 호스트에 전달하고 데이터베이스에 적용하여 그날 발생한 모든 트랜잭션을 웹 서버에 효과적으로 재생합니다. 실제로 이것은 복제와 함께 발생하므로 거의 항상이 옵션 대신 복제 설정을 사용합니다.

두 데이터베이스간에 연결이없는 경우 매일 mysqldumps를 사용하는 것이 가장 쉬운 방법입니다.


약 # 2 내부에서 전체 덤프를 수행하고 프로덕션에서 가져 오기하면 온라인 데이터베이스를 덮어 쓰게됩니다. 데이터베이스 웹에 온라인 구매자가 있으며 내부 데이터베이스 구매를 라이브로 마이그레이션하고 싶습니다 .BTW를 명확히 할 수 있습니까? 둘 다 같은 ID를 보유하고 있다면 둘 사이의 자동 무분별한 일이 발생합니다.
shareef

4

두 데이터베이스를 동기화하는 데 도움이되는 symmetricDS 와 같은 옵션을 사용할 수도 있습니다 . 이를 통해 인터넷 대역폭을 절약 할 수있는 방식으로 동기화해야하는 테이블을 선택할 수 있습니다. 이는 두 위치 사이에 연결이 부족한 시나리오에도 적합합니다.


2

MariaDB로 데이터베이스 복제를 설정하는 방법 : https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/


1
DBA.SE에 오신 것을 환영합니다. 여러분의 참여 / 참여에 감사드립니다. 그러나 커뮤니티는 게시 된 답변에서 특정 품질을 기대합니다. 다음 기사를 읽어보십시오 . 좋은 답변을 작성하려면 어떻게합니까? (도움말 센터) 질문에 대답 하기 섹션에 다음과 같은 짧은 문장이 있습니다. 외부 리소스에 대한 링크가 권장되지만 링크 주위에 컨텍스트를 추가하여 동료 사용자가 그 정보와 그 이유를 알 수 있도록하십시오
John aka hot2use

0

Navicat을 사용할 수 있습니다 . 주로 db 관리자이지만 스케줄러뿐만 아니라 데이터 전송 및 데이터 동기화 기능이있어 자동화 할 수 있습니다. 무료는 아니지만 30 회의 전체 기능 평가판이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.