Background Image

FORUM

조회 수 12889 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

안녕하세요.

 

큐브리드를 HA 구성으로 사용하고 있습니다.
FailOver 테스트를 하기 위해 마스터의 큐브리드를 데몬을 종료하고 나니 슬레이브 서버 쪽에 있던 데이터가 다 사라져 버렸습니다.
문제를 해결하기 위해서 슬레이브 쪽에 데이터베이스만 남겨 두고 테이블도 모두 삭제를 한 뒤에 다시 마스터와 동기화를 시키기 위해서
마스터를 기동을 하고 나니 마스터 쪽에 테이블도 모두 삭제가 되어버렸습니다.
※슬레이브의 큐브리드 데몬을 종료한 뒤 마스터의 데몬을 기동하였습니다.
※cubrid.conf, cubrid_ha.conf에 대해서는 마스터와 슬레이브 모두 동일하게 설정했습니다.

 

데이터 복구를 위해서 기존에 내보내기로 받아 뒀던 SQL 파일을 이용하여
테이블 복구를 하던 중 auto_increment 가 이미 존재한다고 에러가 발생을 하였습니다.
원인을 조사 해본 결과 db_serial 테이블에  몇몇 serial이 테이블이 삭제 되었음에도 불구하고 남아있는 것을 확인했습니다.
[ db_serial 안에 삭제되지 않고 남아있던 serial 값 - wishcomment_ai_id ]
 
DBA유저로 로그인 해서 db_serial 안에 남아있는 serial 들을 삭제를 하려고 하니 아래와 같이 권한 에러가 발생을 하였습니다.
[ -494 Semantic: Delete is not authorized on db_serial ~생략~]

 

위와 같은 에러(auto_increment already exists) 발생하는 테이블에 대해서
create 문안에 AUTO_INCREMENT 구문을 빼고 나서 생성을 하니 문제 없이 만들어 졌습니다.
자동증가에 대해서도 db_serial 안에 해당 테이블에 serial 이 존재하고 있어서 자동으로 설정되어 있는 상태가 되어버렸습니다.
[ 테이블 생성시 사용한 쿼리문 ]
  CREATE TABLE "wishcomment" (
 "id" integer NOT NULL,
 "wish_id" integer NOT NULL,
 "wish_type" character varying(255) NOT NULL,
 "content" character varying(4096),
 "ddated" timestamp,
 CONSTRAINT pk_wishcomment_id_wish_id_wish_type PRIMARY KEY("id","wish_id","wish_type")
  );
[ 테이블 생성시한 뒤의 DDL 정보 ※메니저의 DDL 탭에서 확인 ]
  CREATE TABLE "wishcomment"(
 "id" integer AUTO_INCREMENT NOT NULL,
 "wish_id" integer NOT NULL,
 "wish_type" character varying(255) NOT NULL,
 "content" character varying(4096),
 "ddated" timestamp,
 CONSTRAINT pk_wishcomment_id_wish_id_wish_type PRIMARY KEY("id","wish_id","wish_type")
  );

 

문제가 해결 되었나 하고 해당 테이블에 대해서 insert 를 하니 id 에 null 값을 넣을 수 없다고 에러가 발생했습니다.
[ insert 시 사용한 쿼리문 ]
  insert into wishcomment wish_id, wish_type, content, ddated values (1,'***','***','2012-11-1');

 

아무래도, db_serial에 해당 테이블에 시리얼이 남아있던 것이 문제가 되고 있는 것 같습니다.
테이블 편집에서 자동증가 체크를 해제하고 저장한다음에 테이블 정보를 다시 봐도 자동증가에는 체크가 그대로 남아있는 상태입니다.

 

아울러, 큐브리드 메니저에서 슬레이브 DB 쪽에서 문제가 발생하고 있는 테이블에 대한 정보를 보면
마스터와 동일하게 자동증가가 적용되어있는 것 처럼 보이지만,
실제로 서버에서 csql 로 desc 를 해보면 자동증가가 적용이 안되어있습니다.

 

별도로, 마스터 DB에 테이블을 만들고 슬레이브 DB랑 동기화를 시켰습니다만,
마스터 DB 쪽에 각각의 테이블에 대해서는 소유자가 [test] 인것에 반해 슬레이브 DB 쪽에는 [dba] 로 되어있습니다.
이부분에 대해서도 맞는 것인지 확인 부탁드리겠습니다.
※ 마스터와 슬레이브간의 테이블 및 데이터 동기화는 이루어지고 있는 상태입니다.

 

csql 에서 테이블의 auto_increment 에 대해서 삭제 및 등록을 할 수 있는 방법에 대해서도 공유 부탁드리겠습니다.
※메뉴얼에 보니까 create 하는 방법 밖에는 나와있지 않던 것 같습니다.

 

주저리주저리 너무 보기 힘든 문장이 되었습니다만.
잘 부탁드리겠습니다.

 

