참고:

OCI 콘솔을 사용하여 PostgreSQL 기본 및 두 개의 대기 데이터베이스를 설정하고 데이터 복제를 검증합니다.

소개

PostgreSQL는 오픈 소스 객체 관계형 데이터베이스 관리 시스템입니다. 확장성이 높고 확장성이 뛰어나며 많은 기능이 있습니다. PostgreSQL는 여러 데이터 센터 간에 데이터 복제를 지원합니다.

데이터를 수정할 수 있는 서버를 마스터 또는 기본 서버라고 합니다. Primary에서 변경 사항을 추적하는 서버를 Standby Server라고 합니다. 기본 서버로 승격될 때까지 연결할 수 없는 대기 서버를 웜 대기 서버라고 하며, 연결을 허용하고 읽기 전용 질의를 제공하는 대기 서버를 핫 대기 서버라고 합니다.

리소스 관리자는 OCI 리소스 프로비저닝 프로세스를 자동화할 수 있는 OCI(Oracle Cloud Infrastructure) 서비스입니다. 리소스 관리자는 Terraform을 사용하여 "infrastructure-as-a-code" 모델을 통해 리소스를 설치, 구성 및 관리할 수 있습니다.

Oracle Cloud Infrastructure는 데이터베이스에 대한 상태기반 연결, CPU 또는 GPU를 통한 원시 처리, 수백만 개의 스토리지 IOPS 및 GB/s의 처리량을 포함하여 일관된 고성능이 필요한 워크로드를 위해 설계되었습니다. 제로 트러스트 아키텍처로 시작합니다. Oracle Cloud를 디자인하면서 모든 애플리케이션에 대해 더 뛰어난 성능을 제공하는 클라우드를 원했습니다.

목표

OCI Resource Manager에서 Terraform Code를 사용하여 기본 서버 1개와 핫 대기 서버 2개를 구성합니다. 서로 다른 3개의 가용성 도메인에 있는 3개의 컴퓨트 인스턴스에 배포됩니다.

배치 후 기본 서버에서 대기 서버로 테이블 복제를 확인하고 핫 대기 데이터베이스에 접속하여 데이터를 질의합니다.

  1. terraform 스택을 사용하여, 네트워크, PostgreSQL 기본 및 2개의 대기 서버를 배치하게 됩니다.

  2. Primary에 샘플 테이블을 생성하고 테이블에 몇 개의 레코드를 삽입합니다.

  3. 그런 다음 이러한 샘플 테이블과 행이 두 대기 서버에 모두 복제되었는지 확인합니다.

작업 1: 스택 생성

  1. 브라우저에서 Oracle Cloud에 배치 링크를 엽니다.

  2. 아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

  3. 스택을 배치할 영역을 선택합니다.

  4. Stack 정보 페이지에서 I have review and accept the Oracle Terms of Use 확인란을 선택합니다. Stack Information 섹션에는 세부 정보가 표시됩니다.

  5. 다음을 누릅니다.

  6. 변수 구성 페이지에서 다음 설정을 구성합니다.

    참고: 이 자습서에서는 공용 서브넷에 PostgreSQL 버전 12를 배포합니다.

    변수:

    1. 필요한 가용성 도메인 및 PostgreSQL 버전을 선택합니다.

    2. Create in Private Subnet 확인란의 선택을 취소합니다.

    3. Show advanced options 확인란을 선택하고 네트워크, 컴퓨트, 스토리지, 대기 및 기타 설정에 대한 세부정보를 지정합니다.

      변수:

      Variables3:

    4. 필요한 OS, 백업 정책 및 기타 세부정보를 지정합니다.

      변수:

    5. OCPU 및 메모리에 필요한 값을 지정합니다.

      1. 기본 노드 구성을 선택하고 사용자를 복제합니다.

        변수:

      2. Hotstandby1에 대한 세부 정보를 제공합니다(AD-2 선택).

        변수:

      3. Hotstandby2에 대한 세부정보를 제공합니다(AD-3 선택).

        변수:

    6. 다음을 누릅니다.

  7. Review 페이지에서 세부 정보를 확인하고 리소스를 즉시 프로비전하도록 Run apply 확인란이 선택되었는지 확인합니다.

    스택 검토

  8. 생성을 누릅니다.

    작업 로그

  9. 다음 스크린샷에 표시된 대로 스택 작업의 로그를 모니터합니다(Developer Services, Resource Manager, Stacks로 이동).

    스택 탐색

    스택 페이지

    스택 작업 상태

    스택 작업 로그

참고: 이 자습서에 사용된 테스트 설정의 경우 스택이 적용되고 선택된 구성에 대해 11분 이내에 리소스를 성공적으로 구성했습니다. 이는 선택한 구성 설정에 따라 다를 수 있습니다.

스택 작업 성공

다음 스크린샷은 완료된 Primary 및 Standby Server 구성을 표시합니다.

PG 컴퓨트 실행 중

작업 2: 연결 및 복제 확인

  1. ssh를 사용하여 primary 노드에 opc 유저로 연결하고 다음 명령을 실행합니다.

    sudo su - postgres

    pgprimary 로그인

  2. Primary 노드에 order_details 테이블을 생성합니다.

    CREATE TABLE order_details (order_detail_id integer CONSTRAINT order_details_pk PRIMARY KEY, order_id integer NOT NULL, order_date date, qty integer, ACCEPTED_QUANTITY integer);

  3. 생성된 테이블을 기술합니다.

    \dt order_details

  4. 데이터를 query하고 0개의 행을 반환해야 합니다.

    select * from order_details;

    pgprimary 테이블

  5. standby1 서버에 로그인하고 order_details 테이블이 복제되었는지 확인합니다.

    pgstandby 테이블

  6. standby2 서버에 로그인하고 order_details 테이블이 복제되었는지 확인합니다.

    pgstandby2 테이블

  7. Primary Database 테이블 order_details에 두 개의 행을 삽입합니다.

    BEGIN; INSERT INTO order_details (order_detail_id,order_id,order_date,qty,ACCEPTED_QUANTITY) values (101,1,'2022-07-14',10,5); INSERT INTO order_details (order_detail_id,order_id,order_date,qty,ACCEPTED_QUANTITY) values (102,2,'2022-07-14',100,100); COMMIT;

    pgprimary 삽입

  8. standby1 서버의 행이 복제되었는지 확인합니다.

    pgstandy1 확인

  9. standby2 서버의 행도 복제되었는지 확인하십시오.

    pgstandy2 확인:

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.