읽기 전용 복제본을 사용하여 Amazon RDS 커스텀 기반 PeopleSoft 오라클에 HA를 추가합니다. - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

읽기 전용 복제본을 사용하여 Amazon RDS 커스텀 기반 PeopleSoft 오라클에 HA를 추가합니다.

작성자: sampath kathirvel(AWS)

환경: 프로덕션

기술: 데이터베이스, 인프라

워크로드: Oracle

AWS 서비스: Amazon RDS

요약

Amazon Web Services (AWS) 에서 Oracle PeopleSoft 엔터프라이즈 리소스 계획 (ERP) 솔루션을 실행하려면 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 기존, 사용자 지정 및 패키지 애플리케이션을 지원하는 Amazon RDS (Amazon RDS) 또는 Amazon RDS Custom을 사용할 수 있습니다. 마이그레이션을 계획할 때 고려해야 할 주요 요소는 AWS 권장 가이드의 Oracle 데이터베이스 마이그레이션 전략을 참조하세요.

이 글을 쓰는 시점에서Amazon RDS for Oracle은 다중 AZ 옵션을 지원하지 않습니다. 이 옵션은 Amazon RDS for Oracle에서 스토리지 복제를 사용하는 HA 솔루션으로 사용할 수 있습니다. 대신 이 패턴은 기본 데이터베이스의 물리적 사본을 생성하고 유지 관리하는 대기 데이터베이스를 사용하여 HA를 달성합니다. 이 패턴은 Oracle Data Guard를 사용하여 읽기 전용 복제본을 설정하여 Amazon RDS Custom에서 HA를 사용하는 PeopleSoft 애플리케이션 데이터베이스를 실행하는 단계를 중점적으로 다룹니다.

또한 이 패턴은 읽기 전용 복제본을 읽기 전용 모드로 변경합니다. 읽기 전용 복제본을 읽기 전용 모드로 설정하면 다음과 같은 추가 이점이 있습니다.

  • 기본 데이터베이스에서 읽기 전용 워크로드를 오프로드합니다.

  • Oracle Active Data Guard 기능을 사용하여 대기 데이터베이스에서 정상 블록을 검색하여 손상된 블록을 자동으로 복구할 수 있도록 합니다.

  • 원거리 동기화 기능을 사용하면 장거리 다시 실행 로그 전송과 관련된 성능 오버헤드 없이 원격 대기 데이터베이스를 동기화된 상태로 유지할 수 있습니다.

읽기 전용 모드에서 복제본을 사용하려면 Oracle Active Data Guard 옵션이 필요합니다. Oracle Active Data Guard 옵션은 Oracle Database Enterprise Edition의 별도 라이선스 기능이므로 추가 비용이 듭니다.

사전 조건 및 제한 사항

사전 조건

  • Amazon RDS 커스텀의 기존 PeopleSoft 애플리케이션. 애플리케이션이 없는 경우 Oracle을 Amazon RDS 커스텀으로 PeopleSoft 마이그레이션하는 패턴을 참조하십시오.

  • 단일 PeopleSoft 애플리케이션 티어. 그러나 이 패턴을 여러 애플리케이션 계층에서 작동하도록 조정할 수 있습니다.

  • Amazon RDS Custom은 최소 8GB의 스왑 공간으로 구성되었습니다.

  • 읽기 전용 모드로 전환하고 보고 작업을 예비 복제본으로 오프로드하는 데 사용하기 위한 Oracle Active Data Guard 데이터베이스 라이선스입니다. 자세한 내용은 Oracle Technology 상용 가격 목록을 참조하세요.

제한 사항

제품 버전

아키텍처

대상 기술 스택

  • Amazon RDS Custom for Oracle

  • AWS Secrets Manager

  • Oracle Active Data Guard

  • 오라클 PeopleSoft 애플리케이션

대상 아키텍처 