감사합니다.

  • ?
    이용미 2012.11.02 22:01

    안녕하세요. 질문 감사 드립니다.

    1, 마스터 서버의 CUBRID  HA를 종료하기 전 Delete 작업을 수행하셨는지요?

    슬레이브 서버 HA 종료 후, 데이터가 다 사라졌다고 하셨는데 마스터에서 Delete 작업을 하시고 해당 작업이 슬레이브(stand-by 상태) DB에 적용이 된 후에 FailOver 테스트를 진행하신 것은 아니신지요?

    CUBRID HA구성에 문제가 없다면 슬레이브(stand-by 상태) DB에서는 쓰기/삭제 작업이 불가능 합니다. 슬레이브 DB에 쓰기/삭제가 가능한 상황은 첫번째, 마스터 DB 장애로 인한 슬레이브 DB stand-by에서 active로 변경된 경우, 두번째, 슬레이브 DB 정지 후 csql S 접속한 경우 이 두 가지 이외 슬레이브 DB는 쓰기/삭제가 불가능 합니다.

    FailOver Test를 진행한 내용을 다시 한번 검토해 보시고 만약 동일한 문제가 발생할 경우 자세한 FailOver 테스트 시나리오를 올려 주세요. 내부 재현 후 답변 드리겠습니다.

     

    2, 테이블 삭제 시, 해당 테이블이 가지고 있는 [auto_increment] 속성도 db_serial 에서 자동으로 삭제됩니다.

    또한, auto_increment 속성의 경우, 테이블 혹은 컬럼의 삭제 시 동시에 삭제되기 때문에 따로 삭제는 불가능하고, 초기값 변경만 가능합니다.

     

    3, 테이블 소유자 관련하여는 매니저에서 동일한 문제가 재현 되였습니다. 이 문제는 기능 개선 사항으로 등록해서 개선 하도록 하겠습니다.

    테이블 소유자 문제는 콘솔에서 csql u db_user DB_name@localhost로 접속해서  csql을 이용하여 직접 테이블을 생성하시는 방법을 이용하시면 이 문제가 해결될 것입니다.

  • ?
    김인선 2012.11.06 00:49

    2번에 대해서 씨리얼은 테이블을 삭제하면 자동으로 삭제가 되는 것이라고 답변을 해 주셨는데
    전체 테이블에 대해서는 아니지만 일부 테이블에 대해서는 시리얼이 남아있는 상태여서 테이블을 만들때 [auto_increment] 가 이미 존재한다고 에러가 발생했습니다.
    그럼 해당 테이블을 지웠다가 다시 만들면 해결이 될까요??
    아울러, 위의 문제가 발생한 마스터 DB의 테이블에 대해서는 실제로 SQL 구문에 auto_increment 빼고 실행을 했지만
     [auto_increment] 가 만들어졌습니다. 슬레이브 DB 쪽에서는 마스터와 동일한 테이블에 대해서 [auto_increment] 가 만들어져 있지 않고요...
    아마도, 테이블을 만들때 [auto_increment] 가 이미 존재한다고 에러가 발생했을 때 SQL에서 [auto_increment]  빼고 만든것이 원인인것 같습니다만, 이 부분도 마스터 DB 쪽의 해당 테이블을 삭제하고 다시 만들면 해결이 될까요??


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 125
380 큐브리드 모델링 툴 1 webdoors 2010.03.13 12216
379 큐브리드 방금 깔았는데요. 패스워드가 1 이종옥 2010.01.25 12132
378 큐브리드 백업 진행시 오류 2 제이씨씨 2011.12.23 17233
377 큐브리드 백업 파일로 디비 복구하기 도움좀 주시면 감사하겠습니다. 1 오명일 2016.06.10 8920
376 큐브리드 백업시 다음과 같은 오류가 납니다 1 훈이아빠 2017.07.10 270
375 큐브리드 버전 문의입니다. 1 행복한이니 2020.01.07 57
374 큐브리드 버전 선택 문의 1 유니콘 2011.10.29 36172
373 큐브리드 버전 정보 3 secret 소금인형 2014.05.21 10
372 큐브리드 버전과 빌드 문의 1 crkim2k 2011.02.28 7092
371 큐브리드 보안과 관련한 기능 문의 드립니다. 1 용이지 2017.07.14 292
370 큐브리드 보안관련 문의입니다. 1 야꿍 2017.08.24 247
369 큐브리드 복구 관련 질문 있습니다. 2 secret 노멤버 2016.12.09 9
368 큐브리드 복구 관련 질문있습니다. 1 노멤버 2016.12.10 15955
367 큐브리드 복구 중에 특정 시점 복구 문의 드립니다. 4 SHnJH 2017.10.26 602
366 큐브리드 복제에 대해 문의... 1 샤키 2010.07.27 9585
365 큐브리드 볼륨 자동 추가 설정 관련 질문드립니다 1 T군 2019.06.11 64
364 큐브리드 뷰에서 select 절에 NULL 은 안되나요? 1 덴드로비움 2017.09.25 283
363 큐브리드 브로커가 BUSY 상태로 지속되는 현상 문의 2 종이 2016.03.23 9301
362 큐브리드 브로커의 기능에 대해 문의 합니다 1 file 샤키 2010.05.01 13214
361 큐브리드 사용 중 loaddb 시 process 관련 에러 4 유부유부 2014.07.31 6946
Board Pagination Prev 1 ... 135 136 137 138 139 140 141 142 143 144 ... 158 Next
/ 158

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2147 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales