728x90
구조
클라이언트 / 서버 모델 사용
- 서버는 db파일들을 관리하고 클라이언트 애플리케이션으로 들어오는 연결을 수용, 클라이언트를 대신해 데이터베이스 액션을 수행한다.
- 서버는 다중 클라이언트를 처리하는데 서버는 클라이언트의 연결 요청이 오면 각 커넥션에 대해 새로운 프로세스를 fork 한다.
- 클라이언트는 기존 서버와의 간섭없이 새로 생성된 서버 프로세스와 통신하게 된다.
1) 클라이언트는 인터페이스 라이브러리(libpg, JDBC, ODBC 등의 다양한 인터페이스)를 통해 서버와의 연결을 요청
2) Postmaster 프로세스가 서버와의 연결을 중계한다.
3) 클라이언트는 할당된 서버와의 연결을 통해 질의를 수행한다.
PostgreSQL의 특징
- Portable
- PostgreSQL은 ANSI C로 개발되었으며, 지원하는 플랫폼의 종류로는 Windows, Linux, MAC OS/X, Unix 등 다양한 플랫폼을 지원한다.
- Reliable
- 트랜잭션 속성인 ACID에 대한 구현 및 MVCC(Multi-Version Concurrency Control, 다중 버전 동시성 제어)
- 로우 레벨 라킹 등이 구현
- Scalable
- PostgreSQL의 멀티 버젼에 대해 사용이 가능
- 대용량 데이터 처리를 위한 Table Partitioning과 Tables Space 기능 구현이 가능
- Secure
- DB 보안은 데이터 암호화, 접근 제어 및 감시의 3가지로 구성됨
- 호스트-기반의 접근 제어, Object-Level 권한, SSL 통신을 통한 클라이언트와 네트워크 구간의 전송 데이터를 암호화 등 지원
- Recovery & Availability
- Streaming Replication을 기본으로, 동기식/비동기식 Hot Standbt 서버를 구축 가능
- WAL Log 아카이빙 및 Hot Back up을 통해 Point in time recovery 가능
- Advanced
- pg_upgrade를 통해 업그레이드를 할 수 있으며, 웹 또는 C/S 기반의 GUI 관리 도구를 제공하여 모니터링 및 관리는 물론 튜닝까지 가능
- 사용자 정의 Procedural로 Perl, Java, Php 등의 스크립트 언어 지원이 가능
도움
'DB > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] 초기 설치 및 초기화, RDMS 비교 (0) | 2022.08.10 |
---|