Bucardo 란

Bucardo는 두 개 이상의 Postgres 데이터베이스를 위한 복제프로그램이다. 특히 비동기식, Multi-master, Master-Slave 테이블 기반 복제 시스템이다. Perl로 작성되었으며, 트리거, PL/PgSQL, PL/PerlU의 광범위한 사용을 사용한다.

사용하기 위한 필수사항

Bucardo는 실행되기 전에 다음 모듈이 설치되어야 하는 Perl 스크립트이다.

  • DBI (at least version 1.51)
  • DBD::Pg (2.0+)
  • Sys::Hostname (1.11+)
  • Sys::Syslog (0.13+)
  • DBIx::Safe (1.2.4+)

Bucardo는 메인 bucardo 스키마를 설치하기 위해 데이터베이스가 필요하다. 이 데이터베이스는 Postgres 버전 8.1이상이어야 하며, PL/PgSQL과 PL/PerlU 언어를 모두 사용할수 있어야 한다. 또한 설치 스크립트를 Superuser로 설치해야 하므로 'bucardo'라는 이름의 새 사용자를 만드는 것을 적극 권장한다.

복제와 관련된 데이터베이스는 Postgres 버전 8.1 이상이어야 한다. 데이터베이스가 "전체 복사본" 동기화의 대상으로만 사용되고 8.1이 유일한 요구사항인 경우를 제외하고, 언어 PL/PgSQL도 사용할 수 있어야 한다. 

Bucardo는 Unix와 같은 시스템을 필요로 한다. 현재 리눅스 계열에서만 테스트 되었지만, BSD, Solaris 및 기타 유사한 시스템에서 작동할 것이다. Bucardo는 현재 Windows에서는 작동하지 않을 것이다.

Master - Slave 복제가 가능한가

가능하다. Master - Master 복제도 가능하지만 현재 많은 사람들이 Master - Slave 복제(하나 이상의 Slave 데이터베이스에 변경 사항을 전송하는 Master 데이터베이스)만 사용하고 있다.


두 개 이상의 Master 사이에서 복제 될 수 있는가

원하는 만큼의 소스(Master)와 타겟(Slave)를 가질 수 있다.


복제 중인 데이터베이스에서 Bucardo가 실행 되어야 하는가

Bucardo는 어느곳에서나 실행될 수 있으며, 복제와 관련된 어떤 서버에도 있을 필요가 없다. 동일한 서버에서 실행하는 것의 주된 장점은 네트워크 시간을 줄이는 것이다. 단점은 모든 계란을 한 바구니에 넣는 것이다.(?)


왜 시작할 때 mismatched sequences 경고를 하는가
이것은 다른 Postgres 서버에 서로 다른 검색 경로를 가진 bucardo 사용자의 결과다. 이것은 버전 4.5.0에서 수정되었다.

복제 속도

한 동기화에서 복제하는 테이블 수, 네트워크 속도, 데이터베이스 사용률에 따라 다르지만 일반적으로 1~2초 안에 다른 데이터베이스에 도달한다.


DDL을 복제할 수 있는가

불가능하다. Bucardo는 트리거에 의존하며, Postgres는 아직 DDL 트리거 또는 트리거를 시스템 테이블에 제공하지 않는다.

"Could not add to q"

이 메시지는 문제가 있는 것 처럼 보이지만, 사실 무시해도 되는 메시지이다. 그것은 단순히 Bucardo가 동기화를 완료할 수 있는 것 보다 더 빨리 동기화하라는 신호를 받고 있다는 것을 의미한다. 그것은 정상적인 메시지 이다.


+ Recent posts