안녕하세요.
CUBRID 2008 R2.2를 HA 구성하여 사용하고 있습니다.
Broker 에서 RW 브로커와 RO 브로커를 분리하여 사용하고 있습니다.
데이터베이스는 Master와 Slave로 동작하는 DB1, DB2가 있습니다.
웹에서 RO 브로커를 연결하여 SELECT 시 결과 값이 다르게 나타나는 현상이 있습니다.
DB1(Master) - 큐브리드 매니저로 연결하여 SELECT 한 결과 값
DB2(Slave) - 큐브리드 매니저로 연결하여 SELECT 한 결과 값
RW 브로커(Master 연결) - PHP 페이지를 이용하여 SELECT 한 결과 값
위의 값은 모두 동일하게 보이며,
RO 브로커(Slave 연결) - PHP 페이지를 이용하여 SELECT 한 결과 값
은 목록이 2개 정도 적게 나타나며,
특정 필드 값이 데이터베이스에 있는 값과 다르게 나타납니다. (많거나 적거나)
데이터베이스에는 동일하게 값이 있는데 다르게 나타나는 이유를 모르겠습니다.
--------------
RO 브로커 연결시 나오는 값이 항상 다른 것은 아니고
같은 값이 나오거나 다른 값이 나오는 현상이 나타납니다.
HA가 구성된 상태에서 dbsl.php와 같이 slave에 있는 broker에 접속해서 DB에 접속하더라도 slave에 있는 broker는 RO 또는 SO가 아닌 이상 master의 DB에 접속합니다.
따라서 slave의 DB에 데이터를 확인하려면 telnet으로 접속하여 csql을 통해 확인해야 합니다.
방법은
- slave 장비에 CUBRID 설치한 계정으로 접속한 후
- csql -u mynews –p xxxxxxxxxxxx newdaily4@localhost 실행하시고 Csql> 가 떨어지면
- Sql 구문을 입력하고 끝에 ; (쎄미콜론)을 입력하면 결과가 나옵니다.
현재 추측하건대 복제 불일치가 발생하고 있는 것 같습니다.
HA 재 구성 작업이 필요해 보입니다.