Oracle E-Business Suite를 Amazon RDS Custom으로 마이그레이션 - AWS 권장 가이드

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

Oracle E-Business Suite를 Amazon RDS Custom으로 마이그레이션

작성자: Simon Cunningham(AWS), Jaydeep Nandy(AWS), Nitin Saxena(AWS) 및 Vishnu Vinnakota(AWS)

환경: 프로덕션

소스: Amazon EC2 또는 온프레미스

대상: Amazon RDS Custom

R 타입: 리플랫포밍

워크로드: Oracle

기술: 마이그레이션, 데이터베이스, 인프라

AWS 서비스: Amazon EFS, Amazon RDS, AWS Secrets Manager

요약

Oracle E-Business Suite는 재무, 인사, 공급망, 제조와 같은 전사적 프로세스를 자동화하기 위한 엔터프라이즈 리소스 계획(ERP) 솔루션입니다. 클라이언트, 애플리케이션, 데이터베이스의 3계층 아키텍처를 갖추고 있습니다. 이전에는 자체 관리형 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 Oracle E-Business Suite 데이터베이스를 실행해야 했지만 이제 Amazon Relational Database Service(Amazon RDS) Custom의 이점을 누릴 수 있습니다. 

Amazon RDS Custom for Oracle은 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 레거시, 사용자 지정 및 패키지 애플리케이션을 위한 관리형 데이터베이스 서비스입니다. 이는 데이터베이스 관리 작업과 운영을 자동화하는 동시에 데이터베이스 관리자로서 데이터베이스 환경과 운영 체제에 액세스하고 사용자 정의할 수 있도록 해줍니다. Oracle 데이터베이스를 Amazon RDS Custom으로 마이그레이션할 때 Amazon Web Services(AWS)는 백업 작업 및 고가용성 보장과 같은 까다로운 작업을 처리하는 동시에 Oracle E-Business Suite 애플리케이션 및 기능을 유지하는 데 집중할 수 있습니다. 마이그레이션에 고려해야 할 주요 요소는 AWS 규범적 지침의 Oracle 데이터베이스 마이그레이션 전략을 참조하세요.

이 패턴은 Word 인스턴스와 Amazon EC2 RDS Custom 간에 Oracle Recovery Manager(RMAN) 백업 및 Amazon Elastic File System(Amazon EFS) 공유 파일 시스템을 사용하여 Amazon EC2의 독립형 Oracle 데이터베이스를 Amazon RDS Custom으로 마이그레이션하는 단계에 중점을 둡니다. 패턴은 RMAN 전체 백업(때로는 수준 0 백업이라고 함)을 사용합니다.  단순화를 위해 애플리케이션을 종료하고 데이터베이스가 마운트된 상태로 열려 있지 않은 콜드 백업을 사용합니다. (Oracle Data Guard 또는 RMAN 복제를 백업에 사용할 수도 있습니다. 그러나이 패턴은 이러한 옵션을 다루지 않습니다.)

고가용성 및 재해 복구를 위한 AWS 기반 Oracle E-Business Suite 설계에 대한 자세한 내용은 활성 대기 데이터베이스가 있는 Amazon RDS Custom 기반 Oracle E-Business Suite용 HA/DR 아키텍처 설정 패턴을 참조하세요.

참고: 이 패턴은 Oracle 지원 정보로 연결되는 링크를 제공합니다. 이러한 문서에 액세스하려면 Oracle Support 계정이 필요합니다.

사전 조건 및 제한 사항

사전 조건 

  • Amazon EC2에서 실행되는 Oracle Linux 7 또는 Red Hat Enterprise Linux(RHEL) 버전 7.x의 Oracle 버전 12.1.0.2 또는 19c(최소 19.3) 소스 데이터베이스입니다. 이 패턴은 소스 데이터베이스 이름이 VIS이고 Oracle 19c의 추가 컨테이너 데이터베이스 이름이 VISCDB인 것으로 가정하지만 다른 이름을 사용할 수 있습니다.

    참고: 온프레미스 네트워크와 Amazon Virtual Private Cloud(Amazon VPC) 간에 적절한 네트워크 연결이 있는 한 온프레미스 Oracle 소스 데이터베이스에서도이 패턴을 사용할 수 있습니다.

  • Oracle E-Business Suite 버전 12.2.x 애플리케이션(비전 인스턴스). 이 절차는 버전 12.2.11에서 테스트되었습니다.

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

  • Oracle 12.1.0.2의 경우 Amazon RDS Custom이 최소 16GB의 스왑 공간으로 구성되었습니다. 그렇지 않으면 12c 예제 CD에 경고가 표시됩니다. (이 문서의 뒷부분에서 설명하는 것처럼 Oracle 19c에는 예제 CD가 필요하지 않습니다.)

마이그레이션을 시작하기 전에 다음 단계를 완료해야 합니다.

  1. Amazon RDS 콘솔에서 데이터베이스 이름VIS(또는 소스 데이터베이스 이름)으로 Amazon RDS Custom for Oracle DB 인스턴스를 생성합니다. 지침은 AWS 설명서의 Amazon RDS Custom 작업Amazon RDS Custom for Oracle – 데이터베이스 환경의 새로운 제어 기능 블로그 게시물을 참조하세요. 이렇게 하면 데이터베이스 이름이 소스 데이터베이스와 동일한 이름으로 설정됩니다. (빈 칸으로 두면 EC2 인스턴스와 데이터베이스 이름이 로 설정됩니다ORCL.)  최소한 소스에 적용된 패치를 사용하여 사용자 지정 엔진 버전(CEV)을 생성해야 합니다. 자세한 내용은 Amazon CEV 설명서의 Word 생성 준비를 참조하세요. RDS

    Oracle 19c 참고 사항: 현재 Oracle 19c의 경우 Amazon RDS 컨테이너 데이터베이스 이름을 사용자 지정할 수 있습니다. 기본값은 RDSCDB입니다. 소스 RDS 인스턴스와 동일한 시스템 ID(SID)로 EC2 Custom Oracle 인스턴스를 생성해야 합니다. 예를 들어이 패턴에서 Oracle 19c SID는 소스 인스턴스VISCDB에 있는 것으로 간주됩니다. 따라서 Amazon SID Custom의 대상 Oracle 19c RDS도 이어야 합니다VISCDB.

  2. Amazon RDS 소스 데이터베이스와 일치하도록 충분한 스토리지, vCPU 및 메모리로 Amazon EC2 Custom DB 인스턴스를 구성합니다.  이렇게 하려면 vCPU 및 메모리를 기반으로 Amazon EC2 인스턴스 유형을 일치시킬 수 있습니다. 

  3. Amazon EFS 파일 시스템을 생성하고 Amazon EC2 및 Amazon RDS Custom 인스턴스에 탑재합니다.  지침은 Amazon RDS Custom for Oracle과 Amazon EFS 블로그 게시물 통합을 참조하세요. 이 패턴은 소스 Amazon EFS 및 대상 Amazon EC2 Custom DB 인스턴스 /RMAN 모두에 Amazon RDS 볼륨을 탑재했으며 소스와 대상 간에 네트워크 연결이 가능하다고 가정합니다. Amazon FSx 또는 공유 드라이브를 사용하여 동일한 방법을 사용할 수도 있습니다.

가정

이 패턴은 애플리케이션과 데이터베이스가 논리적 호스트 이름을 사용한다고 가정하므로 마이그레이션 단계 수가 줄어듭니다. 물리적 호스트 이름을 사용하도록 이러한 단계를 조정할 수 있지만 논리적 호스트 이름을 사용하면 마이그레이션 프로세스의 복잡성이 줄어듭니다. 논리적 호스트 이름 사용의 이점에 대한 자세한 내용은 다음 지원 노트를 참조하세요.

  • 12c의 경우 Oracle Support Note 2246690.1

  • 19c의 경우 Oracle Support Note 2617788.1

이 패턴은 Oracle 12c에서 19c로의 업그레이드 시나리오를 다루지 않으며 Amazon EC2에서 실행되는 동일한 버전의 Oracle 데이터베이스를 Oracle용 Amazon RDS Custom으로 마이그레이션하는 데 중점을 둡니다.

Amazon RDS Custom for Oracle은 Oracle Home 사용자 지정을 지원합니다. (Oracle Home은 Oracle 바이너리를 저장합니다.) /rdsdbbin/oracle 기본 경로를 지정한 경로(예: /d01/oracle/VIS/19c)로 변경할 수 있습니다. 단순화를 위해 이 패턴의 지침에서는 /rdsdbbin/oracle 기본 경로를 가정합니다.

제한 사항

