이 문서는 지원되지 않는 토토 커뮤니티 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

제7장. 아키텍처

7.1. 포스트그레SQL건축 개념

시작하기 전에 기본 사항을 이해해야 합니다.토토 커뮤니티시스템 건축. 의 부분이 어떻게 구성되어 있는지 이해하기포스트그레SQL상호작용이 다음을 만들 것입니다 챕터가 좀 더 명확해졌습니다. 데이터베이스 전문 용어로,포스트그레SQL간단한 "프로세스를 사용합니다. 사용자별" 클라이언트/서버 모델. 갑포스트그레SQL세션은 다음으로 구성됩니다. 다음 협력 Unix 프로세스(프로그램):

  • 감독 데몬 프로세스(우체국장),

  • 사용자의 프런트엔드 애플리케이션(예:psql프로그램) 및

  • 하나 이상의 백엔드 데이터베이스 서버(포스트그레스프로세스 자체).

싱글우체국장관리하다 단일 호스트에 있는 특정 데이터베이스 모음. 그러한 데이터베이스 모음을 클러스터(데이터베이스)라고 합니다. 에이 특정 데이터베이스에 액세스하려는 프런트엔드 애플리케이션 클러스터 내에서 인터페이스 라이브러리를 호출합니다(예:libpq)에 연결되어 있습니다. 신청. 라이브러리는 네트워크를 통해 사용자 요청을 보냅니다. 에우체국장 (그림 7-1(a)), 이는 차례는 새로운 백엔드 서버 프로세스를 시작합니다(그림 7-1(b))

그림 7-1. 연결이 설정되는 방법

토토 커뮤니티

프론트엔드 프로세스를 새 서버에 연결합니다. (그림 7-1(c)). 그 시점부터 프론트엔드 프로세스와 백엔드 서버는 의 개입 없이 통신합니다.우체국장. 따라서,우체국장항상 실행 중이며 대기 중입니다. 연결 요청, 프런트엔드 및 백엔드 프로세스 왔다가 가세요.libpq라이브러리가 허용합니다 백엔드에 여러 연결을 만드는 단일 프런트엔드 프로세스. 그러나 각 백엔드 프로세스는 단일 스레드입니다. 한 번에 하나의 쿼리만 실행할 수 있는 프로세스입니다. 그래서 하나의 프런트엔드-백엔드 연결을 통한 통신은 단일 스레드.

이 아키텍처의 한 가지 의미는 다음과 같습니다.우체국장및 백엔드 항상 동일한 머신(데이터베이스 서버)에서 실행되지만 프론트엔드 애플리케이션은 어디에서나 실행될 수 있습니다. 이것을 보관해야합니다 클라이언트에서 액세스할 수 있는 파일이 컴퓨터에 접근할 수 없습니다(또는 다음을 통해서만 접근할 수 있습니다). 다른 경로 이름) 데이터베이스 서버 시스템에 있습니다.

또한 다음 사항에 유의해야 합니다.우체국장그리고포스트그레서버는 다음 사용자 ID로 실행됩니다.포스트그레SQL "수퍼유저". 참고하세요포스트그레SQL슈퍼유저는 반드시 그럴 필요는 없습니다. 특정 사용자(예: 이름이 지정된 사용자)포스트그레), 많은 시스템이 설치되어 있지만 그런 식으로. 게다가,포스트그레SQL슈퍼유저는 절대로 해서는 안 됩니다. Unix 수퍼유저가 되십시오.루트! 그것은 다음과 같은 경우 가장 안전합니다.포스트그레SQL수퍼유저는 현재까지는 권한이 없는 일반 사용자입니다. 주변 Unix 시스템이 우려됩니다. 어쨌든 모든 파일은 데이터베이스와 관련된 것은 이것에 속해야 합니다.포스트그레스수퍼유저.