문서유형ㅣ장애해결
분야ㅣ관리/환경설정
적용제품버전ㅣ6FS07
문서번호ㅣTADTS040
현상
TAC 환경에서 NO ORDER + CACHE 옵션의 sequence 를 사용할 때 순서대로 채번되지 않는 현상이 발생합니다.
원인
TAC 환경에서 CACHE + NO ORDER 옵션일 때, node1 에서 cache 사이즈만큼 시퀀스를 뛰어넘은 후 node2 에서 할당된 캐시사이즈의 뒷 번호부터 시작하게 됩니다.
그로 인해 실질적으로는 순서대로 채번되지 않는 현상이 발생하게 됩니다.
1. NO ORDER 옵션에서 sequence 생성
CREATE SEQUENCE NO_ORDER INCREMENT BY 1 START WITH 1 NOMAXVALUE MINVALUE 1 NOCYCLE CACHE 5 NOORDER ;
2. 조회 결과
NODE 1에서 NODE2 에 할당된 CACHE 값을 넘는 수 만큼 select NO_ORDER.nextval from dual; 조회 시 순서대로 채번되지 않는 것 확인 가능합니다.
SQL> select NO_ORDER.nextval from dual; NEXTVAL 1 1 row selected. SQL> select NO_ORDER.nextval from dual; NEXTVAL 2 1 row selected. SQL> select NO_ORDER.nextval from dual; NEXTVAL 5 1 row selected. SQL> select NO_ORDER.nextval from dual; NEXTVAL 11 1 row selected.
해결
ORDER 옵션을 주었을 때는, 다른 노드에게 캐시 사이즈만큼 할당된 번호로 올라가지 않고 순차적으로 채번됩니다.
참고order 옵션 사용 시 부하가 발생할 수 있습니다. 사이트 환경에 맞게 CACHE, ORDER/NO ORDER 옵션을 사용하는 것을 권고합니다.