2012-05-30 7 views
0

시나리오는 다음과 같습니다. 몇 가지가 있는데,이를 POS라고합니다. 주 서버에는 POS의 각 특정 데이터를 모두 보유하는 하나의 마스터 DB가 있습니다. 처음에는 모든 포인트를 메인 데이터베이스에 직접 연결하여 모든 데이터를 저장했지만 이제는 pos가 작동하도록 허용해야합니다. 메인 db 서버에 연결할 수도 없습니다.Postgresql 복제 - db 노드에서 마스터 데이터베이스에만 복제

이제 우리는 개인 POS가 데이터를 DB에 저장하고 잠시 후 데이터를 기본 DB에 복제 할 수있게 해주는 일종의 복제를 구현하려고합니다. 다른 POS dbs). 우리는 Bucardo를 사용해 보았지만 작동하지만 한 POS의 데이터가 모든 노드에 복제됩니다 (마스터 - 마스터 복제라고 생각합니다).

각 pos db는 해당 데이터 만 고려하고 다른 데이터는 고려하지 않으며 기본 DB는 각 노드의 모든 데이터를 고려합니다.

복제 개념에 익숙하지 않아이 요구 사항에 적합한 설정을 이해하는 데 문제가 있습니다. 고마워요.

+0

각 POS에는 고유 한 고유 한 데이터 세트가 있거나 모두 동일한 데이터베이스를 공유하며 호출 사본을 동기화 상태로 유지해야합니까? –

+0

각 레코드에는 로컬 (sales 테이블의 판매 레코드)이 고유 한 데이터 세트가 각 로컬의 모든 레코드를 보유하는 주 데이터베이스에 복제되어야합니다 (비동기식으로). –

+1

복제 소프트웨어보다 백업 소프트웨어에 더 많은 도움이 될 것 같습니다. "pg_dump"를 주기적으로 실행하고 파일을 마스터로 전송하는 각 POS에서 cron 작업을 수행 할 수 있습니다. 마스터의 PostgreSQL에서 데이터에 액세스 할 수 있어야하는 경우 데이터를 동일한 프로세스의 일부로 가져 오거나 마스터의 별도 cron 작업을 통해 가져올 수 있습니다. 모든 POS를 중앙 위치로 주기적으로 백업해야하는 경우 Amanda 백업 소프트웨어를 고려해 볼 수 있습니다.이 도구는 PostgreSQL 덤프 파일을 직접 백업하는 데 사용됩니다. –

답변

1

당신이해야 할 일은 테이블 상속을 Slony, Bucardo 등과 결합하는 것입니다. 이 경우 각 POS에는 데이터 삽입 목적으로 소유 한 테이블 파티션이 있으며 Slony (마스터가 POS이고 마스터가 슬레이브 인 마스터 슬레이브)를 통해 데이터를 복제합니다.

이렇게하면 표 송장과 invoice_lines가있을 수 있습니다. 각각은 테이블 상속을 사용하는 각 POS에 대해 마스터 db 에 서브 테이블을 가지고 있습니다.