기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
읽기 전용 복제본을 사용하여 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 Custom DB 인스턴스와 Amazon RDS 사용자 지정 읽기 전용 복제본을 보여줍니다. 읽기 전용 복제본은 Oracle Active Data Guard를 사용하여 다른 가용 영역으로 복제합니다. 또한 읽기 전용 복제본을 사용하여 기본 데이터베이스의 읽기 트래픽을 오프로드하고 보고 목적으로 사용할 수 있습니다.
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
에 대한 데이터베이스 사용자 암호를 검색합니다.
기타 도구
모범 사례
데이터 손실 제로(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 |
읽기 전용 복제본 인스턴스에서 다시 실행 적용을 활성화합니다. | 기본 또는 대기 노드의 DGMGR L을 사용하여 읽기 전용 복제본 인스턴스에서 다시 실행 적용을 활성화합니다. 비 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 요구 사항을 충족하지 못할 수 있습니다. 가용 영역을 사용할 수 없는 경우가 발생할 경우 기본 인스턴스와 읽기 전용 복제본 인스턴스가 모두 영향을 받기 때문입니다.