이 패턴은 다음 기능 및 구성을 지원하지 않습니다.

  • 데이터베이스 ARCHIVE_LAG_TARGET 파라미터를 60~7200 범위를 벗어난 값으로 설정

  • DB 인스턴스 로그 모드 비활성화 (NOARCHIVELOG

  • EC2 인스턴스의 EBS-optimized 속성 끄기

  • EC2 인스턴스에 연결된 원래 Amazon Elastic Block Store(Amazon EBS) 볼륨 수정

  • 새 EBS 볼륨 추가 또는 볼륨 유형을에서 gp2 로 변경gp3

  • TNS ifile 지원

  • control_file 위치 및 이름 변경(은 이어야 하며/rdsdbdata/db/VISCDB_A/controlfile/control-01.ctl, 여기서 VISCDB는 CDB 이름)

이러한 구성 및 기타 지원되지 않는 구성에 대한 자세한 내용은 Amazon RDS 설명서의 지원되지 않는 구성 수정을 참조하세요.

제품 버전

Amazon RDS Custom에서 지원하는 Oracle Database 버전 및 인스턴스 클래스는 Amazon RDS Custom for Oracle의 가용성 및 요구 사항을 참조하세요.

아키텍처

다음 아키텍처 다이어그램은 단일 가용 영역 온 AWS에서 실행되는 Oracle E-Business Suite 시스템을 나타냅니다. 애플리케이션 계층은 Application Load Balancer를 통해 액세스되며, 애플리케이션과 데이터베이스는 모두 프라이빗 서브넷에 있고, Amazon RDS Custom 및 Amazon EC2 데이터베이스 계층은 Amazon EFS 공유 파일 시스템을 사용하여 RMAN 백업 파일을 저장하고 액세스합니다.

AWS 가용 영역의 E-Business Suite용 아키텍처

도구

AWS 서비스

  • Amazon RDS Custom for Oracle은 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 레거시, 사용자 지정 및 패키지 애플리케이션을 위한 관리형 데이터베이스 서비스입니다. 이는 데이터베이스 관리 작업과 운영을 자동화하는 동시에 데이터베이스 관리자로서 데이터베이스 환경과 운영 체제에 액세스하고 사용자 정의할 수 있도록 해줍니다. 

  • Amazon Elastic File System(Amazon EFS)은 관리 또는 프로비저닝 없이 파일을 추가하고 제거할 수 있는 서버리스 탄력적 파일 시스템입니다. 이 패턴은 Amazon EFS 공유 파일 시스템을 사용하여 RMAN 백업 파일을 저장하고 액세스합니다.

  • AWS Secrets Manager는 데이터베이스 보안 인증 정보, AWS 키 및 기타 보안 정보를 쉽게 교체, 관리 및 검색할 수 있는 API 관리형 서비스입니다. Amazon RDS Custom은 데이터베이스 생성 시 Secrets Manager에 키 페어와 데이터베이스 사용자 보안 인증을 저장합니다. 이 패턴에서는 Secrets Manager에서 데이터베이스 사용자 암호를 검색하여 RDSADMINADMIN 사용자를 생성하고 시스템 및 시스템 암호를 변경합니다.

기타 도구

  • RMAN는 Oracle 데이터베이스에 대한 백업 및 복구 지원을 제공하는 도구입니다. 이 패턴은 RMAN를 사용하여 Amazon Word RDS Custom에서 복원된 Amazon EC2에서 소스 Oracle 데이터베이스의 콜드 백업을 수행합니다.

모범 사례

  • 논리적 호스트 이름을 사용합니다. 이렇게 하면 실행해야 하는 사후 복제 스크립트의 수가 크게 줄어듭니다. 자세한 내용은 Oracle Support 문서 2246690.1을 참조하세요.

  • Amazon RDS Custom은 기본적으로 Oracle Automatic Memory Management(AMM)를 사용합니다.  거대 메모리 커널을 사용하려면 대신 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.

  • memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. 프레임워크는 백그라운드에서 이 파라미터를 사용하여 읽기 전용 복제본을 생성합니다.

  • Oracle Flashback Database를 활성화합니다. 이 기능은 대기를 복원하기 위한 장애 조치(전환 아님) 테스트 시나리오에서 유용합니다.

  • 데이터베이스 초기화 파라미터의 경우 Oracle 소스 데이터베이스의 PFILE를 사용하는 대신 Oracle E-Business Suite용 Amazon RDS Custom DB 인스턴스에서 제공하는 표준 SPFILE를 사용자 지정합니다. 이는 Amazon RDS Custom에서 읽기 전용 복제본을 생성할 때 공백과 주석으로 인해 문제가 발생하기 때문입니다. 데이터베이스 초기화 파라미터에 대한 자세한 내용은 Oracle Support 문서 396009.1을 참조하세요.

다음 에픽 섹션에서는 Oracle 12.1.0.2 및 19c에 대한 세부 정보가 다른 별도의 지침을 제공합니다.

에픽

작업설명필요한 기술

애플리케이션을 종료합니다.

소스 애플리케이션을 종료하려면 다음 명령을 사용합니다. 

$ su - applmgr $ cd $INST_TOP/admin/scripts $ ./adstpall.sh
DBA

.zip 파일을 만듭니다.

소스 애플리케이션 계층에서 appsutil.zip 파일을 생성합니다. 나중에이 파일을 사용하여 Amazon RDS Custom 데이터베이스 노드를 구성합니다.

$ perl $AD_TOP/bin/admkappsutil.pl
DBA

.zip 파일을 Amazon EFS에 복사합니다.

appsutil.zip에서 공유 Amazon EFS 볼륨()$INST_TOP/admin/out으로 복사합니다/RMAN/appsutil. 보안 복사(SCP) 또는 다른 전송 메커니즘을 사용하여 파일을 수동으로 전송할 수 있습니다.

DBA
작업설명필요한 기술

Amazon EC2에서 데이터베이스 계층을 미리 복제합니다.

Oracle 사용자로 로그인하고 다음을 실행합니다.

$ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ perl adpreclone.pl dbTier

생성된 로그 파일을 확인하여 작업이 성공적으로 완료되었는지 확인합니다.

DBA

appsutil.zip을 공유 Amazon EFS 파일 시스템에 복사합니다.

tar 백업을 생성하고 공유 Amazon EFS 파일 시스템(예: /RMAN/appsutil)$ORACLE_HOME/appsutil에 복사합니다.

$ cd $ORACLE_HOME $ tar cvf sourceappsutil.tar appsutil $ cp sourceappsutil.tar /RMAN/appsutil
DBA
작업설명필요한 기술

백업 스크립트를 생성합니다.

공유 Amazon RMAN EFS 파일 시스템에 소스 데이터베이스를 Word 전체 백업합니다.

간소화를 위해이 패턴은 콜드 RMAN 백업을 수행합니다. 그러나 이러한 단계를 수정하여 Oracle Data Guard를 사용하여 핫 RMAN 백업을 수행하여 가동 중지 시간을 줄일 수 있습니다.

1. 탑재 모드에서 소스 Amazon EC2 데이터베이스를 시작합니다.

$ sqlplus / as sysdba $ SQL> shutdown immediate $ SQL> startup mount

2. RMAN 백업 스크립트를 생성하여(이 예제에서는 Oracle 버전에 따라 다음 예제 중 하나를 사용하거나 기존 RMAN 스크립트 중 하나를 실행) 데이터베이스를 탑재한 Amazon EFS 파일 시스템에 백업합니다(/RMAN).

Oracle 12.1.0.2의 경우:

$ vi FullRMANColdBackup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_SID=VIS export ORACLE_HOME=/d01/oracle/VIS/12.1.0 export DATE=$(date +%y-%m-%d_%H%M%S) rman target / log=/RMAN/VISDB_${DATE}.log << EOF run { allocate channel ch1 device type disk format '/RMAN/visdb_full_bkp_%u'; allocate channel ch2 device type disk format '/RMAN/visdb_full_bkp_%u'; crosscheck backup; delete noprompt obsolete; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; backup archivelog all; release channel ch1; release channel ch2; } EOF

Oracle 19c의 경우:

$ vi FullRMANColdBackup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_SID=VISCDB export ORACLE_HOME=/d01/oracle/VIS/19c export DATE=$(date +%y-%m-%d_%H%M%S) rman target / log=/RMAN/VISDB_${DATE}.log << EOF run { allocate channel ch1 device type disk format '/RMAN/visdb_full_bkp_%u'; allocate channel ch2 device type disk format '/RMAN/visdb_full_bkp_%u'; crosscheck backup; delete noprompt obsolete; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; backup archivelog all; backup current controlfile format '/RMAN/cntrl.bak'; release channel ch1; release channel ch2; } EOF
DBA

백업 스크립트를 실행합니다.

권한을 변경하고 Oracle 사용자로 로그인한 다음 스크립트를 실행합니다.

$ chmod 755 FullRMANColdBackup.sh $ ./FullRMANColdBackup.sh
DBA

오류를 확인하고 백업 파일의 이름을 기록해 둡니다.

RMAN 로그 파일에 오류가 있는지 확인합니다. 모든 것이 정상인 것 같으면 제어 파일의 백업을 나열합니다. 출력 파일의 경로 및 이름을 기록합니다.

Oracle 12.1.0.2의 경우:

RMAN> connect target / RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 9 Full 1.11M DISK 00:00:04 23-APR-22 BP Key: 9 Status: AVAILABLE Compressed: YES Tag: TAG20220423T121011 Piece Name: /RMAN/visdb_full_bkp_100rlsbt Control File Included: Ckp SCN: 12204595396727 Ckp time: 23-APR-22

/RMAN/visdb_full_bkp_100rlsbt 나중에 Amazon RDS Custom에서 데이터베이스를 복원할 때 백업 파일을 사용합니다.

Oracle 19c의 경우:

RMAN> connect target / RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 38 Full 17.92M DISK 00:00:01 25-NOV-22 BP Key: 38 Status: AVAILABLE Compressed: NO Tag: TAG20221125T095014 Piece Name: /RMAN/cntrl.bak Control File Included: Ckp SCN: 12204620188873 Ckp time: 23-NOV-22

나중에 Amazon RDS Custom에서 데이터베이스를 복원할 때 백업 파일을/RMAN/cntrl.bak 사용합니다.

DBA
작업설명필요한 기술

호스트 파일을 변경하고 호스트 이름을 설정합니다.

참고: 이 섹션의 명령은 루트 사용자로 실행해야 합니다.

1. Amazon RDS Custom DB 인스턴스에서 /etc/hosts 파일을 편집합니다. 이렇게 하는 간단한 방법은 소스 Amazon EC2 데이터베이스 호스트 파일에서 데이터베이스 및 애플리케이션 호스트 항목을 복사하는 것입니다.

<IP-address> OEBS-app01.localdomain OEBS-app01 OEBS-app01log.localdomain OEBS-app01log <IP-address> OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log

여기서 <IP-address>는 Amazon RDS Custom IP 주소로 대체해야 하는 데이터베이스 노드 IP 주소입니다. 논리적 호스트 이름에는 *log가 추가됩니다.

2. hostnamectl 명령을 실행하여 데이터베이스 호스트 이름을 변경합니다. 

$ sudo hostnamectl set-hostname --static persistent-hostname

예제:

$ sudo hostnamectl set-hostname --static OEBS-db01log

자세한 내용은 정적 호스트 이름 할당에 관한 Knowledge Center 문서를 참조하세요.

3. Amazon RDS Custom DB 인스턴스를 다시 시작합니다.  이후 단계에서 데이터베이스가 삭제되므로 데이터베이스 종료는 걱정하지 마세요.

$ reboot

4. Amazon RDS Custom DB 인스턴스가 다시 표시되면 로그인하고 호스트 이름이 변경되었는지 확인합니다. 

$ hostname oebs-db01
DBA

Oracle E-Business Suite 소프트웨어를 설치합니다.

Amazon RPMs Custom DB 인스턴스의 Oracle 홈 위치에 Oracle E-Business Suite 권장 RDS를 설치합니다. 자세한 내용은 Oracle Support 문서 #1330701.1을 참조하세요. 다음은 목록의 일부입니다. 각 릴리스에 대해 RPM 목록이 변경되므로 필요한 모든 RPMs가 설치되어 있는지 확인합니다.

루트 사용자로 다음을 실행합니다.

$ sudo yum -y update $ sudo yum install -y elfutils-libelf-devel* $ sudo yum install -y libXp-1.0.2-2.1*.i686 $ sudo yum install -y libXp-1.0.2-2.1* $ sudo yum install -y compat-libstdc++-*

다음 단계를 진행하기 전에 필요한 패치가 모두 설치되었는지 확인합니다.

DBA

VNC 서버를 설치합니다.

참고: 예제 CD는 더 이상 필요하지 않으므로 Oracle 19c의 경우 이 단계를 생략할 수 있습니다. Oracle Support 문서 2782085.1을 참조하세요.

Oracle 12.1.0.2의 경우:

VNC 서버와 해당 종속 데스크톱 패키지를 설치합니다. 이는 다음 단계에서 12c 예제 CD를 설치하기 위한 요구 사항입니다.

1. 루트 사용자로 다음을 실행합니다.

$ sudo yum install -y tigervnc-server $ sudo yum install -y *kde* $ sudo yum install -y *xorg*

2. rdsdb 사용자용 VNC 서버를 시작하고 VNC용 암호를 설정합니다.

$ su - rdsdb $ vncserver :1 $ vncpassword
DBA

12c 예제 CD를 설치합니다.

참고: 예제 CD는 더 이상 필요하지 않으므로 Oracle 19c의 경우 이 단계를 생략할 수 있습니다. Oracle Support 문서 2782085.1을 참조하세요.

Oracle 12.1.0.2의 경우:

1. https://edelivery.oracle.com/에서 설치 파일을 다운로드합니다.  Oracle E-Business Suite 12.2.11-Oracle Database 12c 릴리스 1(12.1.0.2)의 경우 Linux x86-64 V100102-01.zip 예제를 찾아보세요.

2. 예제 CD를 저장할 디렉터리를 생성합니다.

$ mkdir /RMAN/12cexamples

3. 선택한 전송 메커니즘(예: SCP)을 사용하여 예제 CD .zip 파일을이 디렉터리에 복사합니다.

V100102-01.zip

4. 소유권을 rdsdb로 변경합니다.

$ chown -R rdsdb:rdsdb /RMAN/12cexamples

5. rdsdb 사용자로서 파일의 압축을 풉니다.

$ unzip V10010201.zip

6. VNC 클라이언트 및 Amazon RDS Custom에 액세스할 수 있는 클라이언트에서 연결합니다. VNC에 대한 액세스를 허용하는 데 필요한 네트워크 연결 및 방화벽 포트가 열려 있는지 확인합니다. 예를 들어에서 실행 중인 VNC 서버display :1는 Amazon RDS Custom EC2 호스트와 연결된 보안 그룹에서 포트 5901을 열어야 합니다.

7. 예제 CD를 복사한 디렉터리로 변경합니다.

$ cd /RMAN/12cexamples/examples

8. 설치 관리자를 실행합니다.  oraInst.loc 파일 위치를 확인합니다. 

./runInstaller -invPtrLoc /rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInst.loc

9. 예제 CD를 설치하는 동안 다음 파라미터를 사용합니다. 

Skip Software Update Downloads Select Oracle Home 12.1.0.2 (Oracle Base = /rdsdbbin) (Software Location = /rdsdbbin/oracle/12.1.custom.r1.EE.1)

10. 설치 프로그램에는 프롬프트가 있는 다섯 단계가 포함되어 있습니다.  설치가 완료될 때까지 각 단계를 따릅니다. 

DBA
작업설명필요한 기술

자동화 모드를 일시 중지합니다.

다음 단계를 진행하기 전에 Amazon RDS Custom DB 인스턴스의 자동화 모드를 일시 중지하여 자동화가 RMAN 활동을 방해하지 않도록 해야 합니다.

다음 AWS 명령줄 인터페이스(AWS CLI) 명령을 사용하여 자동화를 일시 중지합니다. (CLIAWS를 먼저 구성했는지 확인하세요.)

aws rds modify-db-instance \ --db-instance-identifier VIS \ --automation-mode all-paused \ --resume-full-automation-mode-minute 360 \ --region eu-west-1

일시 중지 기간을 지정할 때는 RMAN 복원에 충분한 시간을 두어야 합니다. 이는 소스 데이터베이스의 크기에 따라 달라지므로 360 값을 적절히 수정합니다.

DBA

스타터 데이터베이스를 삭제합니다.

기존 Amazon RDS Custom 데이터베이스를 삭제합니다. 

Oracle Home 사용자의 권한으로 다음 명령을 실행합니다. (사용자 정의하지 않은 경우 기본 사용자는 rdsdb입니다.)

$ sqlplus / as sysdba SQL> shutdown immediate; SQL> startup nomount restrict; SQL> alter database mount; SQL> drop database; SQL> exit
DBA

데이터베이스 파일을 저장할 디렉터리를 생성합니다.

Oracle 12.1.0.2의 경우:

데이터베이스, 제어 파일, 데이터 파일 및 온라인 로그용 디렉터리를 생성합니다. 이전 명령에서 control_files 파라미터의 상위 디렉터리(이 경우VIS_A)를 사용합니다. Oracle Home 사용자(기본값 rdsdb)로 다음 명령을 실행합니다.

$ mkdir -p /rdsdbdata/db/VIS_A/controlfile $ mkdir -p /rdsdbdata/db/VIS_A/datafile $ mkdir -p /rdsdbdata/db/VIS_A/onlinelog

Oracle 19c의 경우:

데이터베이스, 제어 파일, 데이터 파일 및 온라인 로그용 디렉터리를 생성합니다. 이전 명령에서 control_files 파라미터의 상위 디렉터리(이 경우 VISCDB_A)를 사용합니다. Oracle Home 사용자(기본값 rdsdb)로 다음 명령을 실행합니다.

$ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/controlfile $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/datafile $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/onlinelog $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/onlinelog/arch $ mkdir /rdsdbdata/db/pdb/VISCDB_A
DBA

Oracle E-Business Suite의 파라미터 파일을 생성하고 수정합니다.

이 단계에서는 소스 데이터베이스에서 서버 파라미터 파일(SPFILE)을 복사하지 않습니다. 대신 Amazon RDS Custom DB 인스턴스로 생성된 표준 파라미터 파일(PFILE)을 사용하고 Oracle E-Business Suite에 필요한 파라미터를 추가합니다.

데이터베이스를 삭제하면 Amazon RDS 자동화가 Amazon RDS Custom 데이터베이스와 연결된 init.ora 파일의 백업을 생성합니다. 이 파일은 oracle_pfile에서 호출되며 /rdsdbdata/config 위치에 있습니다.

Oracle 12.1.0.2의 경우:

1. /rdsdbdata/config/oracle_pfile$ORACLE_HOME에 복사합니다.

$ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVIS.ora

2. Amazon RDS Custom DB 인스턴스에서 initVIS.ora 파일을 편집합니다. thtm의 모든 파라미터를 검증하고 필요에 따라 파라미터를 추가합니다. 자세한 내용은 Oracle Support 문서 396009.1을 참조하세요.

중요: 추가하는 파라미터에 설명이 없는지 확인합니다. 주석은 읽기 전용 복제본 생성 및 point-in-time 복구(PITRs)와 같은 자동화 문제를 일으킬 수 있습니다.

3. 요구 사항에 따라 다음과 유사한 파라미터를 initVIS.ora 파일에 추가합니다.

*.workarea_size_policy='AUTO' *.plsql_code_type='INTERPRETED' *.cursor_sharing='EXACT' *._b_tree_bitmap_plans=FALSE *.session_cached_cursors=500 *.optimizer_adaptive_features=false *.optimizer_secure_view_merging=false *.SQL92_SECURITY=TRUE *.temp_undo_enabled=true _system_trig_enabled = TRUE nls_language = american nls_territory = america nls_numeric_characters = ".," nls_comp = binary nls_sort = binary nls_date_format = DD-MON-RR nls_length_semantics = BYTE aq_tm_processes = 1 _sort_elimination_cost_ratio =5 _like_with_bind_as_equality = TRUE _fast_full_scan_enabled = FALSE _b_tree_bitmap_plans = FALSE optimizer_secure_view_merging = FALSE _optimizer_autostats_job = FALSE parallel_max_servers = 8 parallel_min_servers = 0 parallel_degree_policy = MANUAL sec_case_sensitive_logon = FALSE compatible = 12.1.0 o7_dictionary_accessibility = FALSE utl_file_dir =/tmp

4. 다음을 수정합니다. 값은 소스 시스템에 따라 달라지므로 현재 설정에 따라 수정합니다.

*.open_cursors=500 *.undo_tablespace='APPS_UNDOTS1

5. SPFILE 참조를 제거합니다.

*.spfile='/rdsdbbin/oracle/dbs/spfileVIS.ora'

참고:

  • control_files 및에 대한 Amazon RDS Custom PFILE에서 제공하는 값을 변경하지 마세요db_unique_name. Amazon RDS는 이러한 값을 기대합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.

  • Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. 거대 메모리를 사용하려면 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다. 

  • memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. Amazon RDS 프레임워크는 백그라운드에서 이를 사용하여 읽기 전용 복제본을 생성합니다.

6. startup nomount 명령을 실행하여 initVIS.ora 파일에 문제가 없는지 확인합니다.

SQL> startup nomount pfile=/rdsdbbin/oracle/dbs/initVIS.ora; SQL> create spfile='/rdsdbdata/admin/VIS/pfile/spfileVIS.ora' from pfile; SQL> exit

7. SPFILE용 심볼 링크를 생성합니다.

$ ln -s /rdsdbdata/admin/VIS/pfile/spfileVIS.ora $ORACLE_HOME/dbs/

Oracle 19c의 경우:

1. /rdsdbdata/config/oracle_pfile$ORACLE_HOME에 복사합니다.

$ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVISCDB.ora

2. Amazon RDS Custom DB 인스턴스에서 initVISCDB.ora 파일을 편집합니다. thtm의 모든 파라미터를 검증하고 필요에 따라 파라미터를 추가합니다. 자세한 내용은 Oracle Support 문서 396009.1을 참조하세요.

중요: 추가하는 파라미터에 설명이 없는지 확인합니다.  주석이 있는 경우 읽기 전용 복제본 생성 및 point-in-time 복구(PITRs)와 같은 자동화 문제가 발생합니다.

3. 요구 사항에 따라 다음과 유사한 파라미터를 initVISCDB.ora 파일에 추가합니다.

*.instance_name=VISCDB *.sec_case_sensitive_logon= FALSE *.result_cache_max_size = 600M *.optimizer_adaptive_plans =TRUE *.optimizer_adaptive_statistics = FALSE *.pga_aggregate_limit = 0 *.temp_undo_enabled = FALSE *._pdb_name_case_sensitive = TRUE *.event='10946 trace name context forever, level 8454144' *.workarea_size_policy='AUTO' *.plsql_code_type='INTERPRETED' *.cursor_sharing='EXACT' *._b_tree_bitmap_plans=FALSE *.session_cached_cursors=500 *.optimizer_secure_view_merging=false *.SQL92_SECURITY=TRUE _system_trig_enabled = TRUE nls_language = american nls_territory = america nls_numeric_characters = ".," nls_comp = binary nls_sort = binary nls_date_format = DD-MON-RR nls_length_semantics = BYTE aq_tm_processes = 1 _sort_elimination_cost_ratio =5 _like_with_bind_as_equality = TRUE _fast_full_scan_enabled = FALSE _b_tree_bitmap_plans = FALSE optimizer_secure_view_merging = FALSE _optimizer_autostats_job = FALSE parallel_max_servers = 8 parallel_min_servers = 0 parallel_degree_policy = MANUAL

4. 다음을 수정합니다. 값은 소스 시스템에 따라 달라지므로 현재 설정에 따라 수정합니다.

*.open_cursors=500 *.undo_tablespace='UNDOTBS1'

5. SPFILE 참조를 제거합니다.

*.spfile='/rdsdbbin/oracle/dbs/spfileVISCDB.ora'

참고:

  • control_files 및에 대한 Amazon RDS Custom PFILE에서 제공하는 값을 변경하지 마세요db_unique_name. Amazon RDS는 이러한 값을 기대합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.

  • Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. 거대 메모리를 사용하려면 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다. 

  • memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. Amazon RDS 프레임워크는 백그라운드에서 이를 사용하여 읽기 전용 복제본을 생성합니다.

6. startup nomount 명령을 실행하여 initVISCDB.ora 파일에 문제가 없는지 확인합니다.

SQL> startup nomount pfile=/rdsdbbin/oracle/dbs/initVISCDB.ora; SQL> create spfile='/rdsdbdata/admin/VISCDB/pfile/spfileVISCDB.ora' from pfile; SQL> exit

7. SPFILE용 심볼 링크를 생성합니다.

$ ln -s /rdsdbdata/admin/VISCDB/pfile/spfileVISCDB.ora $ORACLE_HOME/dbs/
DBA

백업에서 Amazon RDS Custom 데이터베이스를 복원합니다.

Oracle 12.1.0.2의 경우:

1. 이전에 소스에서 캡처한 백업 파일을 사용하여 제어 파일을 복원합니다.

RMAN> connect target / RMAN> RESTORE CONTROLFILE FROM '/RMAN/visdb_full_bkp_100rlsbt'; Starting restore at 10-APR-22 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=201 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/rdsdbdata/db/VIS_A/controlfile/control-01.ctl Finished restore at 10-APR-22

2. RMAN restore를 발행할 수 있도록 백업 조각의 카탈로그를 작성합니다.

RMAN> alter database mount; RMAN> catalog start with '/RMAN/visdb';

3. 데이터베이스를 복원하기 위한 스크립트를 생성합니다.

$ vi restore.sh rman target / log=/home/rdsdb/rman.log << EOF run { set newname for database to '/rdsdbdata/db/VIS_A/datafile/%b'; restore database; switch datafile all; switch tempfile all; } EOF

4. 소스를 대상 Amazon RDS Custom 데이터베이스로 복원합니다. 스크립트 실행을 허용하도록 스크립트 권한을 변경한 다음 restore.sh 스크립트를 실행하여 데이터베이스를 복원해야 합니다.

$ chmod 755 restore.sh $ nohup ./restore.sh &

Oracle 19c의 경우:

1. 이전에 소스에서 캡처한 백업 파일을 사용하여 제어 파일을 복원합니다.

RMAN> connect target / RMAN> RESTORE CONTROLFILE FROM '/RMAN/cntrl.bak'; Starting restore at 07-JUN-23 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=201 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/rdsdbdata/db/cdb/VISCDB_A/controlfile/control-01.ctl Finished restore at 07-JUN-23

2. RMAN restore를 발행할 수 있도록 백업 조각의 카탈로그를 작성합니다.

RMAN> alter database mount; RMAN> catalog start with '/RMAN/visdb';

start with 명령에 문제가 있는 경우 백업 조각을 개별적으로 추가할 수 있습니다. 예를 들면 다음과 같습니다. 

RMAN> catalog backuppiece '/RMAN/visdb_full_bkp_1d1e507m';

그런 다음 각 백업 조각에 대해 명령을 반복합니다.

3. 스크립트를 생성하여 데이터베이스를 복원합니다. 요구 사항에 따라 플러그 가능한 데이터베이스 이름을 수정합니다. 복원 프로세스의 속도를 높이는 데 사용할 수 있는 vCPUs 수를 기준으로 병렬 채널을 할당합니다.

$ vi restore.sh rman target / log=/home/rdsdb/rmancdb.log << EOF run { allocate channel c1 type disk; allocate channel c2 type disk; .... .... .... allocate channel c<N> type disk; set newname for database to '/rdsdbdata/db/cdb/VISCDB_A/datafile/%b'; set newname for database root to '/rdsdbdata/db/cdb/VISCDB_A/datafile/%f_%b'; set newname for database "PDB$SEED" to '/rdsdbdata/db/cdb/pdbseed/%f_%b'; set newname for pluggable database VIS to '/rdsdbdata/db/pdb/VISCDB_A/%f_%b'; restore database; switch datafile all; switch tempfile all; release channel c1; release channel c2; release channel c3; .... .... .... release channel c<N>; } EOF

4. 소스를 대상 Amazon RDS Custom 데이터베이스로 복원합니다. 스크립트 실행을 허용하도록 스크립트 권한을 변경한 다음 restore.sh 스크립트를 실행하여 데이터베이스를 복원해야 합니다.

$ chmod 755 restore.sh $ nohup ./restore.sh &
DBA

로그 파일에 문제가 있는지 확인합니다.

Oracle 12.1.0.2의 경우:

1. rman.log 파일을 검토하여 문제가 없는지 확인합니다.

$ cat /home/rdsdb/rman.log

2. 제어 파일에 등록된 로그 파일의 경로를 확인합니다.

SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /d01/oracle/VIS/data/log1.dbf /d01/oracle/VIS/data/log2.dbf /d01/oracle/VIS/data/log3.dbf

3. 대상의 파일 경로와 일치하도록 로그 파일 이름을 바꿉니다. 경로를 이전 단계의 출력과 일치하도록 바꿉니다.

SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log1.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log1.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log2.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log2.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log3.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log3.dbf';

Oracle 19c의 경우:

1. rmancdb.log 파일을 검토하여 문제가 없는지 확인합니다.

$ cat /home/rdsdb/rmancdb.log

2. 제어 파일에 등록된 로그 파일의 경로를 확인합니다.

SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /d01/oracle/VIS/oradata/VISCDB/redo03.log /d01/oracle/VIS/oradata/VISCDB/redo02.log /d01/oracle/VIS/oradata/VISCDB/redo01.log

3. 대상의 파일 경로와 일치하도록 로그 파일 이름을 바꿉니다. 경로를 이전 단계의 출력과 일치하도록 바꿉니다.

SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo01.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo02.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo03.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf';

4. 제어 파일에 등록된 경로, 로그 파일 상태 및 그룹 번호를 확인합니다.

SQL> column REDOLOG_FILE_NAME format a50 SQL> SELECT a.GROUP#, a.status, b.MEMBER AS REDOLOG_FILE_NAME, (a.BYTES/1024/1024) AS SIZE_MB FROM v$log a JOIN v$logfile b ON a.Group#=b.Group# ORDER BY a.GROUP#; GROUP# STATUS REDOLOG_FILE_NAME SIZE_MB 1 CURRENT /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf 512 2 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf 512 3 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf 512
DBA

Amazon RDS Custom 데이터베이스를 열고 OMF 로그 파일을 생성할 수 있는지 확인합니다.

Amazon RDS Custom for Oracle은 Oracle Managed Files(OMF)를 사용하여 작업을 간소화합니다. 읽기 전용 복제본을 독립 실행형 인스턴스로 승격할 수 있지만 먼저 OMF를 사용하여 로그 파일을 생성해야 합니다. 이는 인스턴스가 승격될 때 올바른 경로가 사용되도록 하기 위한 것입니다. 읽기 전용 복제본을 승격하는 방법에 대한 자세한 내용은 Amazon RDS 설명서를 참조하세요. OMF 파일을 사용하지 않으면 읽기 전용 복제본을 승격하려고 할 때 문제가 발생할 수 있습니다.

1. resetlogs를 사용하여 데이터베이스를 엽니다.

SQL> alter database open resetlogs;

참고: ORA-00392 오류가 표시되면 스레드 1의 로그 xx가 지워지고 작업이 허용되지 않는 경우 ORA-00392 문제 해결 섹션의 단계를 따릅니다.

2. 데이터베이스가 열려 있는지 확인합니다.

SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE

3. OMF 로그 파일을 생성합니다. 이전 로그파일 쿼리의 출력을 사용하여 요구 사항에 따라 그룹 번호, 그룹 수 및 크기를 변경합니다. 다음 예제는 단순화를 위해 그룹 4에서 시작하여 세 개의 그룹을 추가합니다.

SQL> alter database add logfile group 4 size 512M; Database altered. SQL> alter database add logfile group 5 size 512M; Database altered. SQL> alter database add logfile group 6 size 512M; Database altered.

4. 이전 비OMF 파일을 삭제합니다. 다음은 이전 단계에서 요구 사항과 쿼리 결과를 기반으로 사용자 지정할 수 있는 예제입니다.

SQL> alter database drop logfile group 1; System altered. SQL> alter database drop logfile group 2; System altered. SQL> alter database drop logfile group 3; System altered.

참고: 로그 파일을 삭제하려고 할 때 ORA-01624 오류가 발생하면 문제 해결 섹션을 참조하세요.

5. 생성된 OMF 파일을 볼 수 있는지 확인합니다. (디렉터리 경로는 Oracle 12.1.0.2와 19c이 서로 다르지만 개념은 동일합니다.)

SQL> select member from v$logfile; MEMBER ----------------------------------------------------- /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_4_ksrbslny_.log /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_5_ksrchw0k_.log /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_6_ksrcnl9v_.log

6. 데이터베이스를 다시 시작하고 인스턴스에서 SPFILE를 사용하고 있는지 확인합니다.

SQL> shutdown immediate SQL> startup SQL> show parameter spfile

Oracle 12.1.0.2의 경우 이 쿼리는 다음을 반환합니다.

spfile /rdsdbbin/oracle/dbs/spfileVIS.ora

Oracle 19c의 경우 쿼리는 다음을 반환합니다.

spfile /rdsdbbin/oracle/dbs/spfileVISCDB.ora

7. Oracle 19c의 경우에만 컨테이너 데이터베이스의 상태를 확인하고 필요한 경우 엽니다.

SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------- ---------- 2 PDB$SEED READ ONLY NO 3 VIS MOUNTED NO SQL> alter session set container=VIS; Session altered. SQL> alter database open; Database altered. SQL> alter database save state; Database altered. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----- 3 VIS READ WRITE NO SQL> exit

8. PFILE를 사용하지 $ORACLE_HOME/dbs않으므로에서 init.ora 파일을 삭제합니다.

$ cd $ORACLE_HOME/dbs

Oracle 12.1.0.2의 경우 다음 명령을 사용합니다.

$ pwd /rdsdbbin/oracle/dbs $ rm initVIS.ora

Oracle 19c의 경우 다음 명령을 사용합니다.

$ pwd /rdsdbbin/oracle/dbs $ rm initVISCDB.ora
DBA
작업설명필요한 기술

Secrets Manager에서 암호를 검색합니다.

콘솔에서 또는 AWS CLI를 사용하여 이러한 단계를 수행할 수 있습니다. 다음 단계는 콘솔에 대한 지침을 제공합니다.

1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

2. 탐색 창에서 데이터베이스를 선택한 다음 Amazon RDS 데이터베이스를 선택합니다.

3. 구성을 선택하고 인스턴스의 리소스 ID(형식: db-WZ4WLCK6AOQ6TJGZKMGRCDCI3Y)를 기록합니다.

4. AWS에서 https://console.aws.amazon.com/secretsmanager/ Secrets Manager 콘솔을 엽니다.

5. do-not-delete-custom-<resource_id>와 같은 이름을 가진 암호를 선택합니다. 여기서 resource-id 는 3단계에서 기록해 둔 인스턴스의 ID를 나타냅니다.

6. 보안 암호 값 검색을 선택합니다.

DBA

RDSADMIN 사용자를 생성합니다.

RDSADMIN는 Amazon RDS Custom DB 인스턴스의 모니터링 및 오케스트레이터 데이터베이스 사용자입니다. 스타터 데이터베이스가 삭제되고 대상 데이터베이스가 RMAN를 사용하여 소스에서 복원되었으므로 복원 작업 후이 사용자를 다시 생성하여 Amazon RDS Custom 모니터링이 예상대로 작동하는지 확인해야 합니다. 또한 RDSADMIN 사용자를 위한 별도의 프로필과 테이블스페이스를 생성해야 합니다. Oracle 12.1.0.2와 19c 지침은 약간 다릅니다.

Oracle 12.1.0.2의 경우:

1. SQL 프롬프트에 다음 명령을 입력합니다.

SQL> set echo on feedback on serverout on SQL> @?/rdbms/admin/utlpwdmg.sql SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;

2. RDSADMIN 프로필을 생성합니다.

SQL> create profile RDSADMIN LIMIT COMPOSITE_LIMIT UNLIMITED SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED IDLE_TIME UNLIMITED CONNECT_TIME UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME 86400/86400 PASSWORD_GRACE_TIME 604800/86400;

3. SYS, SYSTEM, DBSNMP 사용자 프로필을 RDSADMIN과 같이 설정합니다.

SQL> set echo on feedback on serverout on SQL> alter user SYS profile RDSADMIN; SQL> alter user SYSTEM profile RDSADMIN; SQL> alter user DBSNMP profile RDSADMIN;

4. RDSADMIN 테이블스페이스를 생성합니다.

SQL> create bigfile tablespace rdsadmin datafile size 7M autoextend on next 1m Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;

5. RDSADMIN 사용자를 생성합니다. RDSADMIN 암호를 이전에 Secrets Manager에서 얻은 암호로 바꿉니다.

SQL> create user rdsadmin identified by xxxxxxxxxx Default tablespace rdsadmin Temporary tablespace temp profile rdsadmin ;

6. RDSADMIN에 권한을 부여합니다.

SQL> grant select on sys.v_$instance to rdsadmin; SQL> grant select on sys.v_$archived_log to rdsadmin; SQL> grant select on sys.v_$database to rdsadmin; SQL> grant select on sys.v_$database_incarnation to rdsadmin; SQL> grant select on dba_users to rdsadmin; SQL> grant alter system to rdsadmin; SQL> grant alter database to rdsadmin; SQL> grant connect to rdsadmin with admin option; SQL> grant resource to rdsadmin with admin option; SQL> alter user rdsadmin account unlock identified by xxxxxxxxxxx; SQL> @?/rdbms/admin/userlock.sql SQL> @?/rdbms/admin/utlrp.sql

Oracle 19c의 경우:

1. SQL 프롬프트에 다음 명령을 입력합니다.

SQL> set echo on feedback on serverout on SQL> @?/rdbms/admin/utlpwdmg.sql SQL> alter profile default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;

2. RDSADMIN 프로필을 생성합니다.

참고: Oracle 19c에서 RDSADMIN에 접두사 C##이 붙습니다. 이는 데이터베이스 파라미터 common_user_prefixC##으로 설정되었기 때문입니다. Oracle 12.1.0.2에서는 RDSADMIN에 접두사가 없습니다.

SQL> create profile C##RDSADMIN LIMIT COMPOSITE_LIMIT UNLIMITED SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED IDLE_TIME UNLIMITED CONNECT_TIME UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME 86400/86400 PASSWORD_GRACE_TIME 604800/86400;

3. SYS, SYSTEM, DBSNMP 사용자 프로필을 RDSADMIN과 같이 설정합니다.

SQL> alter user SYS profile C##RDSADMIN; SQL> alter user SYSTEM profile C##RDSADMIN; SQL> alter user DBSNMP profile C##RDSADMIN;

4. RDSADMIN 테이블스페이스를 생성합니다.

SQL> create bigfile tablespace rdsadmin datafile size 7M autoextend on next 1m Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;

5. RDSADMIN 사용자를 생성합니다. RDSADMIN 암호를 이전에 Secrets Manager에서 얻은 암호로 바꿉니다.

SQL> create user C##rdsadmin identified by xxxxxxxxxx profile C##rdsadmin container=all;

6. RDSADMIN에 권한을 부여합니다.

SQL> grant select on sys.v_$instance to c##rdsadmin; SQL> grant select on sys.v_$archived_log to c##rdsadmin; SQL> grant select on sys.v_$database to c##rdsadmin; SQL> grant select on sys.v_$database_incarnation to c##rdsadmin; SQL> grant select on dba_users to c##rdsadmin; SQL> grant alter system to C##rdsadmin; SQL> grant alter database to C##rdsadmin; SQL> grant connect to C##rdsadmin with admin option; SQL> grant resource to C##rdsadmin with admin option; SQL> alter user C##rdsadmin account unlock identified by xxxxxxxxxxx; SQL> @?/rdbms/admin/userlock.sql SQL> @?/rdbms/admin/utlrp.sql
DBA

마스터 사용자를 생성합니다.

Word를 사용하여 스타터 데이터베이스가 삭제되고 대상 데이터베이스가 소스에서 복원되었으므로 마스터 사용자를 다시 생성RMAN해야 합니다. 이 예제에서 마스터 사용자 이름은 admin입니다.

Oracle 12.1.0.2의 경우:

SQL> create user admin identified by <password>; SQL> grant dba to admin

Oracle 19c의 경우:

SQL> alter session set container=VIS; Session altered. SQL> create user admin identified by <password>; User created. SQL> grant dba to admin; Grant succeeded.
DBA

수퍼 유저 암호를 변경합니다.

1. Secrets Manager에서 검색한 암호를 사용하여 시스템 암호를 변경합니다.

Oracle 12.1.0.2의 경우:

SQL> alter user sys identified by xxxxxxxxxxx; SQL> alter user system identified by xxxxxxxxxx;

Oracle 19c의 경우:

SQL> alter user sys identified by xxxxxxxxxxx container=all; SQL> alter user system identified by xxxxxxxxxx container=all;
  1. EBS_SYSTEM 암호를 변경합니다.

Oracle 12.1.0.2의 경우:

SQL> alter user ebs_system identified by xxxxxxxxxx;

Oracle 19c의 경우:

이 버전의 경우 컨테이너 데이터베이스에도 연결하여 EBS_SYSTEM 암호를 업데이트해야 합니다.

SQL> alter session set container=vis; SQL> alter user ebs_system identified by xxxxxxxxxx; SQL> exit;

이러한 암호를 변경하지 않으면 Amazon RDS Custom에 데이터베이스 모니터링 사용자 또는 사용자 보안 인증 정보가 변경되었습니다라는 오류 메시지가 표시됩니다.

DBA
작업설명필요한 기술

Oracle E-Business Suite에 필요한 디렉터리를 생성합니다.

1. Amazon RDS Custom Oracle 데이터베이스에서 Oracle 홈 사용자로 다음 스크립트를 실행하여에서 9idata 디렉터리를 생성합니다$ORACLE_HOME/nls/data/9idata. 이 디렉터리는 Oracle E-Business Suite에 필요합니다.

perl $ORACLE_HOME/nls/data/old/cr9idata.pl

이후 단계에서 컨텍스트 지원 환경을 생성하므로 ORA_NLS10 메시지는 무시합니다.

2. 공유 Amazon EFS appsutil.tar 파일 시스템에서 이전에 생성한 파일을 복사하고 Amazon RDS Custom Oracle 홈 디렉터리에서 언타딩합니다.  그러면 $ORACLE_HOME 디렉터리에 appsutil 디렉터리가 생성됩니다.

$ cd /RMAN/appsutil $ cp sourceappsutil.tar $ORACLE_HOME $ cd $ORACLE_HOME $ tar xvf sourceappsutil.tar appsutil

3. 이전에 Amazon EFS 공유 appsutil.zip 파일 시스템에 저장한 파일을 복사합니다.  이 파일은 애플리케이션 계층에서 생성한 파일입니다.

Amazon RDS Custom DB 인스턴스의 rdsdb 사용자:

$ cp /RMAN/appsutil/appsutil.zip $ORACLE_HOME $ cd $ORACLE_HOME

4. appsutil.zip 파일의 압축을 풀어 Oracle Home에 appsutil 디렉터리 및 하위 디렉터리를 생성합니다.

$ unzip -o appsutil.zip

-o 옵션은 일부 파일을 덮어쓰게 됨을 의미합니다.

tsanames.ora 및 sqlnet.ora 파일을 구성합니다.

자동 구성 도구를 사용하여 데이터베이스에 연결할 수 있도록 tnsnames.ora 파일을 구성해야 합니다. 다음 예제에서는 tnsnames.ora 파일이 소프트링크되어 있지만 기본적으로 파일이 비어 있는 것을 볼 수 있습니다.

$ cd $ORACLE_HOME/network/admin $ ls -ltr -rw-r--r-- 1 rdsdb database 373 Oct 31 2013 shrept.lst lrwxrwxrwx 1 rdsdb database 30 Feb 9 17:17 listener.ora -> /rdsdbdata/config/listener.ora lrwxrwxrwx 1 rdsdb database 28 Feb 9 17:17 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora lrwxrwxrwx 1 rdsdb database 30 Feb 9 17:17 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora

1. tnsnames.ora 항목을 생성합니다. Amazon RDS 자동화가 파일을 구문 분석하는 방식 때문에 항목에 공백, 주석 또는 추가 줄이 없는지 확인해야 합니다. 그렇지 않으면 Word-replica와 같은 일부 APIs를 사용할 때 문제가 발생할 수 있습니다. create-db-instance-read 다음 템플릿을 예로 사용합니다.   

2. 요구 사항에 따라 포트, 호스트 및 SID를 교체합니다.

$ vi tnsnames.ora VIS=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=xx.xx.xx.xx)))(CONNECT_DATA=(SID=VIS)(SERVER=DEDICATED)))