다음 다이어그램에서는 Amazon RDS Custom DB 인스턴스와 Amazon RDS 사용자 지정 읽기 전용 복제본을 보여줍니다. 읽기 전용 복제본은 Oracle Active Data Guard를 사용하여 다른 가용 영역으로 복제합니다. 또한 읽기 전용 복제본을 사용하여 기본 데이터베이스의 읽기 트래픽을 오프로드하고 보고 목적으로 사용할 수 있습니다.

VPC에는 AWS Secrets Manager, Amazon EFS, 애플리케이션 티어, 데이터베이스 티어가 포함됩니다.

PeopleSoft AWS에서 Oracle을 사용하는 대표적인 아키텍처는 AWS에서 고가용성 PeopleSoft 아키텍처 설정을 참조하십시오.

도구

서비스

  • Amazon RDS Custom for Oracle은 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 레거시, 커스텀 및 패키지 애플리케이션을 위한 관리형 데이터베이스 서비스입니다.

  • AWS Secrets Manager를 사용하면 코드에 하드코딩된 보안 인증 정보(암호 등)를 Secrets Manager에 대한 API 직접 호출을 통해 바꿔서 프로그래밍 방식으로 보안 암호를 검색할 수 있습니다. 이 패턴에서는 Secrets Manager에서 암호 이름 do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg를 사용하여 RDS_DATAGUARD에 대한 데이터베이스 사용자 암호를 검색합니다.

기타 도구

  • Oracle Data Guard를 사용하면 대기 데이터베이스를 생성, 유지, 관리 및 모니터링할 수 있습니다.

모범 사례

데이터 손실 제로(RPO=0) 목표를 달성하려면 성능 향상을 위한 다시 실행 전송 SYNC+NOAFFIRM 설정과 함께 MaxAvailability Data Guard 보호 모드를 사용하세요. 데이터베이스 보호 모드 선택에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.

에픽

작업설명필요한 기술

읽기 전용 복제본을 생성합니다.

Amazon RDS 사용자 지정 DB 인스턴스의 읽기 전용 복제본을 생성하려면 Amazon RDS 설명서의 지침에 따라 생성한 Amazon RDS Custom DB 인스턴 (사전 조건 섹션 참조)를 소스 데이터베이스로 사용합니다.

기본적으로 Amazon RDS Custom 읽기 전용 복제본은 물리적 예비 복제본으로 생성되며 마운트된 상태입니다. 이는 Oracle Active Data Guard 라이선스 규정 준수를 보장하기 위한 것입니다.

이 패턴에는 멀티테넌트 컨테이너 데이터베이스(CDB) 또는 비 CDB 인스턴스를 설정하기 위한 코드가 포함됩니다.

DBA
작업설명필요한 기술

기본 데이터베이스의 Data Guard 브로커 구성에 액세스합니다.

이 예제에서 Amazon RDS Custom 읽기 전용 복제본은 비 CDB 인스턴스용 RDS_CUSTOM_ORCL_D 및 CDB 인스턴스용 RDS_CUSTOM_RDSCDB_B입니다. 비 CDB용 데이터베이스는 orcl_a(기본) 및 orcl_d(대기)입니다. CDB의 데이터베이스 이름은 rdscdb_a 기본) 및 rdscdb_b(대기)입니다.

RDS 사용자 지정 읽기 전용 복제본에 직접 또는 기본 데이터베이스를 통해 연결할 수 있습니다. $ORACLE_HOME/network/admin 디렉터리에 있는 tnsnames.ora 파일에서 데이터베이스의 넷 서비스 이름을 찾을 수 있습니다. RDS Custom for Oracle은 기본 데이터베이스 및 읽기 전용 복제본에 대해 이러한 항목을 자동으로 채웁니다.

RDS_DATAGUARD 사용자의 암호는 보안 암호 이름인 do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg와 함께 AWS Secrets Manager에 저장됩니다. Secrets Manager에서 검색한 SSH(보안 쉘) 키를 사용하여 RDS 사용자 지정 인스턴스에 연결하는 방법에 대한 자세한 내용은 SSH를 사용하여 RDS 사용자 지정 DB 인스턴스에 연결을 참조하세요.

