Skip to end of metadata
Go to start of metadata

 

개요


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

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

 

대상버전


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

단순한 형태의 DDL 작업인 경우에는 본 문서의 작업절차를  ALTIBASE HDB 4.3.9 버전대에서도  그대로 사용 가능하나   주로  ALTIBASE HDB 5.3.3 이상 버전을 대상으로 설명합니다.

  

방법


DDL 구문으로 인해서 대량의 데이타 변경 작업이 발생할 가능성이 있을 경우에는  보다 안전한 다른 작업절차를 사용해야 하며  ALTIBASE 이중화환경의 DDL 가이드를 참조하십시요.

서비스   중단하에서의  작업

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

순서 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