CUBRID HA의 서버 상태를 확인하고 변경한다.
cubrid changemode [option] <database-name>
옵션 |
기본값 |
설명 |
---|---|---|
-m |
none |
서버 상태를 변경한다. 옵션 값으로 standby, maintenance, active 중 하나를 입력할 수 있다. |
-f |
|
서버의 상태를 강제로 변경할지 여부를 설정한다. 현재 서버가 to-be-active 상태일 때 active 상태로 강제 변경하려고 하는 경우에는 반드시 사용하며, 이를 설정하지 않으면 active 상태로 변경되지 않는다. |
-t |
5(초) |
노드 상태를 standby에서 maintenance로 변경할 때 진행 중이던 트랜잭션이 정상 종료되기까지 대기하는 시간을 설정한다. 설정한 시간이 지나도 트랜잭션이 진행 중이면 강제 종료 후 maintenance 상태로 변경하고, 설정한 시간 이내에 모든 트랜잭션이 정상 종료되면 즉시 maintenance 상태로 변경한다. |
다음은 현재 상태에 따라 변경할 수 있는 상태를 표시한 표이다.
|
변경할 상태 |
|||
active |
standby |
maintenance |
||
현재 상태 |
standby |
X |
O |
O |
to-be-standby |
X |
X |
X |
|
active |
O |
X |
X |
|
to-be-active |
O* |
X |
X |
|
maintenance |
X |
O |
O |
* 서버가 to-be-active 상태일 때 active 상태로 강제 변경하면 복제 불일치가 발생할 수 있으므로 관련 내용을 충분히 숙지한 사용자가 아니라면 사용하지 않는 것을 권장한다.
다음 예는 localhost 노드의 testdb01 서버 상태를 maintenance 상태로 변경한다. 이때 진행 중이던 모든 트랜잭션이 정상 종료하기까지 대기하는 시간은 -t 옵션의 기본값인 5초이다. 이 시간 이내에 모든 트랜잭션이 종료되면 즉시 상태를 변경하며, 이 시간이 지나도 진행 중인 트랜잭션이 존재하면 이를 롤백한 후 상태를 변경한다.
$ cubrid changemode -m maintenance testdb01@localhost
The server 'testdb01@localhost''s current HA running mode is maintenance.
다음 예는 localhost 노드의 testdb01 서버의 상태를 조회한다.
$ cubrid changemode testdb01@localhost
The server 'testdb01@localhost''s current HA running mode is active.