2012-06-28 6 views
0

내 고객이 주문한 웹 사이트가 있습니다. 그 정보는 orders, ordersProducts, ... etc 테이블에 저장됩니다. 내 직원이 주문을 처리 할 다른 서버에보고 데이터베이스가 있습니다. 이 서버의 테이블에는 주문 정보와 추가 열이 있어야 추가 정보를 추가하고 현재 정보를 업데이트 할 수 있습니다.동기화 할 데이터 유형이 다른 구조가 다른 2 개의 다른 데이터베이스에 2 개의 테이블

한 서버 (주문 웹 사이트)에서 다른 서버 (보고 웹 사이트)로 정보를 얻는 가장 좋은 방법은 무엇입니까? 효율적으로 데이터 손실 위험없이? 또한보고 데이터베이스가 정보를 얻기 위해 웹 사이트에 연결되는 것을 원하지 않습니다. PUSH 데이터에 대한 주문 웹 사이트의 솔루션을 구현하고 싶습니다.

의 생각

  1. MySQL의 복제 - 은 문제 - 복제 된 테이블 조작을보고하지 엄격하다. 고객 주소가 변경되면 어떻게됩니까? 주문할 제품이 필요하십니까? 이렇게하면 복제 된 테이블이 엉망이됩니다.

  2. 이중 삽입 - 로컬 테이블에 삽입 한 다음보고 데이터베이스에 삽입하십시오. 문제 -보고 데이터베이스가 다운 된 이유가 무엇이든간에 mySQL 연결을 사용하면 데이터를 가져올 수 없으므로 데이터가 손실 될 수 있습니다. 일종의 쿼리 로그를 구현합니까?


두 서버는 MySQL과 PHP는

답변

0

MySQL의 복제가 정확히 무엇을 찾고처럼, 나는 당신이 거기 단점으로 표시 한 이해도 확실하지 않다 소리를 사용합니다.

내 솔루션은 슬레이브가보고 데이터베이스 인 읽기 전용 슬레이브의 마스터처럼 들립니다. 마스터에 대한 관심사가 변경된 경우 슬레이브를 동기화하지 않으면 문제가 너무 커질 수 없으며 모든 변경 사항이 동기화됩니다. 연결이 끊어진 상황에서 슬레이브는 마스터보다 몇 초 뒤에 있는지 추적하고 두 개가 동기화 될 때까지 변경 사항을 실행합니다.

+0

나는 마스터에서 테이블을 업데이트 할 수 있다는 것을 이해하지만, 2 개의 다른 연결과 2 사이의 스왑을 갖는 것은 이상하게 보입니다. 하나는 업데이트하고 다른 하나는 선택할 것입니다. – Robert

+0

보고 데이터베이스라는 용어는 오해의 소지가 있다고 생각합니다. . 나는 여러 단계를 포함 할 수있는이 정보를 처리 할 수 ​​있기를 원합니다. – Robert

+0

올바르게 이해하면 두 데이터베이스 모두 선택 및 업데이트/삽입이 이루어지며 둘은 동기화 상태를 유지해야합니다. – ashryalls

관련 문제