클러스터링과 시퀀스의 문제..
smufu 수험생

답변 채택시 : 0코아

답변 2 추천 0 조회 2760 2004.09.30
버젼은 Oracle 8.1.7 이며 오라클 인스턴스가 실행된 장비가 2대 입니다. 하나의 디스크를 광케이블을 사용하여 공유중입니다. 사람으로 비유하면 양손이 오라클 인스턴스구요.. 팔이 광케이블 몸통이 디스크 입니다. 설명이 너무 리얼한가요.. -_-;; 여하튼 이런 장비가 있으며 일련번호 채번을 위하여 시퀀스를 생성해서 사용중입니다. 채번한 값을 DB에 insert하구요. 그런데 이부분에서 문제가 생기는데.. 가끔씩 시퀀스.nextval을 하면 같은 값이 나오는 경우가 있습니다. 데이터 row가 1,2,3,4,5,5,6,7,8,9,10,11,11 이런식으로 insert되어 있습니다. 각 오라클 인스턴스별로 시퀀스 값을 조회하면 약간의 차이가 있네요.. 클러스터링시 같은 값이 select되지 않기 위해 약간의 갭을 둔다고 하는것 같던데.. 이런 상황에서 특정 배치 작업들이 돌게 되면 시퀀스 번호가 겹치는 경우가 생기는데요.. 갭을 늘려서 해결은 될듯 하지만 궁극적인 해결책은 아닌듯이 보여서요.. 이 문제의 원인과 해결책을 알고 싶습니다.
댓글 (0)
목록 답변등록
클러스터링과 시퀀스의 문제..
petro016 2004.10.01
sequence의 옵션중에 order라는 옵션이 있습니다. 디폴트가 noorder이기 때문에 ops환경에서는 중복될수 있습니다.
댓글 (0)
클러스터링과 시퀀스의 문제..
kwon70 2004.10.01
혹시 아래와 같이 시퀀스를 생성할때 CACHE를 설정하신것 아닌가요? CREATE SEQUENCE ......... ................. CACHE N(디폴트는 20) 정경석님의 경우처럼 클러스터링사용할경우 CACHE를 설정하면 각각의 장비의 메모리에서 시퀀스를 관리하게 되므로 한쪽에서 INSERT를 할경우 다른쪽메모리에서는 알수가 없게 되지않을까요? CACHE N을 NOCACHE로 변경해보심이 어떨지요.... 순전히 제생각이었습니다. 다른원인일수도 있겠지요. >버젼은 Oracle 8.1.7 이며 오라클 인스턴스가 실행된 장비가 2대 입니다. > >하나의 디스크를 광케이블을 사용하여 공유중입니다. > >사람으로 비유하면 양손이 오라클 인스턴스구요.. 팔이 광케이블 몸통이 디스크 입니다. > >설명이 너무 리얼한가요.. -_-;; > >여하튼 이런 장비가 있으며 일련번호 채번을 위하여 시퀀스를 생성해서 사용중입니다. > >채번한 값을 DB에 insert하구요. > >그런데 이부분에서 문제가 생기는데.. 가끔씩 시퀀스.nextval을 하면 > >같은 값이 나오는 경우가 있습니다. > >데이터 row가 1,2,3,4,5,5,6,7,8,9,10,11,11 이런식으로 insert되어 있습니다. > >각 오라클 인스턴스별로 시퀀스 값을 조회하면 약간의 차이가 있네요.. > >클러스터링시 같은 값이 select되지 않기 위해 약간의 갭을 둔다고 하는것 같던데.. > >이런 상황에서 특정 배치 작업들이 돌게 되면 시퀀스 번호가 겹치는 경우가 생기는데요.. > >갭을 늘려서 해결은 될듯 하지만 궁극적인 해결책은 아닌듯이 보여서요.. > >이 문제의 원인과 해결책을 알고 싶습니다.
댓글 (0)