

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

# Oracle용 Amazon RDS Custom의 Oracle PeopleSoft 애플리케이션에 대한 전환 역할
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle"></a>

*sampath kathirvel, Amazon Web Services*

## 요약
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-summary"></a>

Amazon Web Services(AWS)에서 [Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) 전사적 자원 관리(ERP) 솔루션을 실행하려면 기본 운영 체제(OS) 및 데이터베이스 환경에 액세스해야 하는 레거시, 사용자 지정 및 패키지 애플리케이션을 지원하는 [Amazon Relational Database Service(Amazon RDS)](https://aws.amazon.com/rds/) 또는 [Oracle용 Amazon RDS Custom](https://aws.amazon.com/rds/custom/)을 사용할 수 있습니다. 마이그레이션을 계획할 때 고려해야 할 주요 요소는 AWS 권장 가이드의 [Oracle 데이터베이스 마이그레이션 전략](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html)을 참조하세요.

이 패턴은 Amazon RDS Custom에서 읽기 전용 복제본 데이터베이스가 있는 기본 데이터베이스로 실행되고 있는 PeopleSoft 애플리케이션 데이터베이스에 대해 Oracle Data Guard 전환 또는 역할 전환을 수행하는 단계를 중점적으로 다룹니다. 패턴에는 [패스트 스타트 장애 조치(FSFO)](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/using-data-guard-broker-to-manage-switchovers-failovers.html#GUID-D26D79F2-0093-4C0E-98CD-224A5C8CBFA4)를 구성하는 단계가 포함됩니다. 이 프로세스 중에도 Oracle Data Guard 구성의 데이터베이스는 새로운 역할로 계속 작동합니다. Oracle Data Guard 전환의 일반적인 사용 사례로는 재해 복구(DR) 훈련, 데이터베이스의 예정된 유지 관리 작업, 그리고 [Standby-First Patch Apply](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/upgrading-patching-downgrading-oracle-data-guard-configuration.html#GUID-A5226768-DB6B-4714-BB9A-0A3EF17A01C8) 롤링 패치가 있습니다. 자세한 내용은 블로그 게시물, [Amazon RDS Custom에서 데이터베이스 패치 작업 중단 시간 단축](https://aws.amazon.com/blogs/database/reduce-database-patching-downtime-in-amazon-rds-custom-for-oracle-using-oracle-data-guard-standby-first-patch-apply/)을 참조하세요.

## 사전 조건 및 제한 사항
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-prereqs"></a>

**사전 조건 **
+ [읽기 전용 복제본 패턴을 사용하여 Amazon RDS Custom에서 Oracle PeopleSoft에 HA 추가](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.html)를 완료했습니다.

**제한 사항 **
+ [Oracle용 RDS Custom의 제한 사항 및 지원되지 않는 구성](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.limits)
+ [Amazon RDS Custom for Oracle 읽기 전용 복제본](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-rr.html#custom-rr.limitations)에 대한 제한 사항

**제품 버전**
+ Amazon RDS Custom에서 지원하는 Oracle Database 버전에 대해서는 [Oracle용 RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora)을 참조하세요.
+ Amazon RDS Custom에서 지원하는 Oracle Database 인스턴스 클래스에 대해서는 [Oracle용 RDS Custom에 대한 DB 인스턴스 클래스 지원](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances)을 참조하세요.

## 아키텍처
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-architecture"></a>

**기술 스택**
+ Amazon RDS Custom for Oracle

**대상 아키텍처**

다음 다이어그램에서는 Amazon RDS Custom DB 인스턴스와 Amazon RDS 사용자 지정 읽기 전용 복제본을 보여줍니다. Oracle Data Guard는 DR에 대한 장애 조치 중에 역할 전환을 제공합니다.

![\[읽기 전용 복제본 데이터베이스가 있는 기본 RDS Custom DB 인스턴스의 Oracle Data Guard 전환.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/da3b011c-1668-4de4-9079-0982888a74b4/images/4e2a2f3b-b5bd-44b7-9b5a-13a663ee3be6.png)


AWS에서 Oracle PeopleSoft를 사용하는 대표적인 아키텍처에 대해서는 AWS에서 [가용성이 높은 PeopleSoft 아키텍처 설정](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html)을 참조하세요.

## 도구
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-tools"></a>

**서비스**
+ [Oracle용 Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html)은 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 레거시, 커스텀 및 패키지 애플리케이션을 위한 관리형 데이터베이스 서비스입니다.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)를 사용하면 암호를 포함하여 코드에 하드코딩된 보안 인증을 Secrets Manager에 대한 API 호출로 대체하여 프로그래밍 방식으로 암호를 검색할 수 있습니다. 이 패턴에서는 Secrets Manager에서 암호 이름 `do-not-delete-rds-custom-+<<RDS Resource ID>>+-dg`를 사용하여 `RDS_DATAGUARD`에 대한 데이터베이스 사용자 암호를 검색합니다.

**기타 서비스**
+ [Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-5E73667D-4A56-445E-911F-1E99092DD8D7)를 사용하면 대기 데이터베이스를 생성, 유지, 관리 및 모니터링할 수 있습니다. 이 패턴은 역할 전환([Oracle Data Guard 전환](https://docs.oracle.com/database/121/DGBKR/sofo.htm#DGBKR330))을 위해 Oracle Data Guard 최대 성능을 사용합니다.

## 모범 사례
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-best-practices"></a>

프로덕션 배포의 경우 기본 및 읽기 전용 복제본 노드와 분리된 세 번째 가용 영역에서 옵저버 인스턴스를 시작하는 것이 좋습니다.

## 에픽
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-epics"></a>

### 역할 전환 시작
<a name="initiate-role-transition"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 기본 및 복제본 모두에 대한 데이터베이스 자동화를 일시 중지합니다. | RDS Custom 자동화 프레임워크가 역할 전환 프로세스를 방해하지는 않지만 Oracle Data Guard 전환 중에 자동화를 일시 중지하는 것이 좋습니다.RDS Custom 데이터베이스 자동화를 일시 중지했다가 다시 시작하려면 [RDS Custom 자동화 일시 중지 및 재개](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-managing.html#custom-managing.pausing)의 지침을 준수합니다. | 클라우드 관리자, DBA | 
| Oracle Data Guard 상태를 확인합니다. | Oracle Data Guard 상태를 확인하려면 기본 데이터베이스에 로그인합니다. 이 패턴에는 멀티테넌트 컨테이너 데이터베이스 (CDB) 또는 비CDB 인스턴스를 사용하기 위한 코드가 포함됩니다.**비 CDB**<pre>-bash-4.2$ dgmgrl RDS_DATAGUARD@RDS_CUSTOM_ORCL_A<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Mon Nov 28 20:55:50 2022<br />Version 19.10.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "ORCL_A"<br />Connected as SYSDG.<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 59 seconds ago)<br />DGMGRL></pre>**CDB**<pre>CDB-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_A<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 18 06:13:07 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_A"<br />Connected as SYSDG.<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 52 seconds ago)<br />DGMGRL></pre> | DBA | 
| 인스턴스 역할을 확인합니다. | AWS Management Console에 열고 Amazon RDS 콘솔로 이동합니다. 데이터베이스의 **복제** 섹션의 **연결 및 보안** 탭에서 기본 및 복제본의 인스턴스 역할을 확인합니다.기본 역할은 Oracle Data Guard 기본 데이터베이스와 일치해야 하고, 복제본 역할은 Oracle Data Guard 물리적 대기 데이터베이스와 일치해야 합니다. | 클라우드 관리자, DBA | 
| 전환을 실시합니다. | 전환을 실시하려면 프라이머리 노드에서 `DGMGRL`로 연결합니다.**비 CDB**<pre>DGMGRL> switchover to orcl_d;<br />Performing switchover NOW, please wait...<br />Operation requires a connection to database "orcl_d"<br />Connecting ...<br />Connected to "ORCL_D"<br />Connected as SYSDG.<br />New primary database "orcl_d" is opening...<br />Operation requires start up of instance "ORCL" on database "orcl_a"<br />Starting instance "ORCL"...<br />Connected to an idle instance.<br />ORACLE instance started.<br />Connected to "ORCL_A"<br />Database mounted.<br />Database opened.<br />Connected to "ORCL_A"<br />Switchover succeeded, new primary is "orcl_d"<br />DGMGRL>  </pre>**CDB**<pre>DGMGRL> switchover to rdscdb_b<br />Performing switchover NOW, please wait...<br />New primary database "rdscdb_b" is opening...<br />Operation requires start up of instance "RDSCDB" on database "rdscdb_a"<br />Starting instance "RDSCDB"...<br />Connected to an idle instance.<br />ORACLE instance started.<br />Connected to "RDSCDB_A"<br />Database mounted.<br />Database opened.<br />Connected to "RDSCDB_A"<br />Switchover succeeded, new primary is "rdscdb_b"</pre> | DBA | 
| Oracle Data Guard 연결을 확인합니다. | 전환 후 프라이머리 노드에서 `DGMGRL`로의 Oracle Data Guard 연결을 확인합니다.**비 CDB**<pre>DGMGRL> show configuration;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_d - Primary database<br />orcl_a - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 60 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show configuration lag;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_d - Primary database<br />orcl_a - Physical standby database <br />Transport Lag: 0 seconds (computed 0 seconds ago)<br />Apply Lag: 0 seconds (computed 0 seconds ago)<br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 44 seconds ago)<br />DGMGRL> </pre>**CDB**<pre>DGMGRL> show configuration<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_b - Primary database<br />    rdscdb_a - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 52 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show configuration lag<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_b - Primary database<br />    rdscdb_a - Physical standby database <br />               Transport Lag:      0 seconds (computed 0 seconds ago)<br />               Apply Lag:          0 seconds (computed 0 seconds ago)<br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 53 seconds ago)<br />DGMGRL></pre> | DBA | 
| Amazon RDS 콘솔에서 인스턴스 역할을 확인합니다. | 역할 전환을 한 후 Amazon RDS 콘솔에 **데이터베이스** 아래에 **연결 및 보안** 탭에 있는 **복제본** 섹션 아래에 새로운 역할이 표시됩니다. **복제 상태**가 비어 있다가 **복제 중**으로 업데이트되는 데 몇 분 정도 걸릴 수 있습니다. | DBA | 

### FSFO 구성
<a name="configure-fsfo"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 전환을 재설정합니다. | 전환을 프라이머리 노드로 다시 설정합니다. | DBA | 
| 옵저버를 설치하고 시작합니다. | 옵저버 프로세스는 일반적으로 기본 및 대기 데이터베이스와는 다른 시스템에서 실행되고 있는 `DGMGRL` 클라이언트 구성 요소입니다. 옵저버용 ORACLE HOME 설치는 Oracle Client Administrator 설치일 수도 있거나, Oracle Database Enterprise Edition 또는 Personal Edition을 설치할 수도 있습니다. 데이터베이스 릴리스의 옵저버 설치에 대한 자세한 내용[은 옵저버 설치 및 시작](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/using-data-guard-broker-to-manage-switchovers-failovers.html#GUID-11EF3897-8FCA-4A54-B63B-E8C1668AE21B)을 참조하세요. 옵저버 프로세스의 고가용성을 구성하려면 다음을 수행할 수 있습니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.html)Oracle 12c Release 2 이상의 경우 최대 3명의 옵저버를 배포할 수 있습니다. 한 명의 옵저버가 기본 옵저버이고 나머지는 백업 옵저버입니다. 기본 옵저버가 실패하면 백업 옵저버 중 한 명이 기본 역할을 맡습니다. | DBA | 
| 옵저버 호스트에서 DGMGRL에 연결합니다. | 옵저버 호스트는 기본 및 대기 데이터베이스 연결을 위한 `tnsnames.ora` 항목으로 구성됩니다. 데이터 손실이 [FastStartFailoverLagLimit](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/oracle-data-guard-broker-properties.html) 구성(초 단위 값) 내에 있는 한 최대 성능 보호 모드로 FSFO를 활성화할 수 있지만 데이터 손실이 전혀 없도록(RPO=0) 하려면 최대 가용성 보호 모드를 사용해야 합니다.**비 CDB**<pre>DGMGRL> show configuration;<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 58 seconds ago)<br />DGMGRL> show configuration lag<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - Physical standby database <br />Transport Lag: 0 seconds (computed 1 second ago)<br />Apply Lag: 0 seconds (computed 1 second ago)<br />Fast-Start Failover: Disabled<br />Configuration Status:<br />SUCCESS (status updated 5 seconds ago)<br />DGMGRL></pre>**CDB**<pre>-bash-4.2$ dgmgrl C##RDS_DATAGUARD@RDS_CUSTOM_RDSCDB_A<br />DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Jan 18 06:55:09 2023<br />Version 19.16.0.0.0<br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br />Welcome to DGMGRL, type "help" for information.<br />Password:<br />Connected to "RDSCDB_A"<br />Connected as SYSDG.<br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - Physical standby database <br />Fast-Start Failover:  Disabled<br />Configuration Status:<br />SUCCESS   (status updated 18 seconds ago)<br />DGMGRL></pre> | DBA | 
| 대기 데이터베이스를 장애 조치 대상으로 수정합니다. | 프라이머리 노드 또는 옵저버 노드에서 하나의 대기 데이터베이스로 접속합니다. (구성에 여러 대기 데이터베이스가 있을 수 있지만 지금은 하나만 연결하면 됩니다.)**비 CDB**<pre>DGMGRL> edit database orcl_a set property FastStartFailoverTarget='orcl_d';<br />Property "faststartfailovertarget" updated<br />DGMGRL> edit database orcl_d set property FastStartFailoverTarget='orcl_a';<br />Property "faststartfailovertarget" updated<br />DGMGRL> show database orcl_a FastStartFailoverTarget;<br />FastStartFailoverTarget = 'orcl_d'<br />DGMGRL> show database orcl_d FastStartFailoverTarget;<br />FastStartFailoverTarget = 'orcl_a'<br />DGMGRL></pre>**CDB**<pre>DGMGRL> edit database orcl_a set property FastStartFailoverTarget='rdscdb_b';<br />Object "orcl_a" was not found<br />DGMGRL> edit database rdscdb_a set property FastStartFailoverTarget='rdscdb_b';<br />Property "faststartfailovertarget" updated<br />DGMGRL> edit database rdscdb_b set property FastStartFailoverTarget='rdscdb_a';<br />Property "faststartfailovertarget" updated<br />DGMGRL> show database rdscdb_a FastStartFailoverTarget;<br />  FastStartFailoverTarget = 'rdscdb_b'<br />DGMGRL> show database rdscdb_b FastStartFailoverTarget;<br />  FastStartFailoverTarget = 'rdscdb_a'<br />DGMGRL></pre> | DBA | 
| DGMGRL에 대한 연결을 위해 FastStartFailoverThreshold를 구성합니다. | Oracle 19c의 기본값은 30초이고 최소값은 6초입니다. 값이 낮으면 장애 조치 중에 Recovery Time Objective (RTO)가 단축될 가능성이 있습니다. 값이 높을수록 기본 데이터베이스에서 불필요한 장애 조치 일시적 오류가 발생할 가능성을 줄이는 데 도움이 됩니다.Oracle용 RDS Custom 자동화 프레임워크는 데이터베이스 상태를 모니터링하고 몇 초마다 수정 작업을 수행합니다. 따라서 FastStartFailoverThreshold를 10초보다 큰 값으로 설정하는 것이 좋습니다. 다음 예제에서는 임계값을 35초로 구성합니다.**비·CBD 또는 CDB**<pre>DGMGRL> edit configuration set property FastStartFailoverThreshold=35;<br />Property "faststartfailoverthreshold" updated<br />DGMGRL> show configuration FastStartFailoverThreshold;<br />FastStartFailoverThreshold = '35'<br />DGMGRL></pre> | DBA | 
| 기본 또는 옵저버 노드에서 DGMGRL에 연결하여 FSFO를 활성화합니다. | 데이터베이스에 [플래시백 데이터베이스](https://docs.oracle.com/en/database/oracle/oracle-database/19/rcmrf/FLASHBACK-DATABASE.html#GUID-584AC79A-40C5-45CA-8C63-DED3BE3A4511)가 활성화되지 않은 경우 경고 메시지 `ORA-16827`가 나타납니다. 선택적 플래시백 데이터베이스를 사용하면 [FastStartFailoverAutoReinstate](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/oracle-data-guard-broker-properties.html#GUID-824E97C0-EEB0-4E1B-BD4A-F5AE282CEA28) 구성 속성이 `TRUE`(기본값)으로 설정된 경우 장애가 발생한 기본 데이터베이스를 장애 조치 이전의 특정 시점으로 자동으로 복원할 수 있습니다.**비 CDB**<pre>DGMGRL> enable fast_start failover;<br />Warning: ORA-16827: Flashback Database is disabled<br />Enabled in Zero Data Loss Mode.<br />DGMGRL> <br />DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />Warning: ORA-16819: fast-start failover observer not started<br />orcl_d - (*) Physical standby database <br />Warning: ORA-16819: fast-start failover observer not started<br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />WARNING (status updated 29 seconds ago)<br />DGMGRL></pre>**CDB**<pre>DGMGRL> enable fast_start failover;<br />Warning: ORA-16827: Flashback Database is disabled<br />Enabled in Zero Data Loss Mode.<br />DGMGRL> show configuration;<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    Warning: ORA-16819: fast-start failover observer not started<br />    rdscdb_b - (*) Physical standby database <br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />WARNING   (status updated 11 seconds ago)<br />DGMGRL></pre> | DBA | 
| FSFO 모니터링을 위한 옵저버를 시작하고 상태를 확인합니다. | FSFO를 활성화하기 전 또는 활성화한 후에 옵저버를 시작할 수 있습니다. FSFO가 이미 활성화된 경우 옵저버는 즉시 기본 및 대상 대기 데이터베이스에 대한 상태 및 연결 모니터링을 시작합니다. FSFO가 활성화되지 않은 경우 옵저버는 FSFO가 활성화될 때까지 모니터링을 시작하지 않습니다.옵저버를 시작하면 이전 `show configuration` 명령에서 알 수 있듯이 기본 DB 구성이 오류 메시지 없이 표시됩니다.**비 CDB**<pre>DGMGRL> start observer;<br />[W000 2022-12-01T06:16:51.271+00:00] FSFO target standby is orcl_d<br />Observer 'ip-10-0-1-89' started<br />[W000 2022-12-01T06:16:51.352+00:00] Observer trace level is set to USER<br /><br />DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_a - Primary database<br />orcl_d - (*) Physical standby database <br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />SUCCESS (status updated 56 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show observer<br />Configuration - rds_dg<br />Primary: orcl_a<br />Active Target: orcl_d<br />Observer "ip-10-0-1-89" - Master<br />Host Name: ip-10-0-1-89<br />Last Ping to Primary: 1 second ago<br />Last Ping to Target: 1 second ago<br />DGMGRL></pre>**CDB**<pre>DGMGRL> start observer;<br />Succeeded in opening the observer file "/home/oracle/fsfo_ip-10-0-1-56.dat".<br />[W000 2023-01-18T07:31:32.589+00:00] FSFO target standby is rdscdb_b<br />Observer 'ip-10-0-1-56' started<br />The observer log file is '/home/oracle/observer_ip-10-0-1-56.log'.<br /><br />DGMGRL> show configuration<br />Configuration - rds_dg<br />  Protection Mode: MaxAvailability<br />  Members:<br />  rdscdb_a - Primary database<br />    rdscdb_b - (*) Physical standby database <br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />SUCCESS   (status updated 12 seconds ago)<br />DGMGRL> <br /><br />DGMGRL> show observer;<br />Configuration - rds_dg<br />  Primary:            rdscdb_a<br />  Active Target:      rdscdb_b<br />Observer "ip-10-0-1-56" - Master<br />  Host Name:                    ip-10-0-1-56<br />  Last Ping to Primary:         1 second ago<br />  Last Ping to Target:          2 seconds ago<br />DGMGRL></pre> | DBA | 
| 장애 조치 확인합니다. | 이 시나리오에서는 기본 EC2 인스턴스를 수동으로 중지하여 장애 조치 테스트를 수행할 수 있습니다. EC2 인스턴스를 중지하기 전에 `tail` 명령을 사용하여 구성을 기반으로 옵저버 로그 파일을 모니터링합니다. `DGMGRL`을 사용하여 사용자 `RDS_DATAGUARD`로 대기 데이터베이스 `orcl_d`에 로그인하고 Oracle Data Guard 상태를 확인합니다. `orcl_d`은 새로운 기본 데이터베이스라고 표시되어야 합니다.이 장애 조치 테스트 시나리오에서는 `orcl_d`가 비CDB 데이터베이스입니다.장애 조치 전에는 플래시백 데이터베이스가 `orcl_a`에서 활성화되었습니다. 이전의 기본 데이터베이스가 온라인 상태로 돌아와 `MOUNT` 상태로 시작되면 옵저버는 해당 데이터베이스를 새로운 대기 데이터베이스로 복원합니다. 복원된 데이터베이스는 새로운 기본 데이터베이스의 FSFO 대상 역할을 합니다. 옵저버 로그에서 세부 정보를 확인할 수 있습니다.<pre>DGMGRL> show configuration<br />Configuration - rds_dg<br />Protection Mode: MaxAvailability<br />Members:<br />orcl_d - Primary database<br />Warning: ORA-16824: multiple warnings, including fast-start failover-related warnings, detected for the database<br />orcl_a - (*) Physical standby database (disabled)<br />ORA-16661: the standby database needs to be reinstated<br />Fast-Start Failover: Enabled in Zero Data Loss Mode<br />Configuration Status:<br />WARNING (status updated 25 seconds ago)<br />DGMGRL></pre>다음은 `observer.log`에서의 출력 예입니다.<pre>$ tail -f /tmp/observer.log<br />Unable to connect to database using rds_custom_orcl_a<br />[W000 2023-01-18T07:50:32.589+00:00] Primary database cannot be reached.<br />[W000 2023-01-18T07:50:32.589+00:00] Fast-Start Failover threshold has expired.<br />[W000 2023-01-18T07:50:32.590+00:00] Try to connect to the standby.<br />[W000 2023-01-18T07:50:32.590+00:00] Making a last connection attempt to primary database before proceeding with Fast-Start Failover.<br />[W000 2023-01-18T07:50:32.591+00:00] Check if the standby is ready for failover.<br />[S002 2023-01-18T07:50:32.591+00:00] Fast-Start Failover started...<br />2023-01-18T07:50:32.591+00:00<br />Initiating Fast-Start Failover to database "orcl_d"...<br />[S002 2023-01-18T07:50:32.592+00:00] Initiating Fast-start Failover.<br />Performing failover NOW, please wait...<br />Failover succeeded, new primary is "orcl_d"<br />2023-01-18T07:55:32.101+00:00<br />[S002 2023-01-18T07:55:32.591+00:00] Fast-Start Failover finished...<br />[W000 2023-01-18T07:55:32.591+00:00] Failover succeeded. Restart pinging.<br />[W000 2023-01-18T07:55:32.603+00:00] Primary database has changed to orcl_d.<br />[W000 2023-01-18T07:55:33.618+00:00] Try to connect to the primary.<br />[W000 2023-01-18T07:55:33.622+00:00] Try to connect to the primary rds_custom_orcl_d.<br />[W000 2023-01-18T07:55:33.634+00:00] The standby orcl_a needs to be reinstated<br />[W000 2023-01-18T07:55:33.654+00:00] Try to connect to the new standby orcl_a.<br />[W000 2023-01-18T07:55:33.654+00:00] Connection to the primary restored!<br />[W000 2023-01-18T07:55:35.654+00:00] Disconnecting from database rds_custom_orcl_d.<br />[W000 2023-01-18T07:55:57.701+00:00] Try to connect to the new standby orcl_a.<br />ORA-12170: TNS:Connect timeout occurred</pre> | DBA | 

### Oracle Peoplesoft 애플리케이션과 데이터베이스 간의 연결 구성
<a name="configure-connectivity-between-the-oracle-peoplesoft-application-and-the-database"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 기본 데이터베이스에서 서비스를 생성하고 시작합니다. | 구성에 기본 및 대기 데이터베이스 엔드포인트가 모두 포함된 TNS 항목을 사용하면 역할 전환 중에 애플리케이션 구성이 변경되지 않도록 할 수 있습니다. 읽기/쓰기 및 읽기 전용 워크로드를 모두 지원하는 두 개의 역할 기반 데이터베이스 서비스를 정의할 수 있습니다. 다음 예에서는 기본 데이터베이스에서 `orcl_rw`는 기본 데이터베이스에 활성화된 읽기/쓰기 서비스입니다. `orcl_ro`는 읽기 전용 서비스이며 읽기 전용 모드로 열린 대기 데이터베이스에서 활성화됩니다.<pre>SQL> select name,open_mode from v$database;<br />NAME OPEN_MODE<br />--------- --------------------<br />ORCL READ WRITE<br />SQL> exec dbms_service.create_service('orcl_rw','orcl_rw');<br />PL/SQL procedure successfully completed.<br />SQL> exec dbms_service.create_service('orcl_ro','orcl_ro');<br />PL/SQL procedure successfully completed.<br /><br />SQL> exec dbms_service.start_service('orcl_rw');<br />PL/SQL procedure successfully completed.<br />SQL></pre> | DBA | 
| 대기 데이터베이스에서 서비스를 시작합니다. | 읽기 전용 대기 데이터베이스에서 서비스를 시작하려면 다음 코드를 사용합니다.<pre>SQL> select name,open_mode from v$database;<br />NAME OPEN_MODE<br />--------- --------------------<br />ORCL READ ONLY WITH APPLY<br />SQL> exec dbms_service.start_service('orcl_ro');<br />PL/SQL procedure successfully completed.<br />SQL></pre> | DBA | 
| 기본 DB 재시작 시 서비스 시작을 자동화합니다. | 서비스를 다시 시작할 때 기본 데이터베이스에서 서비스를 자동으로 시작하려면 다음 코드를 사용합니다.<pre>SQL> CREATE OR REPLACE TRIGGER TrgDgServices after startup on database<br />DECLARE<br />db_role VARCHAR(30);<br />db_open_mode VARCHAR(30);<br />BEGIN<br />SELECT DATABASE_ROLE, OPEN_MODE INTO db_role, db_open_mode FROM V$DATABASE;<br />IF db_role = 'PRIMARY' THEN<br />DBMS_SERV 2 ICE.START_SERVICE('orcl_rw');<br />END IF;<br />IF db_role = 'PHYSICAL STANDBY' AND db_open_mode LIKE 'READ ONLY%' THEN<br />DBMS_SERVICE.START_SERVICE('orcl_ro');<br />END IF;<br />END;<br />/ <br />Trigger created.<br />SQL> </pre> | DBA | 
| 읽기/쓰기 데이터베이스와 읽기 전용 데이터베이스 간의 연결을 구성합니다. | 다음 애플리케이션 구성 예제를 읽기/쓰기 및 읽기 전용 연결에 사용할 수 있습니다.<pre>ORCL_RW = (DESCRIPTION =<br />(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)<br />(ADDRESS_LIST =<br />(ADDRESS = (PROTOCOL = TCP)(HOST=devpsftdb.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />(ADDRESS = (PROTOCOL = TCP)(HOST=psftread.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />)<br />(CONNECT_DATA=(SERVICE_NAME = orcl_rw))<br />)<br />ORCL_RO = (DESCRIPTION =<br />(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)<br />(ADDRESS_LIST =<br />(ADDRESS = (PROTOCOL = TCP)(HOST=devpsftdb.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />(ADDRESS = (PROTOCOL = TCP)(HOST=psftread.******.us-west-2.rds.amazonaws.com)(PORT=1521))<br />)<br />(CONNECT_DATA=(SERVICE_NAME = orcl_ro))<br />)</pre> | DBA | 

## 관련 리소스
<a name="transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle-resources"></a>
+ [Oracle용 Amazon RDS Custom에서 Data Guard를 사용하여 고가용성 활성화](https://d1.awsstatic.com/whitepapers/enabling-high-availability-with-data-guard-on-amazon-rds-custom-for-oracle.pdf)(AWS 기술 가이드)
+ [Amazon RDS를 Oracle PeopleSoft 데이터베이스로 구성](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf)(AWS 백서)
+ [Oracle Data Guard Broker](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/index.html) 가이드(Oracle 참조 문서)
+ [Oracle Data Guard Concepts 및 Administration](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/index.html)(Oracle 참조 문서)
+ [Oracle Data Guard Specific FAN 및 FCF Configuration Requirements](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/using-data-guard-broker-to-manage-switchovers-failovers.html#GUID-DFFDAA2B-A889-49AD-AB85-747D73FF0FF5)(Oracle 참조 문서)