3.3. 원격 PostgreSQL 데이터베이스 준비

원격 데이터베이스 환경에서는 engine-setup 을 실행하기 전에 수동으로 Manager 데이터베이스를 생성해야 합니다.

참고

engine-setupengine-backup --mode=restore 명령은 시스템 로케일이 다른 경우에도 en_US.UTF8 로케일의 시스템 오류 메시지만 지원합니다.

postgresql.conf 파일의 로케일 설정을 en_US.UTF8 로 설정해야 합니다.

중요

데이터베이스 이름에는 숫자, 밑줄 및 소문자만 포함되어야 합니다.

Red Hat Virtualization Manager 리포지토리 활성화

Red Hat Subscription Manager에 데이터베이스 시스템에 로그인하여 등록하고, Red Hat Virtualization Manager 서브스크립션을 연결하며, Manager 리포지토리를 활성화해야 합니다.

절차

  1. 메시지가 표시되면 시스템을 Content Delivery Network에 등록하고 고객 포털 사용자 이름 및 암호를 입력합니다.

    # subscription-manager register
    참고

    IPv6 네트워크를 사용하는 경우 IPv6 전환 메커니즘을 사용하여 콘텐츠 전달 네트워크 및 서브스크립션 관리자에게 액세스합니다.

  2. Red Hat Virtualization Manager 서브스크립션 풀을 찾아 풀 ID를 기록합니다.

    # subscription-manager list --available
  3. 풀 ID를 사용하여 서브스크립션을 시스템에 연결합니다.

    # subscription-manager attach --pool=pool_id
    참고

    현재 첨부된 서브스크립션을 보려면 다음을 수행합니다.

    # subscription-manager list --consumed

    활성화된 리포지토리를 모두 나열하려면 다음을 수행합니다.

    # dnf repolist
  4. 리포지토리를 구성합니다.

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-8-for-x86_64-baseos-eus-rpms \
        --enable=rhel-8-for-x86_64-appstream-eus-rpms \
        --enable=rhv-4.4-manager-for-rhel-8-x86_64-rpms \
        --enable=fast-datapath-for-rhel-8-x86_64-rpms \
        --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms \
        --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \
        --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms \
        --enable=rhel-8-for-x86_64-appstream-tus-rpms \
        --enable=rhel-8-for-x86_64-baseos-tus-rpms
  5. RHEL 버전을 8.6으로 설정합니다.

    # subscription-manager release --set=8.6
  6. postgresql 모듈 버전 12를 활성화합니다.

    # dnf module -y enable postgresql:12
  7. nodejs 모듈의 버전 14를 활성화합니다.

    # dnf module -y enable nodejs:14
  8. 설치된 패키지를 동기화하여 사용 가능한 최신 버전으로 업데이트합니다.

    # dnf distro-sync --nobest

추가 리소스

모듈 및 모듈 스트림에 대한 자세한 내용은 사용자 공간 구성 요소 설치, 관리 및 제거의 다음 섹션을 참조하십시오.

PostgreSQL 데이터베이스 초기화

  1. PostgreSQL 서버 패키지를 설치합니다.

    # dnf install postgresql-server postgresql-contrib
  2. PostgreSQL 데이터베이스 인스턴스를 초기화합니다.

    # postgresql-setup --initdb
  3. postgresql 서비스를 활성화하고 시스템이 부팅될 때 시작되도록 구성합니다.

    # systemctl enable postgresql
    # systemctl start postgresql
  4. psql 명령줄 인터페이스에 postgres 사용자로 연결합니다.

    # su - postgres -c psql
  5. 기본 사용자를 생성합니다. Manager의 기본 사용자는 engine:

    postgres=# create role user_name with login encrypted password 'password';
  6. 데이터베이스를 만듭니다. Manager의 기본 데이터베이스 이름은 engine:

    postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
  7. 새 데이터베이스에 연결합니다.

    postgres=# \c database_name
  8. uuid-ossp 확장자를 추가합니다.

    database_name=# CREATE EXTENSION "uuid-ossp";
  9. 존재하지 않는 경우 plpgsql 언어를 추가합니다.

    database_name=# CREATE LANGUAGE plpgsql;
  10. psql 인터페이스를 종료합니다.

    database_name=# \q
  11. /var/lib/pgsql/data/pg_hba.conf 파일을 편집하여 md5 클라이언트 인증을 활성화하여 엔진이 원격으로 데이터베이스에 액세스할 수 있도록 합니다. 파일의 맨 아래에 local 로 시작하는 행 바로 아래에 다음 행을 추가합니다. X.X.X.X 를 Manager 또는 데이터 웨어하우스 시스템의 IP 주소로 바꾸고 0-32 또는 0 -128 을 CIDR 마스크 길이로 바꿉니다.

    host    database_name    user_name    X.X.X.X/0-32    md5
    host    database_name    user_name    X.X.X.X::/0-128   md5

    예를 들면 다음과 같습니다.

    # IPv4, 32-bit address:
    host    engine    engine    192.168.12.10/32    md5
    
    # IPv6, 128-bit address:
    host    engine    engine    fe80::7a31:c1ff:0000:0000/96   md5
  12. 데이터베이스에 대한 TCP/IP 연결을 허용합니다. /var/lib/pgsql/data/postgresql.conf 파일을 편집하고 다음 행을 추가합니다.

    listen_addresses='*'

    이 예제에서는 모든 인터페이스의 연결을 수신 대기하도록 postgresql 서비스를 구성합니다. IP 주소를 지정하여 인터페이스를 지정할 수 있습니다.

  13. PostgreSQL 서버의 구성을 업데이트합니다. /var/lib/pgsql/data/postgresql.conf 파일에서 파일의 맨 아래에 다음 행을 추가합니다.

    autovacuum_vacuum_scale_factor=0.01
    autovacuum_analyze_scale_factor=0.075
    autovacuum_max_workers=6
    maintenance_work_mem=65536
    max_connections=150
    work_mem=8192
  14. PostgreSQL 데이터베이스 연결에 사용되는 기본 포트를 열고 업데이트된 방화벽 규칙을 저장합니다.

    # firewall-cmd --zone=public --add-service=postgresql
    # firewall-cmd --permanent --zone=public --add-service=postgresql
  15. postgresql 서비스를 다시 시작합니다.

    # systemctl restart postgresql
  16. 선택적으로 데이터베이스 연결을 보호하도록 SSL 을 설정합니다.