Background Image
조회 수 11651 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
master - slave 구성한 복제 데이터베이스 환경에서, 한 질의문에서 복수 개의 튜플에 데하여 primary key 속성인 컬럼을 갱신하는 경우, 즉 update table1 같은 질의문을 수행하는 경우, 복제가 반영되는 slave에서는 unique constraint 오류가 발생하여 master와 데이터 불일치가 발생한다.

 

1.   오류발생 원인

 

master 트랜잭션 기반으로

slave 로그 기반으로 오퍼레이션이 수행된다.

master에서는 트랜잭션이 커밋될 때까지는 해당 레코드에 대한 unique constaint 체크가 발생하지 않으므로 정상 동작한다.

slave 로그 기반으로 오퍼레이션이 수행되므로, master에서 update 시도하는 경우에 대해 오퍼레이션 건당 unique constraint 하며 이때 constaint 에러가 발생한다.

 

예를 들어,

테이블에 id 1,2,3,4 들어 있다면, id=id+1 업데이트를 시도할 경우 slave에서는 1->2 바꾼 직후 unique constaint 체크하는데 이때 2 이미 들어 있으므로 에러가 발생한다.

 

2.   대처

 

복제는 primary key 기반으로 동작하기 때문에 primary key 일시 제거할 없다.

이와 같은 쿼리에 대한 처리는 현재 지원하지 않으므로 복제 환경에서는 이러한 쿼리가 발생하지 않도록 응용 프로그램을 구현하여야 한다.

또는, 복제를 disable하고 master에서 쿼리를 수행한 다음에 복제를 재구성해야 한다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
119 운영관리 CUBRID JAVA Stored Procedure의 GC로그 출력방법 janus 2009.12.01 15317
118 운영관리 CUBRID 2008 삭제시 주의사항 file seongjoon 2009.04.01 15288
117 질의작성 시스템 테이블을 이용한 인덱스 생성 구문 만들기 janus 2009.12.02 15143
116 응용개발 jdbc에서 bit 데이터 타입 사용하기 손승일 2009.04.11 15014
115 운영관리 CUBRID 2008 R2.0 RPM 설치후 PHP모듈 로딩에 실패할 경우 Prototype 2009.12.10 14918
114 응용개발 PHP에서 prepared statement 사용시 BIND 관련 팁 Prototype 2009.06.30 14844
113 응용개발 전체 레코드 개수 확인하는 SP 김승훈 2015.05.07 14728
112 CUBRID 매니저 CUBRID Manager의 host 및 질의편집기 설정 저장 위치 seongjoon 2010.04.01 14709
111 기타 2008.11.18. 최신 우편번호부 with CUBRID file Prototype 2009.03.17 14482
110 CUBRID 매니저 CUBRID에서 여러개의 질의 결과 확인하는 방법 file seongjoon 2010.01.02 14441
109 운영관리 windows 환경에서 Manager 접속이 되지 않는 경우 처리 방안 남재우 2010.11.26 14423
108 운영관리 데이터 입력 중 디스크 공간 부족 오류가 발생하였을 때, 복구 방법 이용미 2012.06.30 14333
107 기타 windows에서의 Build 오류 발생 시 조치방법 cubebridge 2009.05.19 14255
106 질의작성 세부내역과 소계를 한개의 쿼리문장으로 수행하는 SQL 권호일 2012.03.31 14092
105 응용개발 cubrid-php module r2.2 이상 버젼에서 configure시에 주의사항 seongjoon 2010.07.20 14007
104 질의작성 게시판 응용 중 조회수로 정렬하는 경우 인덱스 생성 방법 1 손승일 2012.06.23 13907
103 질의작성 전체 테이블 UPDATE시 SELECT, UPDATE를 통한 INDEX SCAN방식으로 테이블 X_LOCK을 방지하자! file 이경오 2015.08.13 13802
102 응용개발 PHP 프로그램을 작성할때 주의할 점 Prototype 2009.07.01 13728
101 CUBRID 매니저 CUBRID Manager 메모리 설정하기(cubridmanager.ini) file 성진 2015.04.24 13712
100 운영관리 리눅스 쉘프롬프트 상에서 질의 바로 수행하기 Prototype 2009.12.10 13640
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 14 Next
/ 14

Contact Cubrid

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