본문 바로가기

나는 엔지니어/CUBRID

데이터베이스 서버



예상 개념도 ( 메뉴얼 자료가 아니므로 참고만.)




각 데이터 베이스에는 한 개의 서버 프로세스가 존재한다.

서버 프로세스는 데이터베이스 파일 및 로그 파일 등에 접근하여 , 사용자의 요청을 처리한다.

클라이언트 프로세스는 서버 프로세스와 TCP/IP통신을 통해 접속하며,

하나의 서버 프로세스는 스레드를 생성해서 다수의 클라이언트 프로세스의 요청 작업을 처리한다.

서버 프로세스별로 시스템 파라미터 설정을할 수 있으며 서버프로세스는 max_clients파라미터 값으로

지정된 수만큼 클라이언트 프로세스의 접속이 가능하다.


마스터 프로세스는 클라이언트 프로세스가 서버 프로세스에 접속하여 통신할 수 있게 하는 중개 프로세스로서, 호스트별로 한 개씩 동작한다. (정확히는 시스템 파라미터 파일인 cubrid.conf에 지정되는 접속 포트 번호별로 하나씩의 마스터 프로세스가 존재한다.) 마스터 프로세스는 지정된 TCP/IP 포트에 대기하고 있고, 클라이언트 프로세스는 해당 TCP/IP 포트로 마스터 프로세스에 접속한 후 마스터 프로세스가 지정된 데이터베이스 이름에 따라 해당 서버 프로세스로 소켓 포트를 변경하여 접속을 처리한다.


실행모드

서버 프로세스를 제외한 CUBRID의 프로그램들은 종류에 따라 두 가지 실행 모드가 있다. 실행 모드는 클라이언트/서버 모드(client/server mode)와 독립 모드(standalone mode)로 나뉜다.

• 클라이언트/서버 모드는 해당 프로그램이 클라이언트 프로세스로서 동작하여 서버 프로세스에 접속하는 방식이다.

• 독립 모드는 해당 프로그램이 서버 프로세스의 기능을 포함하고 있어 직접 데이터베이스 파일에 접근하여 수행하는 방식이다.


예를 들어, 데이터베이스 생성 유틸리티나 복구 유틸리티 등은 다수 사용자가 데이터베이스에 접근하는 것을 막고 해당 프로그램만이 온전히 점유해서 작업할 수 있도록 독립 모드로 실행된다. 또 다른 예로, CSQL 인터프리터는 클라이언트/서버 모드로 동작하여 서버 프로세스에 접속할 수도 있고, 독립 모드로 동작하여 데이터베이스에 접근하여 SQL 문을 실행할 수도 있다. 참고로, 하나의 데이터베이스에 서버 프로세스와 독립 실행 프로그램이 모두 접근할 수는 없다.


'나는 엔지니어 > CUBRID' 카테고리의 다른 글

인터페이스 모듈  (0) 2012.05.25
큐브리드 볼륨의 구조  (0) 2012.05.25
정리를 시작하며....  (0) 2012.05.24