PostgreSQL의 데이터베이스 클러스터

Bilal Shahid 2023년6월20일
  1. 데이터베이스 클러스터란?
  2. 데이터베이스 클러스터의 장점
  3. PostgreSQL에서 데이터베이스 클러스터가 작동하는 방식
  4. 결론
PostgreSQL의 데이터베이스 클러스터

이 문서에서는 데이터베이스 클러스터와 PostgreSQL에서 클러스터를 생성하는 방법에 대해 설명합니다. 종종 사람들은 이 용어를 혼동하고 그 개념을 이해하지 못합니다.

이 기사는 데이터베이스 클러스터의 개념을 확장하기 위해 작성되었습니다.

이 문서에는 데이터베이스 클러스터를 생성하고 설정하는 명령이 포함되어 있어 바로 시작할 수 있습니다. 기사에 언급된 명령을 정확히 따르십시오.

참고: 기사에 언급된 명령은 Ubuntu에서 테스트되었으며 다른 운영 체제에서는 제대로 작동하지 않을 수 있습니다.

데이터베이스 클러스터란?

간단한 용어로 “데이터베이스 클러스터"라는 용어를 이해해 보겠습니다. 단일 데이터베이스에 연결하는 여러 서버 또는 인스턴스를 데이터베이스 클러스터링이라고 합니다.

참고: 인스턴스는 데이터를 저장할 실제 파일을 포함하는 그룹입니다. 데이터베이스와 상호 작용하는 일련의 메모리 및 프로세스로 정의할 수 있습니다.

즉, 데이터베이스 클러스터는 실행 중인 데이터베이스 서버의 단일 인스턴스에서만 관리되는 여러 데이터베이스 그룹으로 정의할 수 있습니다.

각 데이터베이스 클러스터에는 별도의 구성이 있으며 다른 포트 번호에서 작동합니다. 예를 들어 PostgreSQL v9.4를 사용하고 3개의 연결된 데이터베이스가 있는 데이터베이스 클러스터가 있을 수 있습니다.

클러스터의 모든 데이터베이스는 연결 풀 크기, 버퍼 크기, 허용되는 연결 수 등과 같이 클러스터에서 제공하는 것과 동일한 구성을 사용합니다.

마찬가지로 수많은 다른 클러스터가 다른 PostgreSQL 버전으로 작동하고 구성이 다릅니다.

데이터베이스 클러스터의 장점

데이터베이스 클러스터링에는 몇 가지 장점이 있습니다. 주요 이점 중 일부는 다음과 같습니다.

  1. 부하 분산 또는 데이터베이스 확장성
  2. 데이터베이스 가용성 증가
  3. 데이터 백업이 가능한 데이터 중복성
  4. 데이터베이스 모니터링 및 자동화

PostgreSQL에서 데이터베이스 클러스터가 작동하는 방식

PostgreSQL에서 클러스터를 생성하는 프로세스를 시작하려면 디스크에서 데이터베이스의 스토리지 영역을 초기화해야 합니다.

초기화 후에 postgres라는 이름의 데이터베이스가 클러스터에 설정되며 이 데이터베이스는 타사 응용 프로그램, 사용자 및 유틸리티에서 사용하는 기본 데이터베이스 역할을 합니다.

기본 데이터베이스 외에도 template1이라는 이름으로 각 클러스터 내에 또 다른 데이터베이스가 생성됩니다. 이 데이터베이스는 실제 작업에 사용되지 않습니다. 대신 클러스터에서 나중에 생성되는 데이터베이스의 템플릿으로 사용됩니다.

데이터베이스 클러스터는 데이터 디렉토리 또는 데이터 영역으로 알려진 모든 데이터를 저장하는 단일 디렉토리 역할을 합니다.

데이터베이스 클러스터 생성 또는 초기화

다음 명령을 사용하여 원하는 위치에서 데이터베이스 클러스터를 초기화할 수 있습니다.

$	initdb -D /usr/local/pgsql/data

참고: PostgreSQL 사용자 계정에 로그인한 후 명령을 실행해야 합니다.

두 번째 명령은 데이터베이스 클러스터 생성(초기화)에도 도움이 됩니다.

$	pg_ctl -D /usr/local/pgsql/data initdb

이 두 명령 모두 원하는 위치에 디렉토리를 만듭니다.

활성 데이터베이스 클러스터 수

클러스터를 생성한 후 OS에서 활성 클러스터 수를 계산할 수 있습니다. 이를 위해 다음 명령을 사용할 수 있습니다.

$ pg_lsclusters

이 명령은 활성 클러스터 목록, 해당 상태, 포트 번호, 이름, 디렉토리 위치 등을 반환합니다. 이 명령은 또한 각 클러스터가 활성인지 오프라인인지 알려줍니다.

이것은 클러스터에 연결할 때 필요한 필수 정보입니다. 오프라인 클러스터 대신 활성 클러스터에만 연결할 수 있습니다.

다른 데이터베이스 클러스터에 연결

한 데이터베이스 서버의 로드 균형을 조정하거나 기존 데이터베이스 서버의 성능을 향상시키기 위해 다른 데이터베이스 클러스터에 연결해야 할 필요성을 느낄 수 있습니다.

클러스터를 연결하는 이유가 무엇이든 다음 명령을 사용할 수 있습니다.

$ psql -U postgres -p 5436-h localhost

클러스터마다 사용할 수 있는 포트 번호가 다르기 때문에 연결하려는 클러스터에 올바른 포트 번호를 사용하는 것이 중요합니다.

참고: 해당 정보와 함께 활성 클러스터 목록을 반환하는 pg_lsclusters 명령을 사용하여 각 클러스터의 포트 번호를 확인할 수 있습니다.

데이터베이스 클러스터의 상태 편집

데이터베이스 클러스터의 상태를 시작에서 중지까지 또는 그 반대로 편집하려면 다음 명령을 실행할 수 있습니다.

$  pg_ctlcluster 12 main stop

이 명령을 사용하면 데이터베이스 클러스터를 시작하거나 중지할 수 있습니다. 명령에서 12는 PostgreSQL 소프트웨어의 버전 번호이고 main은 편집하는 클러스터의 이름입니다.

클러스터에서 데이터베이스 생성

하나의 명령만으로 기존 클러스터에 새 데이터베이스를 생성할 수 있습니다. 그러나 클러스터 내에 새 데이터베이스를 생성하기 전에 클러스터에 연결해야 하므로 클러스터가 활성 상태인지 확인하는 것이 중요합니다.

참고: 위에서 언급한 pg_lsclusters 명령을 사용하여 데이터베이스를 생성하려는 클러스터가 활성 상태인지 확인하십시오.

클러스터가 활성화되었다고 확신하면 다음 명령을 사용하십시오.

$ CREATE DATABASE mynewdb

이 명령은 연결하는 클러스터 내에 새 데이터베이스를 생성합니다.

결론

PostgreSQL에서 데이터베이스 클러스터를 생성하고 실행하는 데 필요한 모든 명령은 자세한 설명과 함께 기사에 언급되어 있습니다. 문서의 논의를 따르면 프로세스를 더 빨리 실행하는 데 도움이 됩니다.

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub