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 유틸리티

HA 기능을 위해 사용되는 CUBRID 유틸리티는 다음과 같다. 아래 유틸리티는 ha_mode 파라미터가 on으로 설정된 서버에서만 사용할 수 있다.

데이터베이스 서버의 작동 모드 출력/설정
설명

cubrid changemode 유틸리티는 데이터베이스 서버의 상태를 출력하거나 변경한다. 서버의 작동 모드가 바뀔 때마다 서버 에러 로그에 이력이 출력된다. -m 옵션을 지정하지 않으면 현재의 작동 모드가 출력된다.

구문

cubrid changemode [option] <database_name>@<hostname>

option:

-m, --mode=<MODE> : 변경할 모드를 지정한다. 사용할 수 있는 값은 active, standby, maintenance이다.

예제 1

[ha_user1@server_s1 ~]$ cubrid changemode tdb01@server_s2

The server 'tdb01@server_s2''s current HA running mode is standby.

예제 2

;database 명령어를 수행하여 CSQL 세션 내에서 현재 접속 중인 데이터베이스 서버의 HA 모드를 확인할 수 있다.

csql> ;database

      demodb@localhost (active)

데이터베이스 서버의 트랜잭션 로그 저장
설명

cubrid copylogdb 유틸리티는 원격 데이터베이스 서버에서 생성되는 트랜잭션 로그를 지정한 경로에 저장한다.

트랜잭션 로그의 전송 방식은 다음 세 가지이며, 사용자는 운영 정책에 따라 적합한 트랜잭션 로그 전송 방식을 선택하여 사용한다.

  • 동기식(Synchronous) : 데이터베이스 서버는 copylog 프로세스에 트랜잭션 로그를 모두 전송하고, 전송된 트랜잭션 로그가 디스크에 저장(write)될 때까지 기다린 후 커밋한다. 즉, 로그 페이지 전송과 로그 페이지 저장을 모두 보장하는 방식이다. cubrid copylog -m의 값을 sync로 지정한다.
  • 반동기식(Semi-Synchronous) : 데이터베이스 서버는 copylog 프로세스에 트랜잭션 로그를 모두 전송하고, 응답을 받으면 커밋한다. 즉, 로그 페이지 전송은 보장하나 로그 페이지 저장은 보장하지 않는 방식이다. cubrid copylog -m의 값을 semisync로 지정한다.
  • 비동기식(Asynchronous) : 데이터베이스 서버는 copylog 프로세스에 트랜잭션 로그를 전송한 직후 커밋한다. 즉, 로그 페이지 전송 완료를 보장하지 않는 방식이다. cubrid copylog -m의 값을 async로 지정한다.
구문

cubrid copylogdb [option] <database_name>@<hostname>

option:

-L, --log-path=<PATH> : 복사한 트랜잭션 로그를 저장할 파일의 경로이다.

-m, --mode=<MODE> : 트랜잭션 로그 페이지를 복사해 오는 방식을 지정한다. 지정 가능한 값은 sync, semisync 및 async이며, 모드에 따라 페이지 전송 작업 및 페이지 저장(write) 작업을 다르게 보장한다.

저장한 트랜잭션 로그를 데이터베이스에 반영
설명

cubrid applylogdb 유틸리티는 복사된 트랜잭션 로그 파일을 지정한 경로에서 읽어서 분석 후 로컬 데이터베이스 서버에 반영한다.

구문

cubrid applylogdb [option] <database_name>@<hostname>

option:

-L, --log-path=<PATH>: 읽을 트랜잭션 로그 파일의 경로이다.

--max-mem-size=<SIZE>: 프로세스의 최대 메모리 크기이다. 메모리 크기의 단위는 MB이고, 최대 1000MB까지 가능하다.

참고 현재 메모리 사용량에 따른 CAS 프로세스 재시작 조건은 브로커별 파라미터에서 APPL_SERVER_MAX_SIZE 파라미터의 설명을 참고하며, cubrid applylogdb의 경우 --max-mem-size 옵션을 이용하여 사용자가 직접 최대 메모리 크기를 설정할 수 있다.