Data Guard 명령줄(dgmgrl)을 통해 Oracle Data Guard 브로커 구성에 액세스하려면 다음 코드를 사용하세요.

비 CDB

$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_D DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 30 22:44:49 2022 Version 19.10.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Password: Connected to "ORCL_D" Connected as SYSDG. DGMGRL> DGMGRL> show database orcl_d Database - orcl_d Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 0 seconds ago) Apply Lag: 0 seconds (computed 0 seconds ago) Average Apply Rate: 11.00 KByte/s Instance(s): ORCL SUCCESS DGMGRL>

CDB

-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 11 20:24:11 2023 Version 19.16.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Password: Connected to "RDSCDB_B" Connected as SYSDG. DGMGRL> DGMGRL> show database rdscdb_b Database - rdscdb_b Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 2.00 KByte/s Real Time Query: OFF Instance(s): RDSCDB Database Status: SUCCESS DGMGRL>
DBA

프라이머리 노드에서 DGMGRL에 연결하여 로그 전송 설정을 변경합니다.

다시 실행 전송 설정 SYNC+NOAFFIRM에 해당하는 로그 전송 모드를 FastSync로 변경합니다. 역할 전환 후 설정이 유효한지 확인하려면 기본 데이터베이스와 대기 데이터베이스 모두에 대해 설정을 변경하세요.

비 CDB

DGMGRL> DGMGRL> edit database orcl_d set property logxptmode=fastsync; Property "logxptmode" updated DGMGRL> show database orcl_d LogXptMode; LogXptMode = 'fastsync' DGMGRL> edit database orcl_a set property logxptmode=fastsync; Property "logxptmode" updated DGMGRL> show database orcl_a logxptmode; LogXptMode = 'fastsync' DGMGRL>

CDB

DGMGRL> edit database rdscdb_b set property logxptmode=fastsync;DGMGRL> edit database rdscdb_b set property logxptmode=fastsync; Property "logxptmode" updated DGMGRL> show database rdscdb_b LogXptMode; LogXptMode = 'fastsync' DGMGRL> edit database rdscdb_a set property logxptmode=fastsync; Property "logxptmode" updated DGMGRL> show database rdscdb_a logxptmode; LogXptMode = 'fastsync' DGMGRL>
DBA

보호 모드를 로 변경합니다 MaxAvailability.

프라이머리 노드에서 DGMGRL로 연결하여 MaxAvailability에 대한 보호 모드를 변경합니다.

비 CDB

DGMGRL> edit configuration set protection mode as maxavailability; Succeeded. DGMGRL> show configuration; Configuration - rds_dg Protection Mode: MaxAvailability Members: orcl_a - Primary database orcl_d - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 38 seconds ago) DGMGRL>

CDB

DGMGRL> show configuration Configuration - rds_dg Protection Mode: MaxAvailability Members: rdscdb_a - Primary database rdscdb_b - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 57 seconds ago) DGMGRL>
DBA
작업설명필요한 기술

대기 데이터베이스에 대한 재실행 중지를 적용합니다.

읽기 전용 복제본은 기본적으로 MOUNT 모드에서 생성됩니다. 읽기 전용 모드로 열려면 먼저 기본 또는 대기 노드에서 DGMGRL에 연결하여 재실행 적용을 해제해야 합니다.

비 CDB

DGMGRL> show database orcl_dDGMGRL> show database orcl_d Database - orcl_d Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 11.00 KByte/s Real Time Query: OFF Instance(s): ORCL Database Status: SUCCESS DGMGRL> edit database orcl_d set state=apply-off; Succeeded. DGMGRL> show database orcl_d Database - orcl_d Role: PHYSICAL STANDBY Intended State: APPLY-OFF Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 42 seconds (computed 1 second ago) Average Apply Rate: (unknown) Real Time Query: OFF Instance(s): ORCL Database Status: SUCCESS DGMGRL>

