FAQ
알티베이스 이중화 대상 테이블에 대한 DDL 작업 | |||||
Classification | 이중화 | Create Date | 2015-03-09 | Hit | 5688 |
이중화 대상 테이블에 대한 정상적인 DDL 수행 절차는 아래와 같습니다. 1. 알티베이스 서버로 접근하는 모든 서비스 중지 확실하게 서비스를 막기 위해 데이터베이스 중지 후 서비스 포트를 변경하여 구동 후 수행하기도 합니다.) 1.1 서비스 포트 변경 방법 - 알티베이스 서버를 중지합니다. ( $ server stop ) - $ALTIBASE_HOME/conf/altibase.properties 에서 PORT_NO 을 사용하지 않는 다른 포트로 변경합니다. - 알티베이스 서버를 구동합니다. ( $ server start ) 1.2 데이터베이스에 접속한 세션 확인 또는 수행 중인 문장 확인 * 현재 세션 외 다른 세션이 없어야 합니다. iSQL> select count(*) fromv$session; # 접속 세션이 얼마나 되는 지 확인. iSQL> select count(*) from v$statement where execute_flag = 1; # 수행 중인 statement 여부 확인. 2. 대상 노드의 이중화 갭이 “0”임을 확인하고 해당 이중화 객체 중지. (여기서 대상 노드란 이중화 sender 가 구동된 데이터베이스 서버를 의미합니다. ) 2.1 DDL 수행 대상 테이블이 속해 있는 이중화 객체 확인 iSQL> select REPLICATION_NAME,LOCAL_USER_NAME, LOCAL_TABLE_NAME from SYSTEM_.SYS_REPL_ITEMS_; 2.2 이중화 갭 확인 iSQL> SELECT rep_name, rep_gap FROM v$repgap; # rep_gap 이 모두 0 임을 확인. 2.3 대상 이중화 객체 중지 iSQL> ALTER REPLICATION rep_name STOP; # 이중화 객체(rep_name)는 1.1 조회 결과에서 확인. 3. 2-1. 에서 확인한 이중화 객체에서 대상 테이블을 제거합니다. 이중화 객체가 생성된 모든 데이터베이스에서 수행해야 합니다. iSQL> ALTER REPLICATION rep_name DROP TABLE FROM user_name.table_name TO user_name.table_name; 4. 대상 데이터베이스 에서 각각 DDL 수행 5. 3. 에서 제거한 이중화 대상 테이블을 다시 이중화 객체에 추가 iSQL> ALTER REPLICATION rep_name ADD TABLE FROM user_name.table_name TO user_name.table_name; 6. 대상 노드에서 이중화 시작 여기서 대상 노드란 이중화 sender 가 구동해야 할 데이터베이스 서버를 의미합니다. iSQL> ALTER REPLICATION rep_name START; 1. 에서 데이터베이스 서비스 포트도 변경했다면 다시 원복하고 데이터베이스 재 구동합니다. 7. 서비스 개시 |