참고: 파일에는 추가 행이 없어야 합니다. 행을 제거하지 않으면 나중에 읽기 전용 복제본을 생성할 때 문제가 발생할 수 있습니다. 읽기 전용 복제본 생성이 실패할 수 있으며,이 경우 모든 호스트에서 Activity threw exception: HostManagerException: cannot successfully call restrictReplication 오류 메시지가 표시됩니다.

3. 데이터베이스에 연결할 수 있는지 확인합니다.

$ tnsping vis OK (0 msec)

4. Oracle 19c의 경우에만 sqlnet.ora 파일을 업데이트합니다. 이렇게 하지 않으면 ORA-01017 오류가 발생합니다. 잘못된 사용자 이름/암호, 데이터베이스에 연결하려고 할 때 로그온이 거부됩니다. 다음과 일치하도록 $ORACLE_HOME/network/adminsqlnet.ora를 편집합니다.

NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME) SQLNET.EXPIRE_TIME= 10 SQLNET.INBOUND_CONNECT_TIMEOUT =60 SQLNET.ALLOWED_LOGON_VERSION_SERVER=10 HTTPS_SSL_VERSION=undetermined

5. 연결 테스트:

$ sqlplus apps/****@vis
DBA

데이터베이스를 구성합니다.

이제 데이터베이스 연결을 테스트했으므로 appsutil 유틸리티를 사용하여 데이터베이스를 구성하여 컨텍스트 지원 환경을 만들 수 있습니다.

Oracle 12.1.0.2의 경우:

1. 다음 명령을 실행합니다.

$ cd $ORACLE_HOME/appsutil/bin $ perl adbldxml.pl appsuser=apps Enter Hostname of Database server: oebs-db01 Enter Port of Database server: 1521 Enter SID of Database server: VIS Enter Database Service Name: VIS Enter the value for Display Variable: :1 The context file has been created at: /rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml

2. 루트 사용자로 oraInst.loc을 생성합니다.

$ vi /etc/oraInst.loc inventory_loc=/rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInventory inst_group=database

3. 이전 단계에서 생성한 컨텍스트 파일을 복제하여 논리적 호스트 이름을 설정합니다. rdsdb 사용자로 다음을 실행합니다.

$ cd $ORACLE_HOME/appsutil/clone/bin $ perl adclonectx.pl \ contextfile=[ORACLE_HOME]/appsutil/[current context file] \ template=[ORACLE_HOME]/appsutil/template/adxdbctx.tmp

여기서 oebs-db01log는 논리적 호스트 이름을 나타냅니다. 예제:

$ perl adclonectx.pl \ contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/VIS_oebs-db01.xml \ template=/rdsdbbin/oracle/appsutil/template/adxdbctx.tmp Target System Hostname (virtual or normal) [oebs-db01] : oebs-db01log Target System Base Directory : /rdsdbbin/oracle Target Instance is RAC (y/n) [n] : n Target System Database SID : VIS Oracle OS User [rdsdb] : Oracle OS Group [rdsdb] : database Role separation is supported y/n [n] ? : n Target System utl_file_dir Directory List : /tmp Number of DATA_TOP's on the Target System [1] : Target System DATA_TOP Directory 1 [/rdsdbbin/oracle/data] : /rdsdbdata/db/VIS_A/datafile/ Target System RDBMS ORACLE_HOME Directory [/rdsdbbin/oracle/12.1.0] : /rdsdbbin/oracle Do you want to preserve the Display [:1] (y/n) : y Do you want the target system to have the same port values as the source system (y/n) [y] ? : y The new database context file has been created : /rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml

Oracle 19c의 경우:

1. 다음 명령을 실행합니다.

$ cd $ORACLE_HOME/appsutil/bin $ perl adbldxml.pl appsuser=apps Enter Hostname of Database server: oebs-db01 Enter Port of Database server: 1521 Enter SID of Database server: VIS Enter the database listener name:L_VISCDB_001 Enter the value for Display Variable: :1 The context file has been created at: /rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml

2. 루트 사용자로 oraInst.loc을 생성합니다.

$ vi /etc/oraInst.loc inventory_loc=/rdsdbbin/oracle/oraInventory inst_group=database

3. 이전 단계에서 생성한 컨텍스트 파일을 복제하여 논리적 호스트 이름을 설정합니다. rdsdb 사용자로 다음을 실행합니다.

$ cd $ORACLE_HOME/appsutil/clone/bin $ perl adclonectx.pl \ contextfile=[ORACLE_HOME]/appsutil/[current context file] \ template=[ORACLE_HOME]/appsutil/template/adxdbctx.tmp

여기서 oebs-db01log는 논리적 호스트 이름을 나타냅니다. 예제:

$ perl adclonectx.pl \ contextfile=/rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml \ template=/rdsdbbin/oracle/appsutil/template/adxdbctx.tmp Target System Hostname (virtual or normal) [oebs-db01] : oebs-db01log Target System Base Directory : /rdsdbbin/oracle Target Instance is RAC (y/n) [n] : n Target System CDB Name : VISCDB Target System PDB Name : VIS Oracle OS User [oracle] : rdsdb Oracle OS Group [dba] : database Role separation is supported y/n [n] ? : n Number of DATA_TOP's on the Target System [2] : Target System DATA_TOP Directory 1 [/d01/oracle/VISCDB] : /rdsdbdata/db/pdb/VISCDB_A Target System DATA_TOP Directory 2 [/d01/oracle/data] : /rdsdbdata/db/pdb/VISCDB_A/datafile Specify value for OSBACKUPDBA group [database] : Specify value for OSDGDBA group [database] : Specify value for OSKMDBA group [database] : Specify value for OSRACDBA group [database] : Target System RDBMS ORACLE_HOME Directory [/d01/oracle/19.0.0] : /rdsdbbin/oracle Do you want to preserve the Display [:1] (y/n) : y Do you want the target system to have the same port values as the source system (y/n) [y] ? : y Validating if the source port numbers are available on the target system.. Complete port information available at /rdsdbbin/oracle/appsutil/clone/bin/out/VIS_oebs-db01log/portpool.lst New context path and file name [VIS_oebs-db01log.xml] : /rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml Do you want to overwrite it (y/n) [n] ? : y Replacing /rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml file. The new database context file has been created : contextfile=/rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml Check Clone Context logfile /rdsdbbin/oracle/appsutil/clone/bin/CloneContext_0609141428.log for details.
DBA

ETCC를 설치하고 Autoconfig를 실행합니다.

1. Oracle E-Business Suite Technology Codelevel Checker(ETCC)를 설치합니다. 

My Oracle Support에서 패치 17537119를 다운로드하고 README.txt의 지침을 따릅니다. $ORACLE_HOME 디렉터리에 etcc라는 디렉터리를 만들고 패치의 압축을 풀어 checkMTpatch.sh 스크립트를 만든 다음 스크립트를 실행하여 패치 버전을 확인합니다.

2. 자동 구성 유틸리티를 실행하고 새 논리적 호스트 이름 컨텍스트 파일을 전달합니다.

Oracle 12.1.0.2의 경우:

cd $ORACLE_HOME/appsutil/bin $ ./adconfig.sh contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml

Oracle 19c의 경우:

자동 구성에서는 리스너 이름이 CDBNAME과 일치할 것으로 예상합니다. 따라서 백업된 원본 리스너 구성 파일은 L_<CDBNAME>_001을 일시적으로 사용합니다.

$ lsnrctl stop L_VISCDB_001 $ cp -rp /rdsdbdata/config/listener.ora /rdsdbdata/config/listener.ora_orig $ vi /rdsdbdata/config/listener.ora :%s/L_VISCDB_001/VISCDB/g $ lsnrctl start VISCDB $ cd /rdsdbbin/oracle/appsutil $ . ./txkSetCfgCDB.env dboraclehome=/rdsdbbin/oracle.19.custom.r1.EE-CDB.1 Oracle Home being passed: /rdsdbbin/oracle $ echo $ORACLE_HOME /rdsdbbin/oracle.19.custom.r1.EE-CDB.1 $ export ORACLE_SID=VISCDB $ cd $ORACLE_HOME/appsutil/bin $ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -cdbsid=VISCDB -pdbsid=VIS -appsuser=apps -dbport=1521 -servicetype=onpremise Enter the APPS Password: <apps password> Enter the CDB SYSTEM Password:<password from secrets manager>

참고: 데이터베이스 디렉터리가 변경된 경우 Oracle Support 문서 2525754.1의 지침을 따릅니다.

DBA
작업설명필요한 기술

Amazon TNS Custom 및 Oracle E-Business Suite에 대한 RDS 항목을 구성합니다.

Autoconfig는 기본 위치에 TNS ifile을 생성합니다. Oracle 12.1.0.2(CDB 이외) 및 Oracle19c PDB의 경우 기본 위치는 입니다$ORACLE_HOME/network/admin/$<CONTEXT_NAME>. CDB for Oracle 19c는 이전 단계에서 Autoconfig를 실행할 때 생성되는 환경 파일$TNS_ADMIN에서에 $ORACLE_HOME/network/admin/정의된 기본를 사용합니다.

Oracle 12.1.0.2 및 19c CDB의 경우 Autoconfig에서 생성된 tnsnames.oralistener.ora 파일은 공백이나 주석이 없는 등 Amazon RDS 요구 사항을 준수하지 않으므로 이러한를 사용하지 않습니다. 대신 Amazon RDS Custom 데이터베이스와 함께 제공된 일반 파일을 사용하여 시스템이 기대하는 사항을 준수하고 오류 마진을 줄일 수 있습니다. 

예를 들어 Amazon RDS Custom에는 다음과 같은 이름 지정 형식이 필요합니다.

L_<INSTANCE_NAME>_001

Oracle 12.1.0.2의 경우 다음과 같습니다.

L_VIS_001

Oracle 19c의 경우 다음과 같습니다.

L_VISCDB_001

사용할 listener.ora 파일의 예는 다음과 같습니다. 이는 Amazon RDS Custom 데이터베이스를 생성할 때 생성되었습니다. 지금은 이 파일을 변경하지 않았으므로 이 파일을 기본값으로 유지해야 합니다.

Oracle 12.1.0.2의 경우:

$ cd $ORACLE_HOME/network/admin $ cat listener.ora ADR_BASE_L_VIS_001=/rdsdbdata/log/ SID_LIST_L_VIS_001=(SID_LIST = (SID_DESC = (SID_NAME = VIS)(GLOBAL_DBNAME = VIS) (ORACLE_HOME = /rdsdbbin/oracle))) L_VIS_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = xx.xx.xx.xx))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 127.0.0.1)))) SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_VIS_001=OFF

Oracle 19c의 경우: 리스너 이름 L_<INSTANCE_NAME>_001을 사용하여 원본 listener.ora 파일을 복원합니다.

$ cd $ORACLE_HOME/network/admin $ cp -rp /rdsdbdata/config/listener.ora /rdsdbdata/config/listener.ora_autoconfig $ cp -rp /rdsdbdata/config/listener.ora_orig /rdsdbdata/config/listener.ora $ cat listener.ora SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_VISCDB_001=OFF ADR_BASE_L_VISCDB_001=/rdsdbdata/log/ USE_SID_AS_SERVICE_L_VISCDB_001=ON L_VISCDB_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = xx.xx.xx.xx))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 127.0.0.1)))) SID_LIST_L_VISCDB_001=(SID_LIST = (SID_DESC = (SID_NAME = VISCDB)(GLOBAL_DBNAME = VISCDB) (ORACLE_HOME = /rdsdbbin/oracle)))

표준 Amazon RDS 작업을 L_<INSTANCE_NAME>_001 위한 리스너 시작:

$ lsnrctl stop $ lsnrctl start L_VISCDB_001

Oracle 12.1.0.2의 경우:

Oracle E-Business Suite 환경 파일을 편집하여 Amazon RDS Custom 일반 TNS ifiles를 사용하도록 $TNS_ADMIN 경로를 변경합니다. 환경 파일은 이전에 자동 구성을 실행할 때 생성되었습니다. <CONTEXT_NAME> 접미사를 제거하여 TNS_ADMIN 변수를 편집합니다. 

참고: 19c의 기본 홈은 Amazon RDS Custom의 기본 홈과 동일한 $ORACLE_HOME/network/admin이므로 Oracle 12.1.0.2에서만 환경 파일을 편집해야 합니다.

예를 들어 Oracle 12.1.0.2에서 다음과 같이 파일을 편집합니다.

$ vi $ORACLE_HOME/VIS_oebs-db01log.env

경로를 다음과 같이 변경합니다. 

TNS_ADMIN=”/rdsdbbin/oracle/network/admin/VIS_oebs-db01log” export TNS_ADMIN

변경 후:

TNS_ADMIN=”/rdsdbbin/oracle/network/admin” export TNS_ADMIN

참고: Autoconfig를 실행할 때마다이 단계를 반복하여 올바른 TNS ifile이 사용되고 있는지 확인해야 합니다. (12.1.0.2만 해당).

Oracle 19c의 경우:

1. 데이터베이스 계층 컨텍스트 변수 s_cdb_tnsadmin의 값을 <ORACLE_HOME>/network/admin 대신 <ORACLE_HOME>/network/admin/<CONTEXT_NAME>으로 변경합니다.

참고: s_db_tnsadmin 컨텍스트 변수를 업데이트하지 않습니다. <ORACLE_HOME>/network/admin/<CONTEXT_NAME>으로 놓습니다.

$ . $ORACLE_HOME/VIS_oebs-db01log.env $ vi $CONTEXT_FILE

2. s_cdb_tnsadmin 값에 대한 변경 사항을 저장합니다.

s_db_tnsadmin 및의 값은 다음과 비슷해야 s_cdb_tnsadmin 하며 Word PDB 이름은 로, VIS 데이터베이스 노드 논리적 이름은 로 표시됩니다oebs-db01log.

$ grep -i tns_admin $CONTEXT_FILE <TNS_ADMIN oa_var="s_db_tnsadmin">/rdsdbbin/oracle/network/admin/VIS_oebs-db01log</TNS_ADMIN> <CDB_TNS_ADMIN oa_var="s_cdb_tnsadmin">/rdsdbbin/oracle/network/admin</CDB_TNS_ADMIN>

3. 데이터베이스 계층에서 자동 구성을 실행합니다.

$ . $ORACLE_HOME/VISCDB_oebs-db01log.env $ export ORACLE_PDB_SID=VIS $ sqlplus "/ as sysdba" @$ORACLE_HOME/appsutil/admin/adgrants.sql APPS $ sqlplus "/ as sysdba" @$ORACLE_HOME/rdbms/admin/utlrp.sql $ . $ORACLE_HOME/VIS_oebs-db01log.env $ echo $ORACLE_SID VIS $ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ ./adautocfg.sh
DBA

rdsdb 사용자를 위한 환경을 설정합니다.

Oracle 19c 버전의 경우 이 단계를 건너뜁니다.

Oracle 12.1.0.2의 경우:

이제 Autoconfig 및 TNS 항목을 완료했으므로 rdsdb사용자 프로필에 설정하여 환경 파일을 로드해야 합니다.

Oracle E-Business Suite 데이터베이스 .env 파일을 호출하도록 .bash_profile을 업데이트합니다. 환경이 로드되도록 프로필을 업데이트해야 합니다. 이 환경 파일은 이전에 자동 구성을 실행할 때 생성되었습니다.

다음 예제 환경 파일은 자동 구성을 실행할 때 생성됩니다.

. /rdsdbbin/oracle/VIS_oebs-db01log.env

rdsdb 사용자로 다음을 수행합니다.

cd $HOME vi .bash_profile export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORACLE_HOME}/ctx/lib export SHLIB_PATH=${ORACLE_HOME}/lib export PATH=$PATH:${ORACLE_HOME}/bin alias sql=’rlwrap -c sqlplus / as sysdba’ . ${ORACLE_HOME}/VIS_oebs-db01log.env

참고: Oracle 19c의 경우에서 CDB 환경을 로드할 필요가 없습니다.bash_profile. 이는 ORACLE_HOME 기본값이 rdsdb(Oracle Home) 사용자의 기본 홈인 $ORACLE_HOME/network/admin 기본 경로로 설정되어 있기 때문입니다.

DBA

Amazon RDS Custom용 애플리케이션 및 데이터베이스를 구성합니다.

Oracle 12.1.0.2와 19c 모두에 대해 처음 두 단계를 완료합니다. 후속 단계는 각 버전마다 다릅니다.

1. 애플리케이션 계층에서 데이터베이스의 IP 주소를 편집/etc/hosts하고 Amazon RDS 사용자 지정 IP 주소로 변경합니다.

xx.xx.xx.xx OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log

논리적 호스트 이름을 사용하기 때문에 데이터베이스 노드를 거의 순조롭게 교체할 수 있습니다.

2. Amazon RDS Custom DB 인스턴스에서 소스 EC2 인스턴스에 할당된 보안 그룹을 추가하거나 수정하여 애플리케이션이 노드에 액세스할 수 RDS 있도록 합니다.

Oracle 12.1.0.2의 경우:

3. 자동 구성을 실행합니다. 애플리케이션 소유자(예: applmgr)로 다음을 실행합니다.

$ cd $INST_TOP/admin/scripts $ ./adautocfg.sh AutoConfig completed successfully.

4. fnd_nodes 항목을 확인합니다.

SQL> select node_name from apps.fnd_nodes NODE_NAME -------------------------------------------------------------------------------- AUTHENTICATION OEBS-APP01LOG OEBS-DB01LOG

5. 로그인할 수 있는지 확인하고 애플리케이션을 시작합니다.

$ ./adstrtal.sh

Oracle 19c의 경우:

  1. PDB가 열려 있는지 확인하고 필요한 경우 엽니다.

SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 VIS MOUNTED SQL> alter session set container=vis; SQL> alter database open; SQL> alter database save state;

2. apps으로 연결을 테스트합니다.

SQL> sqlplus apps/****@vis

3. 데이터베이스 계층에서 자동 구성을 실행합니다.

$ . $ORACLE_HOME/VIS_oebs-db01log.env $ echo $ORACLE_SID VIS $ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ ./adautocfg.sh

4. 애플리케이션 소유자(예: applmgr)로 애플리케이션 계층에서 자동 구성을 실행합니다.

$ cd $INST_TOP/admin/scripts $ ./adautocfg.sh AutoConfig completed successfully.

5. fnd_nodes 항목을 확인합니다.

SQL> select node_name from apps.fnd_nodes NODE_NAME -------------------------------------------------------------------------------- AUTHENTICATION OEBS-APP01LOG OEBS-DB01LOG

6. 애플리케이션을 시작합니다.

$ ./adstrtal.sh
DBA
작업설명필요한 기술

자동화를 재개하여 제대로 작동하는지 확인합니다.

다음 CLI AWS Word 명령을 사용하여 자동화를 재개합니다.

aws rds modify-db-instance \ --db-instance-identifier vis \ --automation-mode full \

이제 데이터베이스는 Amazon RDS Custom에서 관리합니다. 예를 들어 리스너 또는 데이터베이스가 다운되면 Amazon RDS Custom 에이전트가 데이터베이스를 다시 시작합니다. 이를 테스트하려면 다음과 같은 명령을 실행합니다.

리스너 중지 예제:

-bash-4.2$ lsnrctl stop vis

데이터베이스 종료 예제:

SQL> shutdown immediate;
DBA

스키마, 연결 및 유지 관리 작업을 검증합니다.

마이그레이션을 완료하려면 최소한 다음 작업을 수행해야 합니다.

  • FS_CLONE을 실행하여 패치 파일 시스템을 동기화합니다.

  • 스키마 통계를 수집합니다. 

  • 외부 인터페이스와 시스템이 새 Amazon RDS Custom 데이터베이스에 연결할 수 있는지 확인합니다.

  • 백업 및 유지 관리 일정을 설정합니다.

  • 파일 시스템을 전환하기 위한 전환 기능을 실행하여 AD Online Patching(ADOP)이 예상대로 작동하는지 확인합니다.

DBA

문제 해결

문제Solution

로그 파일을 삭제하려고 하면 ORA-01624 오류가 발생합니다.

로그 파일을 삭제하려고 할 때 ORA-01624 오류가 발생하면 다음 단계를 따르세요.

다음 명령을 실행하고 삭제하려는 로그 파일의 상태가 INACTIVE가 될 때까지 기다립니다. V$log의 상태 코드에 대한 자세한 내용은 Oracle 설명서를 참조하세요. 다음은 예제 명령과 해당하는 출력입니다.

SQL> select group#, status from v$log; GROUP# STATUS ---------- ---------------- 1 ACTIVE 2 CURRENT 3 UNUSED 4 UNUSED 5 UNUSED 6 UNUSED 6 rows selected.

이 예제에서는 로그 파일 1이 ACTIVE이므로 이전에 추가한 첫 번째 새 로그 파일의 상태가 CURRENT가 되도록 로그 파일을 세 번 강제 전환해야 합니다.

SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered.

다음 예제와 같이 삭제하려는 로그 파일이 모두 INACTIVE가 될 때까지 기다린 다음 DROP LOGFILE 명령을 실행합니다.

SQL> select group#, status from v$log; GROUP# STATUS ---------- ---------------- 1 INACTIVE 2 INACTIVE 3 INACTIVE 4 CURRENT 5 UNUSED 6 UNUSED 6 rows selected.

로 데이터베이스를 열면 ORA-00392 오류가 발생합니다resetlogs.

ORA-00392 오류가 표시되면 스레드 1의 로그 xx가 지워지고 작업이 허용되지 않습니다. 다음 명령을 실행한 다음(xx로그 파일 번호로 교체) 열기 resetlogs 명령을 다시 실행합니다.

SQL> alter database clear logfile group xx; SQL> alter database open resetlogs;

시스템 관리자 또는 애플리케이션 사용자로 애플리케이션에 연결하는 데 문제가 있습니다.

문제를 확인하려면 다음 SQL 쿼리를 실행합니다.

SQL> select dbms_java.get_jdk_version() from dual; select dbms_java.get_jdk_version() from dual ERROR at line 1: ORA-29548: Java system class reported: release of Java system classes in the database (19.0.0.0.220719 1.8) does not match that of the oracle executable (19.0.0.0.0 1.8)

근본 원인: 소스 데이터베이스가 여러 패치로 적용되었지만 Amazon RDS CustomDB_HOME이 새로 설치되었거나 CEV를 생성할 때 OJVM와 같은 필요한 RSU 패치를 사용하지 않았기 때문에 CEV에 모든 패치가 포함되지 않았습니다. 이를 검증하려면 소스 패치 세부 정보가 $ORACLE_HOME/sqlpath, $ORACLE_HOME/.patch_storage및에 나열되어 있는지 확인하세요opatch – lsinventory.

참조: datapatch -verbose Fails with Error :" Patch xxxxxx: Archived Patch Directory Is Empty" (Doc ID 2235541.1)

수정: 소스($ORACLE_HOME/sqlpatch/)에서 누락된 패치 관련 파일을 Amazon RDS Custom($ORACLE_HOME/sqlpatch/)에 복사한 다음를 다시 실행합니다./datapatch -verbose.

예제:

-bash-4.2$ cp -rp 18793246 20204035 20887355 22098146 22731026 $ORACLE_HOME/sqlpatch/

또는 CDB 및 PDB에서 다음 명령을 실행하여 해결 방법을 사용할 수 있습니다.

@?/javavm/install/update_javavm_db.sql

그런 다음 PDB에서 다음 명령을 실행합니다.

sql> alter session set container=vis; @?/javavm/install/update_javavm_db.sql

이제 테스트를 다시 실행합니다.

SQL> select dbms_java.get_jdk_version() from dual;

관련 리소스

추가 정보

유지 관리 작업

Oracle E-Business Suite 데이터베이스 홈에 새로운 패치 적용

빈 볼륨(/rdsdbbin)이 out-of-place 업그레이드이므로 CEV 업그레이드 중에 빈 볼륨의 내용이 삭제됩니다. 따라서 CEV를 사용하여 업그레이드를 수행하기 전에 appsutil 디렉터리 사본을 생성해야 합니다.

소스 Amazon RDS Custom 인스턴스에서 CEV를 업그레이드하기 전에의 백업을 수행합니다$ORACLE_HOME/appsutil.

참고:이 예제에서는 NFS 볼륨을 사용합니다. 하지만 Amazon Simple Storage Service(Amazon S3)에 대한 복사본을 대신 사용할 수 있습니다.

1. 소스 Amazon RDS Custom 인스턴스에 appsutil을 저장할 디렉터리를 만듭니다.

$ mkdir /RMAN/appsutil.preupgrade

2. Tar 및 Amazon EFS 볼륨으로 복사:

$ tar cvf /RMAN/appsutil.preupgrade appsutil

3. Tar 파일이 존재하는지 확인합니다.

$ bash-4.2$ ls -l /RMAN/appsutil.preupgrade -rw-rw-r-- 1 rdsdb rdsdb 622981120 Feb  8 20:16 appsutil.tar

4. Amazon CEV 설명서의 CEV Custom DB 인스턴스 업그레이드의 지침에 따라 최신 RDS(사전 요구 사항 RDS가 이미 생성됨)로 업그레이드합니다.

OPATCH를 사용하여 직접 패치할 수도 있습니다. Amazon RDS 설명서의 Oracle 업그레이드용 Word Custom에 대한 요구 사항 및 고려 사항 섹션을 참조하세요. RDS

참고: CEV 패치 적용 프로세스 중에는 호스트 시스템의 IP 주소가 변경되지 않습니다. 이 프로세스는 out-of-place 업그레이드를 수행하며, 시작 중에 새 빈 볼륨이 동일한 인스턴스에 연결됩니다.