CDB

DGMGRL> show configurationDGMGRL> show configuration Configuration - rds_dg Protection Mode: MaxAvailability Members: rdscdb_a - Primary database rdscdb_b - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 57 seconds ago) DGMGRL> show database rdscdb_b; Database - rdscdb_b Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 2.00 KByte/s Real Time Query: OFF Instance(s): RDSCDB Database Status: SUCCESS DGMGRL> edit database rdscdb_b set state=apply-off; Succeeded. DGMGRL> show database rdscdb_b; Database - rdscdb_b Role: PHYSICAL STANDBY Intended State: APPLY-OFF Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: (unknown) Real Time Query: OFF Instance(s): RDSCDB Database Status: SUCCESS
DBA

읽기 전용 복제본 인스턴스를 읽기 전용 모드로 엽니다.

TNS 항목을 사용하여 대기 데이터베이스에 접속하고 기본 또는 대기 노드에서 접속하여 대기 데이터베이스를 읽기 전용 모드로 엽니다.

비 CDB

$ sqlplus RDS_DATAGUARD@RDS_CUSTOM_ORCL_D as sysdg -bash-4.2$ sqlplus RDS_DATAGUARD@RDS_CUSTOM_ORCL_D as sysdg SQL*Plus: Release 19.0.0.0.0 - Production on Fri Sep 30 23:00:14 2022 Version 19.10.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Enter password: Last Successful login time: Fri Sep 30 2022 22:48:27 +00:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.10.0.0.0 SQL> select open_mode from v$database; OPEN_MODE -------------------- MOUNTED SQL> alter database open read only; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ ONLY SQL>

CDB

-bash-4.2$ sqlplus C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B as sysdg SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 11 21:14:07 2023 Version 19.16.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Enter password: Last Successful login time: Wed Jan 11 2023 21:12:05 +00:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.16.0.0.0 SQL> select name,open_mode from v$database; NAME OPEN_MODE --------- -------------------- RDSCDB MOUNTED SQL> alter database open read only; Database altered. SQL> select name,open_mode from v$database; NAME OPEN_MODE --------- -------------------- RDSCDB READ ONLY SQL>
DBA

읽기 전용 복제본 인스턴스에서 다시 실행 적용을 활성화합니다.

기본 또는 대기 노드의 DGMGRL을 사용하여 읽기 전용 복제본 인스턴스에서 다시 실행 적용을 활성화합니다.

비 CDB

$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_D DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Sep 30 23:02:16 2022 Version 19.10.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Password: Connected to "ORCL_D" Connected as SYSDG. DGMGRL> edit database orcl_d set state=apply-on; DGMGRL> edit database orcl_d set state=apply-on; Succeeded. DGMGRL> show database orcl_d Database - orcl_d Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 0 seconds ago) Apply Lag: 0 seconds (computed 0 seconds ago) Average Apply Rate: 496.00 KByte/s Real Time Query: ON Instance(s): ORCL Database Status: SUCCESS DGMGRL>

CDB

-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_B DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 11 21:21:11 2023 Version 19.16.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Password: Connected to "RDSCDB_B" Connected as SYSDG. DGMGRL> edit database rdscdb_b set state=apply-on; Succeeded. DGMGRL> show database rdscdb_b Database - rdscdb_b Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 0 seconds ago) Apply Lag: 0 seconds (computed 0 seconds ago) Average Apply Rate: 35.00 KByte/s Real Time Query: ON Instance(s): RDSCDB Database Status: SUCCESS DGMGRL> show database rdscdb_b Database - rdscdb_b Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 16.00 KByte/s Real Time Query: ON Instance(s): RDSCDB Database Status: SUCCESS DGMGRL>
DBA

관련 리소스

추가 정보

데이터베이스 보호 모드 선택

