Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 | 

HA 모드 구동

cubrid-ha start

cubrid-ha start는 HA 모드로 데이터베이스 서버를 구동하는 명령어이며, cub_master, cub_server, copylogdb, applylogdb 프로세스를 순서대로 구동하며 복제 로그(copylog)가 저장되는 경로를 생성한다. cubrid-ha start 명령이 수행되는 순서에 따라 active 서버와 standby 서버가 결정된다.

먼저 구동된 서버 노드(server_s1)의 데이터베이스가 마스터 데이터베이스가 된다.

[root@server_s1 ~]# service cubrid-ha start

Starting cubrid-ha:                                        [  OK  ]

나중에 구동된 서버 노드(server_s2)의 데이터베이스가 슬레이브 데이터베이스가 된다.

[root@server_s2 ~]# service cubrid-ha start

Starting cubrid-ha:                                        [  OK  ]

cubrid-ha status

cubrid-ha status는 HA 모드로 구동 중인 데이터베이스 서버의 상태 정보를 확인하는 명령어이다. 이 명령어가 수행된 HA 노드의 상태 정보 및 HA 관련 프로세스의 상태 정보가 출력된다.

[root@server_s2 ~]# service cubrid-ha status

 

HA-Node Info (current server_s2, state slave)

   Node server_s2 (priority 2, state slave)

   Node server_s1 (priority 1, state master)

 

 

 HA-Process Info (master 30519, state slave)

   Applylogdb tdb01@localhost:/home1/cubrid1/DB/tdb01_server_s1 (pid 30796, state registered)

   Copylogdb tdb01@server_s1:/home1/cubrid1/DB/tdb01_server_s1 (pid 30788, state registered)

Server tdb01 (pid 30551, state registered)

 

++ cubrid heartbeat list: success

Status cubrid-ha:                                          [  OK  ]

cubrid-ha stop

cubrid-ha stop은 HA 모드로 구동 중인 데이터베이스 서버를 중지하는 명령어이다. applylogdb, copylogdb, cub_server, cub_master 프로세스를 순서대로 중지하며, 관련 프로세스가 모두 종료되므로 주의해야 한다. 한쪽 노드(server_s1)에서만 수행되면 다른 노드(server_s1)로 failover하고, 양쪽 노드(server_s1, server_s2)에서 각각 수행되면 서비스가 중단된다.

[root@server_s1 ~]# service cubrid-ha stop

Stopping cubrid-ha:                                        [  OK  ]

서비스를 중단하기 위해서는 나머지 노드(server_s2)에서 이 명령을 수행한다.

[root@server_s2 ~]# service cubrid-ha stop

Stopping cubrid-ha:                                        [  OK  ]

cubrid-ha deact

cubrid-ha deact는 서비스 중인 노드에서 배치 작업을 수행하기 위해 서비스 노드를 다른 노드로 failover할 때 사용되는 명령어로서, 서비스 중인 노드(server_s1)의 상태를 unknown으로 변경하고 standby 서버 노드(server_s2)로 자동 failover한다.

[root@server_s1 ~]# service cubrid-ha deact

deactivate cubrid-ha:                                      [  OK  ]

 

[root@server_s1 ~]# service cubrid-ha status

 

 HA-Node Info (current server_s1, state unknown)

 

 

 HA-Process Info (master 13396, state unknown)

 

Status cubrid-ha:                                          [  OK  ]

cubrid-ha act

cubrid-ha actcubrid-ha deact가 수행된 노드에서 배치 작업을 완료한 이후, 해당 노드를 서비스 노드로 복구하기 위하여 사용되는 명령어로서, 해당 노드(server_s1)의 상태를 unknown에서 active로 변경한다.

root@server_s1 ~]# service cubrid-ha act

activate cubrid-ha:                                        [  OK  ]

cubrid heartbeat deregister

cubrid heartbeat deregister는 현재 노드에서 실행 중인 특정 프로세스를 종료하고, 관리 프로세스 목록에서 이를 삭제하기 위해 사용되는 명령어이며, 반드시 대상 프로세스 ID가 명시되어야 한다. 이때, 대상 프로세스가 종료되더라도 standby 서버로 failover되지 않는다.

아래는 데이터베이스 리스트에 tdb01과 tdb02가 포함되어 HA 모드로 동작되는 경우에, 현재 노드에서 실행 중인 tdb01 서버 프로세스를 종료하고 프로세스 목록에서 삭제하는 예이다.

[ha_user1@server_s1 ~]$ cubrid heartbeat deregister 4087

 @ cubrid heartbeat deregister: 4087

 HA-Process Info (master 4072, state master)

   Applylogdb tdb01@localhost:/home1/cubrid1/DB/tdb01_server_s2 (pid 4307, state registered)

   Applylogdb tdb02@localhost:/home1/cubrid1/DB/tdb02_server_s2 (pid 4313, state registered)

   Copylogdb tdb02@server_s2:/home1/cubrid1/DB/tdb01_server_s2 (pid 4311, state registered)

   Copylogdb tdb01@server_s2:/home1/cubrid1/DB/tdb01_server_s2 (pid 4305, state registered)

   Server tdb02 (pid 4195, state registered_and_active)

   Server tdb01 (pid 4087, state deregistered)