4.0 beta CUBRID HA관련 문제...

by 반짝이 posted May 18, 2011

http://www.cubrid.com/zbxe/bbs_developer_qa/136467

질문글에 이어서... 질문드립니다...

 

기존 3.1의 한대로 개발중이던 DB를 unloaddb 하였습니다...

csql -S -u dba -p '******' -i check_reserved.sql test

이상없음을 확인했습니다...

동일한 두대의 서버에 R 4.0

 

어제 작업 했던게...

Master DB : loaddb test

Slave DB : loaddb test

위에 질문글에 올렸던 문제가 발생했습니다...

 

---------------------------------------------------------------------------------

writer 테이블 생성문 입니다...(loaddb 했을때 writer 테이블의 데이터가 2000개 정도)

 

CREATE TABLE "writer"(
"writerid" integer AUTO_INCREMENT,
"writername" character varying(100),
CONSTRAINT pk_writer_writerid PRIMARY KEY("writerid")
);
CREATE  INDEX ON "writer"("writerid" DESC);

----------------------------------------------------------------------------------

 

1. Web page에서 INSERT

STATUS : nodeA(active), nodeB(standby)

WEB 페이지에서 INSERT를 해줍니다...

- 데이터 변경사항이 없음...

 

2. nodeA -> nodeB 로 절체...

COMMAND : nodeA : cubrid service stop

STATUS : nodeA(die), nodeB(active)

- 이러고 나면 위에서 INSERT 했던 데이터가 보입니다...

 

3. nodeB -> nodeA 로 절체...

COMMAND : nodeA : cubrid heartbeat start

COMMAND : nodeA : cubrid service start

STATUS : nodeA(standby), nodeB(active)

failback 이 자동으로 안되는 관계로...

COMMAND : nodeB : cubrid service stop

STATUS : nodeA(active), nodeB(die)

COMMAND : nodeB : cubrid heartbeat start

COMMAND : nodeB : cubrid service start

STATUS : nodeA(active), nodeB(standby)

- 다시 INSERT했던 데이터가 안보입니다...

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

결국 Webpage에서 테스트를 포기하고 CUBRID Manager 상에서 테스트

STATUS : nodeA(active), nodeB(standby)

QUERY : nodeA : INSERT INTO writer(writername) VALUES ('cubridtest');

- AUTO INCREMENT 로 2001번의 ID가 생김...

QUERY : nodeA : SELECT * FROM writer ORDER BY writerid DESC;

- 추가한 데이터가 안보임...

QUERY : nodeA : SELECT * FROM writer WHERE writername='cubridtest';

- 추가한 데이터가 검색됨...

 

무한 삽질...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

결국은 계속 삽질끝에 그냥 DB 전체를 4.0에서 새로 생성하고 기존에 데이터를 내려다기 후에 올리는걸로 결정했습니다...

다시 삽질...

nodeA와 nodeB에 test DB 생성...

HA 연동까지 완료후...

STATUS : nodeA(active), nodeB(standby)

nodeA(active)에서  전체 테이블 CREATE 해서 생성...

nodeB(standby)에 전체 테이블 생성 된상태 확인...

일단 우선적으로 테스트를위해 writer, cp라는 테이블에만  데이터를 올려넣었습니다...

 

그리고 웹상에서 확인하니...

한쪽은 데이터 올린게 이상없이 보이는데

writer에는 data가 안보임...

cp에는 data가 보임...

 

Manager 상에서

SELECT * FROM writer 하니 이상없이 보이더군요... (full scan)

그래서 결국 코드단 디버깅...

SELECT * FROM writer WHERE writerid > 0 하니 데이터가 안보임... (index scan)

혹시나 해서... 테이블에 index 걸어줬던걸.. 지웠다가 다시 걸어주고...

테스트하니... 정상적으로 돌아가네요...

 

어쨋든 결국 INDEX와 HA 쪽 문제 인거 같은데 근본적인 해결은 하지 못했고요...

전체 테이블 새로 생성해주고 데이터 올리고... INDEX 제거했다가 다시 걸어주는 방식으로 하고 있는 중입니다...

 

추가적으로 문제생기면 다시 질문 올리겠습니다...


Articles

15 16 17 18 19 20 21 22 23 24