수색…


PostgreSQL의 복제

  • 기본 서버 구성

    • 요구 사항 :

      • 복제 작업을위한 복제 사용자
      • WAL 아카이브를 저장할 디렉토리
    • 복제 사용자 만들기

      createuser -U postgres replication -P -c 5 --replication

        + option -P will prompt you for new password
        + option -c is for maximum connections. 5 connections are enough for replication
        + -replication will grant replication privileges to the user
      
    • 데이터 디렉토리에 아카이브 디렉토리 만들기

      mkdir $PGDATA/archive

    • pg_hba.conf 파일 편집

      이것은 호스트 기본 인증 파일이며 클라이언트 autherntication에 대한 설정을 포함합니다. 아래 항목 추가 :

            #hosttype    database_name     user_name       hostname/IP      method
             host        replication       replication     <slave-IP>/32    md5
      
    • postgresql.conf 파일 편집

      이것은 PostgreSQL의 설정 파일입니다.

      wal_level = hot_standby

      이 매개 변수는 종속 서버의 동작을 결정합니다.

         `hot_standby` logs what is required to accept read only queries on slave server.
      
         `streaming` logs what is required to just apply the WAL's on slave.
      
         `archive` which logs what is required for archiving.
      

      archive_mode=on

      이 매개 변수는 archive_command 매개 변수를 사용하여 WAL 세그먼트를 아카이브 위치로 보냅니다.

      archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'

      기본적으로 archive_command 가 수행하는 작업은 WAL 세그먼트를 아카이브 디렉토리에 복사하는 것입니다.

      wal_senders = 5 이것은 최대 WAL 발신자 프로세스 수입니다.

      이제 주 서버를 다시 시작하십시오.

  • 프라이 머리 서버를 슬레이브 서버에 백업

    서버를 변경하기 전에 주 서버를 중지하십시오.

중요 : 모든 구성 및 백업 단계가 완료 될 때까지 서비스를 다시 시작하지 마십시오. 대기 서버를 백업 서버로 사용할 준비가 된 상태로 대기 서버를 가져와야합니다. 즉, 모든 구성 설정이 있어야하며 데이터베이스가 이미 동기화되어 있어야합니다. 그렇지 않으면 스트리밍 복제가 시작되지 않습니다 .`

  • 이제 pg_basebackup 유틸리티를 실행하십시오.

    pg_basebackup 유틸리티는 주 서버 데이터 디렉토리에서 슬레이브 데이터 디렉토리로 데이터를 복사합니다.

    $ pg_basebackup -h <primary IP> -D /var/lib/postgresql/<version>/main -U replication -v -P --xlog-method=stream

    -D: This is tells pg_basebackup where to the initial backup

    -h: Specifies the system where to look for the primary server

    -xlog-method=stream: This will force the pg_basebackup to open another connection and stream enough xlog while backup is running.
                         It also ensures that fresh backup can be started without failing back to using an archive.
  • 대기 서버 구성

    대기 서버를 구성하려면 postgresql.conf를 편집하고 recovery.conf라는 새 구성 파일을 만듭니다.

    hot_standby = on

    이 값은 복구 중에 쿼리를 실행할 수 있는지 여부를 지정합니다.

    • recovery.conf 파일 만들기

      standby_mode = on

      연결 문자열을 주 서버로 설정하십시오. 주 서버의 외부 IP 주소로 바꿉니다. 복제 사용자 이름의 암호로 바꾸기

      `primary_conninfo = '호스트 = 포트 = 5432 사용자 = 복제 암호 ='

      (선택 사항) 트리거 파일 위치를 설정합니다.

      trigger_file = '/tmp/postgresql.trigger.5432'

      지정한 trigger_file 경로는 시스템을 대기 서버로 장애 조치 할 때 파일을 추가 할 수있는 위치입니다. 파일이 있으면 장애 조치가 "트리거됩니다". 또는 pg_ctl promote 명령을 사용하여 장애 조치를 트리거 할 수 있습니다.

  • 대기 서버 시작

    이제 모든 것을 갖추었고 대기 서버를 준비 할 준비가되었습니다.

속성

이 기사는 형식 및 예제와 약간의 텍스트가 약간 삭제 된 상태에서 고 가용성 및 고 가용성 복제를위한 PostgreSQL 설정 방법에 기인합니다. 출처는 크리에이티브 커먼즈 공개 라이센스 3.0 (Creative Commons Public License 3.0)에 따라 출판되었으며 여기에서 관리됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow