Skip to end of metadata
Go to start of metadata

 

개요


일반적으로 DB 에 대한 DDL 작업은 테이블에 대한 독점적인 잠금(Lock) 을 필요로 합니다. ALTIBASE HDB 는 지역서버에서 발생한 트랜잭션 로그를 상대편 서버에 전송하여 데이터를 일치시키는 형태의 네트워크 기반의 이중화 기법을 사용하며

DDL 같은 작업은 로그로 전송하지 않아 DDL 작업은 복제되지 않습니다. 따라서 디스크 공유방식과는 다르게 각각의 노드(Server) 에서 DDL 작업을 수행하는 다른 방식의 작업절차가 필요합니다.

 

대상버전


ALTIBASE HDB는 버전에 따라서 지원하는 DDL 구문의 종류가 다르며 이중화 관련한 DDL 구문의 기능도 차이가 있습니다.  

자세한 내용은 http://support.altibase.com/kr/manual 에서 사용하고 있는 버전의 매뉴얼을 참조하십시오.  

방법


서비스 중단하에서의 작업

데이터베이스에 접근하는 서비스를 일정시간 동안 모두 중단할 수 있는 환경에서는 상대적으로 간단한 작업단절차를 통해서 완료할 수 있습니다.

순서 A노드 B노드 
STEP 1
  •  서비스 중지( 트랜잭션이 발생하지 않도록 조치)
    • 확실하게 서비스를 막기 위해서 DB 를 stop 한 후 서비스 포트를 변경하여 구동 후 수행하기도 합니다.
    • 데이터 베이스에 접속한 세션 확인 또는 수행중인 문장 확인
      • iSQL> select count(*) from v$session;
      • iSQL> select count(*) from v$statement where execute_flag =1 ; 
STEP 2
  •  대상 노드의 이중화 갭이 모두 "0" 임을 확인 ( 이중화 Sender 가 구동된 DB를 의미) 
    • DDL 수행 대상 테이블이 속해 있는 이중화 객체 확인
      • iSQL> select REPLICATION_NAME,LOCAL_USER_NAME, LOCAL_TABLE_NAME from SYSTEM_.SYS_REPL_ITEMS_;
    • 이중화 갭 확인
      • iSQL> SELECT rep_name, rep_gap FROM v$repgap;      # rep_gap 이 모두 0 임을 확인.  
STEP 3
  •  대상노드의 이중화를 중지
    • iSQL>  ALTER REPLICATION rep_name STOP;   # 이중화 객체(REP_NAME) 은 STEP 2에서 확인
STEP 4
  • 이중화 객체에서 DDL을 수행하려는 대상 테이블을 제거
    • iSQL> ALTER REPLICATION rep_name DROP TABLE FROM user_name.table_name TO user_name.table_name
STEP 5
  • DDL 작업 수행  
    •  iSQL> ALTER TABLE t1 ADD COLUMN ( c1 INTEGER);
STEP 6
  • STEP 4에서 제거한 이중화 대상 테이블을 다시 이중화 객체 리스트에 추가 
    • iSQL> ALTER REPLICATION rep_name ADD TABLE FROM user_name.table_name TO user_name.table_name
STEP 7
  • 대상노드에서 이중화 시작
    •  iSQL> ALTER REPLICATION rep_name START
STEP 8
  • 서비스 개시
    • STEP 1에서 DB의 서비스 포트 번호를 변경했다면 서비스 포트를 다시 원복하고 데이터 베이스를 재구동합니다.
    • Application 을 구동하여 DB 서비스를 재개한 후 DB의 상태를 확인합니다.


서비스 무중단 제약하에서의 작업

서비스 무중단이 필요한 환경에서는 한 노드는 데이터베이스를 운영하는 상태에서 한 노드씩 교대로 작업을 해야만 하는 제약사항이 있을 수 있습니다.

이런 조건하에서는 앞서 설명한 서비스 중단이 가능한 환경에 비해서 상대적으로 여러 단계의 작업절차가 필요하며 주의가 필요할 수 있습니다.

 

 

  • No labels