Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2


개요 

...

이중화 사용시 발생할 수 있는 현상인 give-up과 give-up이 미치는 영향에 대해 설명합니다.


적용버전 

...

  • ALTIBASE HDB 6.3.1 을 기준으로 작성 되었습니다.
  • 추가사항 또는 업데이트가 필요한 경우 http://support.altibase.com/kr/ 또는 이 페이지에 댓글로 요청 글 남겨주세요.


Replication과 로그파일 

...

알티베이스 이중화는 log_based replication 방법을 사용하고 있습니다.
즉, active쪽에서 생성된 로그들을 standby 쪽으로 전송함으로써 양 서버간의 데이타 일치를 보장하는 방법입니다.

알티베이스에서 로그파일들은 일정 수만큼의 로그파일들만 생성하여 이를 circular하게 재생성하는 것이 아니라 로그가 생기는 만큼 계속적으로 로그파일들이 자동으
로 생성하는 방식입니다. 그렇기 때문에 불필요한 로그파일들은 주기적으로 삭제되어야만 disk full을 방지할 수 있습니다. 

로그파일의 삭제는 checkpoint 수행시 이루어지며, 다음과 같은 조건에 있는 로그파일들은 삭제될 수 없습니다.

...


따라서, 어떠한 이유로 인해 이중화 데이타 전송이 느려지면 로그파일이 삭제가 되지 않아 disk full이 발생할 수 있습니다. 

 

이중화 give-up이란

...

이중화 문제로 인해 로그파일이 삭제되지 않는 경우 disk full을 방지하기 위해 이중화에서 최대 유지할 수 있는 로그파일의 갯수를 지정할 수 있습니다.

...

이처럼 이중화 데이타가 전송되지 않았음에도 불구하고 이중화에 필요한 로그파일을 삭제하는 현상을 이중화 give-up이라 합니다.


give-up 발생시 미치는 영향

...

이중화 give-up이 발생하면 active와 standby 양 서버간의 데이타 불일치 현상이 발생되어, 심각한 문제를 초래할 수도 있습니다.


 

give-up 방지방법 

...

이중화 give-up을 막으려면 이중화 성능에 영향을 미칠 수 있는 네트워크 속도가 항상 안정된 상태임을 보장해야 합니다.

...

 

No Format
languagebash
REPLICATION_MAX_LOGFILE = 400

이 프로퍼티의 단위는 로그파일 갯수를 의미하며 위의 예와 같이 400으로 설정된 경우, 현재 삭제되지 않은 로그파일의 갯수가 400개 이상이면 이중화 give-up이 발생하게 됩니다.


give-up 발생시 이중화 진행여부 설정(자동) 


REPLICATION_MAX_LOGFILE 프로퍼티로 설정된 값을 초과하여 이중화가 잠시 중단된 이후, 다시 시작하는 방식을 설정할수 있습니다.

...

0으로 설정된 경우에는, 이중화 "재시작 SN" (즉 SYS_REPLICATIONS_ 메타 테이블의 XSN 컬럼의 값)이 -1로 초기화되며, 이중화는 중지된다. 그리고, SYS_REPLICATIONS_ 메타 테이블의 IS_STARTED 컬럼의 값이 0으로 바뀐다.
1로 설정된 경우, 이중화 "재시작 SN" 값은 현재 로그 파일의 마지막 (가장 큰) SN으로 변경되고, 이중화는 이 "재시작 SN" 부터 다시 수행된다.

 

 

give-up 확인주기  


give-up을 수행해야 하는지 여부의 검사는 checkpoint가 수행될 때 이루어집니다. 
로그파일의 삭제가 checkpoint시 수행되기 때문입니다. 

 

 

give-up 발생 여부의 확인  


give-up이 발생하면 이중화 메타테이블에 give-up 시간이 기록됩니다.

Code Block
languagesql
iSQL> set vertical on;
iSQL> select replication_name, is_started, give_up_time from SYSTEM_.SYS_REPLICATIONS_;
REPLICATION_NAME         : REP1                                      
IS_STARTED               : 1           
GIVE_UP_TIME             :              
1 row selected.
REPLICATION_NAME : 이중화 이름
IS_STARTED       : 이중화 시작 여부 (start 1, stop 0)
GIVE_UP_TIME     : 가장 최근에 이중화를 포기한 일시