Oracle Data Guard는 가용성, 보호 및 성능 요구 사항에 따라 Data Guard 환경을 구성할 수 있는 세 가지 보호 모드를 제공합니다. 다음 표에는 이러한 세 가지 모드가 요약되어 있습니다.

보호 모드

전송 설정 다시 실행

설명

최대 성능

ASYNC

기본 데이터베이스에서 발생하는 트랜잭션의 경우 다시 실행 데이터가 비동기적으로 전송되어 대기 데이터베이스 다시 실행 로그에 기록됩니다. 따라서 성능에 미치는 영향은 최소화됩니다.

MaxPerformance은 비동기 로그 전달로 인해 RPO=0을 제공할 수 없습니다.

최대한의 보호

SYNC+AFFIRM

기본 데이터베이스의 트랜잭션의 경우 트랜잭션이 승인되기 전에 다시 실행 데이터가 디스크의 대기 데이터베이스 다시 실행 로그에 동기적으로 전송되고 기록됩니다. 대기 데이터베이스를 사용할 수 없게 되면 기본 데이터베이스가 스스로 종료되어 트랜잭션이 보호됩니다.

최대 가용성

SYNC+AFFIRM

대기 데이터베이스로부터 승인을 받지 못하는 경우를 제외하면 이 모드는 MaxProtection모드와 비슷합니다. 이 경우 다시 실행 스트림을 동기화된 대기 데이터베이스에 다시 쓸 수 있을 때까지 기본 데이터베이스 가용성을 보존하기 위해 MaxPerformance 모드에 있는 것처럼 작동합니다.

SYNC+NOAFFIRM

기본 데이터베이스의 트랜잭션의 경우 다시 실행이 대기 데이터베이스에 동기적으로 전송되고 기본 데이터베이스는 다시 실행이 대기 디스크에 기록된 것이 아니라 대기 데이터베이스에서 다시 실행이 수신되었다는 확인만 기다립니다. FastSync이라고도 하는 이 모드는 여러 개의 동시 오류가 발생하는 특수한 경우 데이터 손실에 노출될 수 있는 위험을 감수하면서 성능상의 이점을 제공할 수 있습니다.

RDS Custom for Oracle의 읽기 전용 복제본은 Oracle Data Guard의 기본 보호 모드이기도 한 최대 성능 보호 모드를 사용하여 생성됩니다. 최대 성능 모드는 기본 데이터베이스의 성능 영향을 최소화하므로 초 단위로 측정되는 Recovery Point Objective(RPO) 요구 사항을 충족할 수 있습니다.

데이터 손실 제로(RPO=0) 목표를 달성하기 위해 Oracle Data Guard 보호 모드를 MaxAvailability로 사용자 지정하고 다시 실행 전송을 SYNC+NOAFFIRM으로 설정하여 더 나은 성능을 얻을 수 있습니다. 기본 데이터베이스의 커밋은 해당 다시 실행 벡터가 대기 데이터베이스로 성공적으로 전송된 후에만 확인되므로 커밋에 민감한 워크로드의 경우 기본 인스턴스와 복제본 간의 네트워크 지연 시간이 매우 중요할 수 있습니다. 읽기 전용 복제본을 MaxAvailability 모드에서 실행하도록 사용자 지정했을 때 성능에 미치는 영향을 평가하려면 워크로드에 대한 부하 테스트를 수행하는 것이 좋습니다.

기본 데이터베이스와 동일한 가용 영역에 읽기 전용 복제본을 배포하면 다른 가용 영역에 읽기 전용 복제본을 배포하는 것보다 네트워크 지연 시간이 줄어듭니다. 그러나 동일한 가용 영역에 기본 복제본과 읽기 전용 복제본을 배포하는 것은 HA 요구 사항을 충족하지 못할 수 있습니다. 가용 영역을 사용할 수 없는 경우가 발생할 경우 기본 인스턴스와 읽기 전용 복제본 인스턴스가 모두 영향을 받기 때문입니다.