당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.
사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.
쿠키 기본 설정 사용자 지정
AWS는 다음과 같은 목적으로 쿠키 및 유사한 도구(총칭하여 "쿠키")를 사용합니다.
필수
필수 쿠키는 AWS 사이트 및 서비스를 제공하는 데 필요하며, 비활성화할 수 없습니다. 일반적으로 개인 정보 보호 기본 설정, 로그인 또는 양식 작성 등 사이트 내에서 사용자가 수행한 작업에 상응하는 쿠키가 설정됩니다.
성능
성능 쿠키는 AWS에서 사이트 경험 및 성능을 개선할 수 있도록 고객이 AWS 사이트를 탐색하는 방법에 대한 익명의 통계를 제공합니다. 승인된 제3자가 AWS를 대신하여 분석을 수행할 수 있지만, 해당 데이터를 다른 특정 목적으로 사용할 수는 없습니다.
허용됨
기능
기능 쿠키는 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하며, 관련 콘텐츠를 표시하는 데 도움을 줍니다. 승인된 제3자가 이러한 쿠키를 설정하여 특정 사이트 기능을 제공할 수 있습니다. 이러한 쿠키를 허용하지 않으면 이러한 서비스 중 일부 또는 전체가 제대로 작동하지 않을 수 있습니다.
허용됨
광고
광고 쿠키는 AWS의 광고 파트너가 AWS 사이트를 통해 설정할 수 있으며, 관련 마케팅 콘텐츠를 제공하는 데 도움을 줍니다. 이러한 쿠키를 허용하지 않으면 관련성이 낮은 광고가 표시됩니다.
허용됨
일부 유형의 쿠키를 차단하면 AWS 사이트 경험이 영향을 받을 수 있습니다. 언제든지 이 사이트의 바닥글에서 [쿠키 기본 설정]을 클릭하여 해당하는 쿠키 기본 설정을 변경할 수 있습니다. AWS 사이트에서 AWS 및 승인된 제 3자가 쿠키를 사용하는 방법에 대한 자세한 내용은 AWS 쿠키 공지 사항을 참조하십시오.
쿠키 기본 설정을 저장할 수 없음
쿠키 기본 설정을 저장할 수 없어 지금은 필수 쿠키만 저장합니다.
쿠키 기본 설정을 변경하려면 나중에 AWS Console 바닥글의 링크를 사용하여 다시 시도하세요. 문제가 지속될 경우 지원 센터에 문의하세요.
Amazon RDS Custom for Oracle은 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 레거시, 커스텀 및 패키지 애플리케이션을 위한 관리형 데이터베이스 서비스입니다. 데이터베이스 관리 작업 및 운영을 자동화하고 데이터베이스 관리자가 데이터베이스 환경 및 운영 체제에 액세스하고 사용자 정의할 수 있도록 합니다. Oracle 데이터베이스를 Amazon RDS Custom으로 마이그레이션하면 Amazon Web Services(AWS)가 백업 작업과 같은 무거운 작업을 처리하고 고가용성을 보장하며, 사용자는 Oracle E-Business Suite 애플리케이션 및 기능을 유지 관리하는 데 집중할 수 있습니다. 마이그레이션에 대해 고려해야 할 주요 요소는 AWS 권장 가이드의 Oracle 데이터베이스 마이그레이션 전략을 참조하십시오.
이 패턴은 Oracle 복구 관리자(RMAN) 백업과 EC2 인스턴스와 Amazon RDS Custom 간의 Amazon Elastic File System(Amazon EFS) 공유 파일 시스템을 사용하여 Amazon EC2의 독립형 Oracle 데이터베이스를 Amazon RDS Custom으로 마이그레이션하는 단계를 중점적으로 다룹니다. 이 패턴은 RMAN 전체 백업(레벨 0 백업이라고도 함)을 사용합니다. 단순화를 위해 애플리케이션을 종료하고 데이터베이스가 마운트된 상태로 열려 있지 않은 콜드 백업을 사용합니다. (Oracle Data Guard 또는 RMAN 복제를 사용하여 백업할 수도 있습니다. 하지만 이 패턴에는 이러한 옵션이 포함되지 않습니다.
이 패턴은 Oracle 지원 정보에 대한 링크를 제공합니다. 이러한 문서에 액세스하려면 Oracle Support 계정이 필요합니다.
사전 조건 및 제한 사항
사전 조건
Oracle Linux 7 또는 Red Hat Enterprise Linux(RHEL) 버전 7.x가 설치된 Amazon EC2에서 실행되는 Oracle 버전 12.1.0.2 또는 19c(최소 19.3) 소스 데이터베이스. 이 패턴은 소스 데이터베이스 이름이 VIS이고 Oracle 19c의 추가 컨테이너 데이터베이스 이름이 VISCDB인 것으로 가정하지만 다른 이름을 사용할 수 있습니다.
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가 필요하지 않습니다.)
마이그레이션을 시작하기 전에 다음 단계를 완료해야 합니다.
Amazon RDS 콘솔에서 데이터베이스 이름 VIS(또는 소스 데이터베이스 이름)를 사용하여 Oracle DB용 Amazon RDS Custom 인스턴스를 생성합니다. 지침은 AWS 설명서의 Amazon RDS Custom 사용 및 Oracle용 Amazon RDS Custom – 데이터베이스 환경의 새로운 제어 기능 블로그 게시물을 참조하십시오. 이렇게 하면 데이터베이스 이름이 소스 데이터베이스와 동일한 이름으로 설정됩니다. (비워 두면 EC2 인스턴스 및 데이터베이스 이름이 ORCL로 설정됩니다.) 최소한 소스에 적용된 패치를 사용하여 사용자 지정 엔진 버전(CEV)을 생성해야 합니다. 자세한 내용은 Amazon RDS 설명서의 CEV 생성 준비를 참조하세요.
Oracle 19c에 대한 참고 사항: 현재 Oracle 19c의 경우 Amazon RDS 컨테이너 데이터베이스 이름을 사용자 지정할 수 있습니다. 기본값은 RDSCDB입니다. 소스 EC2 인스턴스와 동일한 시스템 ID(SID)를 사용하여 RDS Custom Oracle 인스턴스를 생성해야 합니다. 예를 들어 이 패턴에서는 Oracle 19c SID가 소스 인스턴스에 VISCDB로 있는 것으로 가정합니다. 따라서 Amazon RDS Custom 상의 대상 Oracle 19c SID도 VISCDB여야 합니다.
Amazon EC2 소스 데이터베이스와 일치하도록 충분한 스토리지, vCPU 및 메모리를 갖춘 Amazon RDS Custom DB 인스턴스를 구성합니다. 이를 위해 vCPU 및 메모리를 기반으로 Amazon EC2 인스턴스 유형을 일치시킬 수 있습니다.
Amazon EFS 파일 시스템을 생성하고 Amazon EC2 및 Amazon RDS Custom 인스턴스에 탑재합니다. 자세한 지침은 Oracle용 Amazon RDS Custom과 Amazon EFS 통합 블로그 게시물을 참조하세요. 이 패턴은 소스 Amazon EC2와 대상 Amazon RDS Custom DB 인스턴스 모두의 /RMAN에 Amazon EFS 볼륨을 탑재했으며 소스와 대상 간에 네트워크 연결이 가능하다고 가정합니다. Amazon FSx 또는 다른 공유 드라이브를 사용하여 동일한 방법을 사용할 수도 있습니다.
가정
이 패턴은 애플리케이션과 데이터베이스가 논리적 호스트 이름을 사용한다고 가정하므로 마이그레이션 단계 수가 줄어듭니다. 물리적 호스트 이름을 사용하도록 이러한 단계를 조정할 수 있지만 논리적 호스트 이름을 사용하면 마이그레이션 프로세스의 복잡성이 줄어듭니다. 논리적 호스트 이름 사용의 이점에 대한 자세한 내용은 다음 지원 노트를 참조하세요.
12c의 경우 Oracle Support Note 2246690.1
19c의 경우 Oracle Support Note 2617788.1
이 패턴은 Oracle 12c에서 19c로 업그레이드하는 시나리오를 다루지 않으며, Amazon EC2에서 실행되는 동일한 버전의 Oracle 데이터베이스를 Oracle용 Amazon RDS Custom으로 마이그레이션하는 데 중점을 둡니다.
Oracle용 Amazon RDS Custom은 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 위치 및 이름 변경(VISCDB가 CDB 이름인 경우 반드시 /rdsdbdata/db/VISCDB_A/controlfile/control-01.ctl이어야 함)
이러한 구성 및 기타 지원되지 않는 구성에 대한 추가 정보는 Amazon RDS 설명서의 지원되지 않는 구성 수정을 참조하세요.
다음 아키텍처 다이어그램은 AWS의 단일 가용 영역에서 실행되는 Oracle E-Business Suite 시스템을 나타냅니다. 애플리케이션 계층은 Application Load Balancer를 통해 액세스되며, 애플리케이션과 데이터베이스는 모두 프라이빗 서브넷에 있고, Amazon RDS Custom 및 Amazon EC2 데이터베이스 계층은 Amazon EFS 공유 파일 시스템을 사용하여 RMAN 백업 파일을 저장하고 액세스합니다.
도구
서비스
Amazon RDS Custom for Oracle은 기본 운영 체제 및 데이터베이스 환경에 액세스해야 하는 레거시, 커스텀 및 패키지 애플리케이션을 위한 관리형 데이터베이스 서비스입니다. 데이터베이스 관리 작업 및 운영을 자동화하고 데이터베이스 관리자가 데이터베이스 환경 및 운영 체제에 액세스하고 사용자 정의할 수 있도록 합니다.
Amazon Elastic File System(Amazon EFS)은 관리나 프로비저닝이 필요 없이 파일을 추가하고 제거할 수 있는 간단하고 서버리스이며 탄력적인 파일 시스템입니다. 이 패턴은 Amazon EFS 공유 파일 시스템을 사용하여 RMAN 백업 파일을 저장하고 액세스합니다.
AWS Secrets Manager는 데이터베이스 보안 인증, API 키, 기타 보안 암호를 손쉽게 교체, 관리, 검색할 수 있게 도와주는 AWS 관리형 서비스입니다. Amazon RDS Custom은 데이터베이스 생성 시 키 쌍과 데이터베이스 사용자 보안 인증 정보를 Secrets Manager에 저장합니다. 이 패턴에서는 Secrets Manager에서 데이터베이스 사용자 암호를 검색하여 RDSADMIN 및 ADMIN 사용자를 생성하고 시스템 및 시스템 암호를 변경합니다.
기타 도구
RMAN은 Oracle 데이터베이스에 대한 백업 및 복구 지원을 제공하는 도구입니다. 이 패턴은 RMAN을 사용하여 Amazon RDS Custom에서 복원된 Amazon EC2의 소스 Oracle 데이터베이스에 대한 콜드 백업을 수행합니다.
모범 사례
논리적 호스트 이름을 사용합니다. 이렇게 하면 실행해야 하는 사후 복제 스크립트의 수가 크게 줄어듭니다. 자세한 내용은 Oracle Support 문서 2246690.1을 참조하세요.
Amazon RDS Custom은 기본적으로 Oracle 자동 메모리 관리(AMM)를 사용합니다. Hugemem 커널을 사용하려는 경우, 자동 공유 메모리 관리(ASMM)를 대신 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.
memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. 프레임워크는 백그라운드에서 이 파라미터를 사용하여 읽기 전용 복제본을 생성합니다.
Oracle Flashback Database를 활성화합니다. 이 기능은 대기를 복원하기 위한 장애 조치(전환 아님) 테스트 시나리오에서 유용합니다.
데이터베이스 초기화 파라미터의 경우 Oracle 소스 데이터베이스의 SPFILE을 사용하는 대신 Oracle E-Business Suite용 Amazon RDS Custom DB 인스턴스에서 제공하는 표준 PFILE을 사용자 지정합니다. 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로 복사합니다.
$INST_TOP/admin/out에서 appsutil.zip을 공유 Amazon EFS 볼륨(/RMAN/appsutil)으로 복사합니다. 보안 복사(SCP) 또는 다른 전송 메커니즘을 사용하여 파일을 수동으로 전송할 수 있습니다.
DBA
소스 애플리케이션 종료
작업
설명
필요한 기술
애플리케이션을 종료합니다.
소스 애플리케이션을 종료하려면 다음 명령을 사용합니다.
$ 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로 복사합니다.
$INST_TOP/admin/out에서 appsutil.zip을 공유 Amazon EFS 볼륨(/RMAN/appsutil)으로 복사합니다. 보안 복사(SCP) 또는 다른 전송 메커니즘을 사용하여 파일을 수동으로 전송할 수 있습니다.
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------- ---- -- ---------- ----------- ------------ ---------------9Full1.11M DISK 00:00:0423-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
나중에 Amazon RDS Custom에서 데이터베이스를 복원할 때 /RMAN/visdb_full_bkp_100rlsbt 백업 파일을 사용하게 됩니다.
Oracle 19c의 경우:
RMAN>connect target /
RMAN> list backup of controlfile;
BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------38Full17.92M DISK 00:00:0125-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
소스 Amazon EC2 데이터베이스의 콜드 RMAN 전체 백업 수행
작업
설명
필요한 기술
백업 스크립트를 생성합니다.
공유 Amazon EFS 파일 시스템에 소스 데이터베이스의 RMAN 전체 백업을 수행합니다.
단순화를 위해 이 패턴은 콜드 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
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------- ---- -- ---------- ----------- ------------ ---------------9Full1.11M DISK 00:00:0423-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
나중에 Amazon RDS Custom에서 데이터베이스를 복원할 때 /RMAN/visdb_full_bkp_100rlsbt 백업 파일을 사용하게 됩니다.
Oracle 19c의 경우:
RMAN>connect target /
RMAN> list backup of controlfile;
BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------38Full17.92M DISK 00:00:0125-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 데이터베이스 호스트 파일에서 데이터베이스 및 애플리케이션 호스트 항목을 복사하는 것입니다.
3. Amazon RDS Custom DB 인스턴스를 다시 시작합니다. 이후 단계에서 데이터베이스가 삭제되므로 데이터베이스 종료는 걱정하지 마세요.
$ reboot
4. Amazon RDS Custom DB 인스턴스가 다시 가동되면 로그인하여 호스트 이름이 변경되었는지 확인합니다.
$ hostname
oebs-db01
DBA
Oracle E-Business Suite 소프트웨어를 설치합니다.
Oracle E-Business Suite 권장 RPM을 Amazon RDS Custom DB 인스턴스의 Oracle Home 위치에 설치합니다. 자세한 내용은 Oracle Support 문서 #1330701.1을 참조하세요. 다음은 목록의 일부입니다. RPM 목록은 각 릴리스마다 변경되므로 필요한 RPM이 모두 설치되어 있는지 확인합니다.
예제 CD가 더 이상 필요하지 않으므로 Oracle 19c에서이 단계를 생략할 수 있습니다. Oracle 지원 정보 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에 대한 액세스를 허용하는 데 필요한 네트워크 연결 및 방화벽 포트가 열려 있는지 확인해야 합니다. 예를 들어, display :1에서 실행 중인 VNC 서버는 Amazon RDS Custom EC2 호스트와 연결된 보안 그룹에서 포트 5901 개방이 필요합니다.
3. Amazon RDS Custom DB 인스턴스를 다시 시작합니다. 이후 단계에서 데이터베이스가 삭제되므로 데이터베이스 종료는 걱정하지 마세요.
$ reboot
4. Amazon RDS Custom DB 인스턴스가 다시 가동되면 로그인하여 호스트 이름이 변경되었는지 확인합니다.
$ hostname
oebs-db01
DBA
Oracle E-Business Suite 소프트웨어를 설치합니다.
Oracle E-Business Suite 권장 RPM을 Amazon RDS Custom DB 인스턴스의 Oracle Home 위치에 설치합니다. 자세한 내용은 Oracle Support 문서 #1330701.1을 참조하세요. 다음은 목록의 일부입니다. RPM 목록은 각 릴리스마다 변경되므로 필요한 RPM이 모두 설치되어 있는지 확인합니다.
예제 CD가 더 이상 필요하지 않으므로 Oracle 19c에서이 단계를 생략할 수 있습니다. Oracle 지원 정보 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에 대한 액세스를 허용하는 데 필요한 네트워크 연결 및 방화벽 포트가 열려 있는지 확인해야 합니다. 예를 들어, display :1에서 실행 중인 VNC 서버는 Amazon RDS Custom EC2 호스트와 연결된 보안 그룹에서 포트 5901 개방이 필요합니다.
control_files 및 db_unique_name에 대해 Amazon RDS Custom PFILE에서 제공한 값을 변경하지 않습니다. Amazon RDS는 이러한 값을 예상합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.
Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. Hugemem을 사용하려는 경우 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.
memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. Amazon RDS 프레임워크는 백그라운드에서 이를 사용하여 읽기 전용 복제본을 생성합니다.
6. startup nomount 명령을 실행하여 initVIS.ora 파일에 문제가 없는지 확인합니다.
4. 다음을 수정합니다. 값은 소스 시스템에 따라 달라지므로 현재 설정에 따라 수정합니다.
*.open_cursors=500
*.undo_tablespace='UNDOTBS1'
5. SPFILE 참조를 제거합니다.
*.spfile='/rdsdbbin/oracle/dbs/spfileVISCDB.ora'
참고:
control_files 및 db_unique_name에 대해 Amazon RDS Custom PFILE에서 제공한 값을 변경하지 않습니다. Amazon RDS는 이러한 값을 예상합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.
Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. Hugemem을 사용하려는 경우 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.
memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. Amazon RDS 프레임워크는 백그라운드에서 이를 사용하여 읽기 전용 복제본을 생성합니다.
6. startup nomount 명령을 실행하여 initVISCDB.ora 파일에 문제가 없는지 확인합니다.
3. 스크립트를 생성하여 데이터베이스를 복원합니다. 요구 사항에 따라 플러그 가능한 데이터베이스 이름을 수정합니다. 사용 가능한 vCPU 수에 따라 병렬 채널을 할당하여 복원 프로세스의 속도를 ㅂ높입니다.
$ 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 755restore.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> 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_MB1 CURRENT /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf 5122 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf 5123 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf 512
DBA
Amazon RDS Custom 데이터베이스를 열고 OMF 로그 파일을 생성할 수 있는지 확인합니다.
Oracle용 Amazon RDS Custom은 Oracle 관리 파일(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에서 시작하여 세 개의 그룹을 추가합니다.
4. OMF가 아닌 이전 파일은 삭제합니다. 다음은 이전 단계에서 요구 사항과 쿼리 결과를 기반으로 사용자 지정할 수 있는 예제입니다.
SQL>alter database drop logfile group1;
System altered.
SQL>alter database drop logfile group2;
System altered.
SQL>alter database drop logfile group3;
System altered.
참고
로그 파일을 삭제하려고 할 때 ORA-01624 오류가 발생하면 문제 해결 섹션을 참조하세요.
5. 생성된 OMF 파일을 볼 수 있는지 확인합니다. (디렉터리 경로는 Oracle 12.1.0.2와 19c이 서로 다르지만 개념은 동일합니다.)
control_files 및 db_unique_name에 대해 Amazon RDS Custom PFILE에서 제공한 값을 변경하지 않습니다. Amazon RDS는 이러한 값을 예상합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.
Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. Hugemem을 사용하려는 경우 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.
memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. Amazon RDS 프레임워크는 백그라운드에서 이를 사용하여 읽기 전용 복제본을 생성합니다.
6. startup nomount 명령을 실행하여 initVIS.ora 파일에 문제가 없는지 확인합니다.
4. 다음을 수정합니다. 값은 소스 시스템에 따라 달라지므로 현재 설정에 따라 수정합니다.
*.open_cursors=500
*.undo_tablespace='UNDOTBS1'
5. SPFILE 참조를 제거합니다.
*.spfile='/rdsdbbin/oracle/dbs/spfileVISCDB.ora'
참고:
control_files 및 db_unique_name에 대해 Amazon RDS Custom PFILE에서 제공한 값을 변경하지 않습니다. Amazon RDS는 이러한 값을 예상합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.
Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. Hugemem을 사용하려는 경우 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.
memory_max_target 파라미터는 기본적으로 활성화되어 있습니다. Amazon RDS 프레임워크는 백그라운드에서 이를 사용하여 읽기 전용 복제본을 생성합니다.
6. startup nomount 명령을 실행하여 initVISCDB.ora 파일에 문제가 없는지 확인합니다.
3. 스크립트를 생성하여 데이터베이스를 복원합니다. 요구 사항에 따라 플러그 가능한 데이터베이스 이름을 수정합니다. 사용 가능한 vCPU 수에 따라 병렬 채널을 할당하여 복원 프로세스의 속도를 ㅂ높입니다.
$ 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 755restore.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> 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_MB1 CURRENT /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf 5122 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf 5123 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf 512
DBA
Amazon RDS Custom 데이터베이스를 열고 OMF 로그 파일을 생성할 수 있는지 확인합니다.
Oracle용 Amazon RDS Custom은 Oracle 관리 파일(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에서 시작하여 세 개의 그룹을 추가합니다.
4. OMF가 아닌 이전 파일은 삭제합니다. 다음은 이전 단계에서 요구 사항과 쿼리 결과를 기반으로 사용자 지정할 수 있는 예제입니다.
SQL>alter database drop logfile group1;
System altered.
SQL>alter database drop logfile group2;
System altered.
SQL>alter database drop logfile group3;
System altered.
참고
로그 파일을 삭제하려고 할 때 ORA-01624 오류가 발생하면 문제 해결 섹션을 참조하세요.
5. 생성된 OMF 파일을 볼 수 있는지 확인합니다. (디렉터리 경로는 Oracle 12.1.0.2와 19c이 서로 다르지만 개념은 동일합니다.)
5. do-not-delete-custom-<resource_id>와 같은 이름을 가진 암호를 선택합니다. 여기서 resource-id 는 3단계에서 기록해 둔 인스턴스의 ID를 나타냅니다.
6. 보안 암호 값 검색을 선택합니다.
DBA
RDSADMIN 사용자를 생성합니다.
RDSADMIN은 Amazon RDS Custom DB 인스턴스의 모니터링 및 오케스트레이터 데이터베이스 사용자입니다. 시작 데이터베이스를 삭제하고 RMAN을 사용하여 대상 데이터베이스를 thtm에서 복원했으므로 복원 작업 후에 이 사용자를 다시 생성하여 Amazon RDS Custom 모니터링이 예상대로 작동하는지 확인해야 합니다. 또한 RDSADMIN 사용자를 위한 별도의 프로필과 테이블스페이스를 생성해야 합니다. Oracle 12.1.0.2와 19c 지침은 약간 다릅니다.
Oracle 12.1.0.2의 경우:
1. SQL 프롬프트에서 다음 명령을 입력합니다.
SQL>set echo on feedback on serverout onSQL> @?/rdbms/admin/utlpwdmg.sql
SQL>ALTER PROFILE DEFAULT
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
SQL>grantselecton sys.v_$instance to rdsadmin;
SQL>grantselecton sys.v_$archived_log to rdsadmin;
SQL>grantselecton sys.v_$database to rdsadmin;
SQL>grantselecton sys.v_$database_incarnation to rdsadmin;
SQL>grantselecton dba_users to rdsadmin;
SQL>grantaltersystemto rdsadmin;
SQL>grantalter database to rdsadmin;
SQL>grantconnectto rdsadmin with admin option;
SQL>grant resource to rdsadmin with admin option;
SQL>alteruser 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 onSQL> @?/rdbms/admin/utlpwdmg.sql
SQL>alter profile default
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
2. RDSADMIN 프로필을 생성합니다.
참고
RDSADMIN의 접두사는 Oracle 19cC##에 있습니다. 데이터베이스 파라미터common_user_prefix가 로 설정되어 있기 때문입니다C##. RDSADMIN의 접두사는 Oracle 12.1.0.2에 없습니다.
SQL> create bigfile tablespace rdsadmin datafile size 7M
autoextendon next 1m
Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;
5. RDSADMIN 사용자를 생성합니다. RDSADMIN 암호를 이전에 Secrets Manager에서 얻은 암호로 바꿉니다.
SQL>createuser C##rdsadmin identified by xxxxxxxxxx
profile C##rdsadmin container=all;
6. RDSADMIN에 권한을 부여합니다.
SQL>grantselecton sys.v_$instance to c##rdsadmin;
SQL>grantselecton sys.v_$archived_log to c##rdsadmin;
SQL>grantselecton sys.v_$database to c##rdsadmin;
SQL>grantselecton sys.v_$database_incarnation to c##rdsadmin;
SQL>grantselecton dba_users to c##rdsadmin;
SQL>grantaltersystemto C##rdsadmin;
SQL>grantalter database to C##rdsadmin;
SQL>grantconnectto C##rdsadmin with admin option;
SQL>grant resource to C##rdsadmin with admin option;
SQL>alteruser C##rdsadmin account unlock identified by xxxxxxxxxxx;
SQL> @?/rdbms/admin/userlock.sql
SQL> @?/rdbms/admin/utlrp.sql
DBA
마스터 사용자를 생성합니다.
시작 데이터베이스를 삭제하고 RMAN을 사용하여 소스 데이터베이스에서 대상 데이터베이스를 복원했으므로 마스터 사용자를 다시 만들어야 합니다. 이 예제에서 마스터 사용자 이름은 admin입니다.
Oracle 12.1.0.2의 경우:
SQL>createuser admin identified by<password>;
SQL>grant dba to admin
Oracle 19c의 경우:
SQL>alter session set container=VIS;
Session altered.
SQL>createuser admin identified by<password>;
User created.
SQL>grant dba to admin;
Grant succeeded.
DBA
수퍼 유저 암호를 변경합니다.
1. Secrets Manager에서 검색한 암호를 사용하여 시스템 암호를 변경합니다.
Oracle 12.1.0.2의 경우:
SQL>alteruser sys identified by xxxxxxxxxxx;
SQL>alterusersystem identified by xxxxxxxxxx;
Oracle 19c의 경우:
SQL>alteruser sys identified by xxxxxxxxxxx container=all;
SQL>alterusersystem identified by xxxxxxxxxx container=all;
EBS_SYSTEM 암호를 변경합니다.
Oracle 12.1.0.2의 경우:
SQL>alteruser ebs_system identified by xxxxxxxxxx;
Oracle 19c의 경우:
이 버전의 경우 컨테이너 데이터베이스에도 연결하여 EBS_SYSTEM 암호를 업데이트해야 합니다.
SQL>alter session set container=vis;
SQL>alteruser ebs_system identified by xxxxxxxxxx;
SQL> exit;
이러한 암호를 변경하지 않으면 Amazon RDS Custom에 데이터베이스 모니터링 사용자 또는 사용자 보안 인증 정보가 변경되었다는 오류 메시지가 표시됩니다.
DBA
Secrets Manager에서 암호를 검색하고, 사용자를 생성하고, 암호를 변경합니다.
작업
설명
필요한 기술
Secrets Manager에서 암호를 검색합니다.
콘솔에서 또는 AWS CLI를 사용하여 이러한 단계를 수행할 수 있습니다. 다음 단계는 콘솔에 대한 지침을 제공합니다.
5. do-not-delete-custom-<resource_id>와 같은 이름을 가진 암호를 선택합니다. 여기서 resource-id 는 3단계에서 기록해 둔 인스턴스의 ID를 나타냅니다.
6. 보안 암호 값 검색을 선택합니다.
DBA
RDSADMIN 사용자를 생성합니다.
RDSADMIN은 Amazon RDS Custom DB 인스턴스의 모니터링 및 오케스트레이터 데이터베이스 사용자입니다. 시작 데이터베이스를 삭제하고 RMAN을 사용하여 대상 데이터베이스를 thtm에서 복원했으므로 복원 작업 후에 이 사용자를 다시 생성하여 Amazon RDS Custom 모니터링이 예상대로 작동하는지 확인해야 합니다. 또한 RDSADMIN 사용자를 위한 별도의 프로필과 테이블스페이스를 생성해야 합니다. Oracle 12.1.0.2와 19c 지침은 약간 다릅니다.
Oracle 12.1.0.2의 경우:
1. SQL 프롬프트에서 다음 명령을 입력합니다.
SQL>set echo on feedback on serverout onSQL> @?/rdbms/admin/utlpwdmg.sql
SQL>ALTER PROFILE DEFAULT
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
SQL>grantselecton sys.v_$instance to rdsadmin;
SQL>grantselecton sys.v_$archived_log to rdsadmin;
SQL>grantselecton sys.v_$database to rdsadmin;
SQL>grantselecton sys.v_$database_incarnation to rdsadmin;
SQL>grantselecton dba_users to rdsadmin;
SQL>grantaltersystemto rdsadmin;
SQL>grantalter database to rdsadmin;
SQL>grantconnectto rdsadmin with admin option;
SQL>grant resource to rdsadmin with admin option;
SQL>alteruser 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 onSQL> @?/rdbms/admin/utlpwdmg.sql
SQL>alter profile default
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
2. RDSADMIN 프로필을 생성합니다.
참고
RDSADMIN의 접두사는 Oracle 19cC##에 있습니다. 데이터베이스 파라미터common_user_prefix가 로 설정되어 있기 때문입니다C##. RDSADMIN의 접두사는 Oracle 12.1.0.2에 없습니다.
SQL> create bigfile tablespace rdsadmin datafile size 7M
autoextendon next 1m
Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;
5. RDSADMIN 사용자를 생성합니다. RDSADMIN 암호를 이전에 Secrets Manager에서 얻은 암호로 바꿉니다.
SQL>createuser C##rdsadmin identified by xxxxxxxxxx
profile C##rdsadmin container=all;
6. RDSADMIN에 권한을 부여합니다.
SQL>grantselecton sys.v_$instance to c##rdsadmin;
SQL>grantselecton sys.v_$archived_log to c##rdsadmin;
SQL>grantselecton sys.v_$database to c##rdsadmin;
SQL>grantselecton sys.v_$database_incarnation to c##rdsadmin;
SQL>grantselecton dba_users to c##rdsadmin;
SQL>grantaltersystemto C##rdsadmin;
SQL>grantalter database to C##rdsadmin;
SQL>grantconnectto C##rdsadmin with admin option;
SQL>grant resource to C##rdsadmin with admin option;
SQL>alteruser C##rdsadmin account unlock identified by xxxxxxxxxxx;
SQL> @?/rdbms/admin/userlock.sql
SQL> @?/rdbms/admin/utlrp.sql
DBA
마스터 사용자를 생성합니다.
시작 데이터베이스를 삭제하고 RMAN을 사용하여 소스 데이터베이스에서 대상 데이터베이스를 복원했으므로 마스터 사용자를 다시 만들어야 합니다. 이 예제에서 마스터 사용자 이름은 admin입니다.
Oracle 12.1.0.2의 경우:
SQL>createuser admin identified by<password>;
SQL>grant dba to admin
Oracle 19c의 경우:
SQL>alter session set container=VIS;
Session altered.
SQL>createuser admin identified by<password>;
User created.
SQL>grant dba to admin;
Grant succeeded.
DBA
수퍼 유저 암호를 변경합니다.
1. Secrets Manager에서 검색한 암호를 사용하여 시스템 암호를 변경합니다.
Oracle 12.1.0.2의 경우:
SQL>alteruser sys identified by xxxxxxxxxxx;
SQL>alterusersystem identified by xxxxxxxxxx;
Oracle 19c의 경우:
SQL>alteruser sys identified by xxxxxxxxxxx container=all;
SQL>alterusersystem identified by xxxxxxxxxx container=all;
EBS_SYSTEM 암호를 변경합니다.
Oracle 12.1.0.2의 경우:
SQL>alteruser ebs_system identified by xxxxxxxxxx;
Oracle 19c의 경우:
이 버전의 경우 컨테이너 데이터베이스에도 연결하여 EBS_SYSTEM 암호를 업데이트해야 합니다.
SQL>alter session set container=vis;
SQL>alteruser ebs_system identified by xxxxxxxxxx;
SQL> exit;
이러한 암호를 변경하지 않으면 Amazon RDS Custom에 데이터베이스 모니터링 사용자 또는 사용자 보안 인증 정보가 변경되었다는 오류 메시지가 표시됩니다.
DBA
작업
설명
필요한 기술
Oracle E-Business Suite에 필요한 디렉터리를 생성합니다.
1. Amazon RDS Custom Oracle 데이터베이스에서 Oracle Home 사용자로 다음 스크립트를 실행하여 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 Home 디렉터리에서 압축을 풉니다. 그러면 $ORACLE_HOME 디렉터리에 appsutil 디렉터리가 생성됩니다.
$cd /RMAN/appsutil
$cp sourceappsutil.tar $ORACLE_HOME$cd$ORACLE_HOME$ tar xvf sourceappsutil.tar appsutil
3. 이전에 Amazon EFS 공유 파일 시스템에 저장한 appsutil.zip 파일을 복사합니다. 이 파일은 애플리케이션 계층에서 생성한 파일입니다.
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 312013 shrept.lst
lrwxrwxrwx 1 rdsdb database 30 Feb 917:17 listener.ora -> /rdsdbdata/config/listener.ora
lrwxrwxrwx 1 rdsdb database 28 Feb 917:17 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora
lrwxrwxrwx 1 rdsdb database 30 Feb 917:17 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora
1. tnsnames.ora 항목을 생성합니다. Amazon RDS 자동화가 파일을 파싱하는 방식 때문에 항목에 스페이스, 주석 또는 추가 행이 없어야 합니다. 그렇지 않으면 create-db-instance-read-replica와 같은 일부 API를 사용할 때 문제가 발생할 수 있습니다. 다음 템플릿을 예로 사용합니다.
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: Unable to successfully call restrictReplication on any hosts.
3. 데이터베이스에 연결할 수 있는지 확인합니다.
$ tnsping vis
OK (0 msec)
4. Oracle 19c의 경우에만sqlnet.ora 파일을 업데이트합니다. 이렇게 하지 않으면 데이터베이스에 연결하려고 할 때 ORA-01017: invalid username/password; logon denied 오류가 발생합니다. 다음과 일치하도록 $ORACLE_HOME/network/admin의 sqlnet.ora를 편집합니다.
이제 데이터베이스 연결을 테스트했으므로 appsutil 유틸리티를 사용하여 데이터베이스를 구성하여 컨텍스트 지원 환경을 만들 수 있습니다.
Oracle 12.1.0.2의 경우:
1. 다음 명령을 실행합니다.
$cd$ORACLE_HOME/appsutil/bin$perladbldxml.plappsuser=appsEnter Hostname of Database server:oebs-db01Enter Port of Database server:1521Enter SID of Database server:VISEnter Database Service Name:VISEnter the value for Display Variable::1The 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 사용자로 다음을 실행합니다.
$ 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 (virtualor normal) [oebs-db01] : oebs-db01log
Target System Base Directory : /rdsdbbin/oracle
Target Instance isRAC (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$perladbldxml.plappsuser=appsEnter Hostname of Database server:oebs-db01Enter Port of Database server:1521Enter SID of Database server:VISEnterthedatabaselistenername:L_VISCDB_001Enter the value for Display Variable::1The 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 사용자로 다음을 실행합니다.
$ 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를 설치하고 자동 구성을 실행합니다.
1. Oracle E-Business Suite 기술 코드 레벨 검사기(ETCC)를 설치합니다.
My Oracle Support에서 패치 17537119를 다운로드하고 README.txt의 지침을 따릅니다. $ORACLE_HOME 디렉터리에 etcc라는 디렉터리를 만들고 패치의 압축을 풀어 checkMTpatch.sh 스크립트를 만든 다음 스크립트를 실행하여 패치 버전을 확인합니다.
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 312013 shrept.lst
lrwxrwxrwx 1 rdsdb database 30 Feb 917:17 listener.ora -> /rdsdbdata/config/listener.ora
lrwxrwxrwx 1 rdsdb database 28 Feb 917:17 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora
lrwxrwxrwx 1 rdsdb database 30 Feb 917:17 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora
1. tnsnames.ora 항목을 생성합니다. Amazon RDS 자동화가 파일을 파싱하는 방식 때문에 항목에 스페이스, 주석 또는 추가 행이 없어야 합니다. 그렇지 않으면 create-db-instance-read-replica와 같은 일부 API를 사용할 때 문제가 발생할 수 있습니다. 다음 템플릿을 예로 사용합니다.
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: Unable to successfully call restrictReplication on any hosts.
3. 데이터베이스에 연결할 수 있는지 확인합니다.
$ tnsping vis
OK (0 msec)
4. Oracle 19c의 경우에만sqlnet.ora 파일을 업데이트합니다. 이렇게 하지 않으면 데이터베이스에 연결하려고 할 때 ORA-01017: invalid username/password; logon denied 오류가 발생합니다. 다음과 일치하도록 $ORACLE_HOME/network/admin의 sqlnet.ora를 편집합니다.
이제 데이터베이스 연결을 테스트했으므로 appsutil 유틸리티를 사용하여 데이터베이스를 구성하여 컨텍스트 지원 환경을 만들 수 있습니다.
Oracle 12.1.0.2의 경우:
1. 다음 명령을 실행합니다.
$cd$ORACLE_HOME/appsutil/bin$perladbldxml.plappsuser=appsEnter Hostname of Database server:oebs-db01Enter Port of Database server:1521Enter SID of Database server:VISEnter Database Service Name:VISEnter the value for Display Variable::1The 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 사용자로 다음을 실행합니다.
$ 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 (virtualor normal) [oebs-db01] : oebs-db01log
Target System Base Directory : /rdsdbbin/oracle
Target Instance isRAC (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$perladbldxml.plappsuser=appsEnter Hostname of Database server:oebs-db01Enter Port of Database server:1521Enter SID of Database server:VISEnterthedatabaselistenername:L_VISCDB_001Enter the value for Display Variable::1The 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 사용자로 다음을 실행합니다.
$ 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를 설치하고 자동 구성을 실행합니다.
1. Oracle E-Business Suite 기술 코드 레벨 검사기(ETCC)를 설치합니다.
My Oracle Support에서 패치 17537119를 다운로드하고 README.txt의 지침을 따릅니다. $ORACLE_HOME 디렉터리에 etcc라는 디렉터리를 만들고 패치의 압축을 풀어 checkMTpatch.sh 스크립트를 만든 다음 스크립트를 실행하여 패치 버전을 확인합니다.
자동 구성에서는 리스너 이름이 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 지원 정보 2525754.1의 지침을 따릅니다.
DBA
작업
설명
필요한 기술
Amazon RDS Custom 및 Oracle E-Business Suite에 대한 TNS 항목을 구성합니다.
자동 구성dl 기본 위치에 TNS 파일을 생성합니다. Oracle 12.1.0.2(CDB가 아님)와 Oracle19C PDB의 경우 기본 위치는 $ORACLE_HOME/network/admin/$<CONTEXT_NAME>입니다. Oracle 19c용 CDB는 이전 단계에서 자동 구성을 실행할 때 생성된 환경 파일에 $TNS_ADMIN으로 정의된 기본값 $ORACLE_HOME/network/admin/을 사용합니다.
Oracle 12.1.0.2 및 19c CDB의 경우 자동 구성으로 생성된 tnsnames.ora 및 listener.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 데이터베이스를 생성할 때 생성되었습니다. 지금은 이 파일을 변경하지 않았으므로 이 파일을 기본값으로 유지해야 합니다.
표준 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 파일을 사용할 $TNS_ADMIN 경로를 변경합니다. 환경 파일은 이전에 자동 구성을 실행할 때 생성되었습니다. <CONTEXT_NAME> 접미사를 제거하여 TNS_ADMIN 변수를 편집합니다.
참고
19c의 기본 홈은 Amazon RDS Custom의 기본 홈과 $ORACLE_HOME/network/admin동일한 이므로 Oracle 12.1.0.2에서만 환경 파일을 편집해야 합니다.
SQL>select node_name from apps.fnd_nodes
NODE_NAME
--------------------------------------------------------------------------------
AUTHENTICATION
OEBS-APP01LOG
OEBS-DB01LOG
6. 애플리케이션을 시작합니다.
$ ./adstrtal.sh
DBA
Amazon RDS Custom 및 Oracle E-Business Suite에 대한 TNS 항목을 구성
작업
설명
필요한 기술
Amazon RDS Custom 및 Oracle E-Business Suite에 대한 TNS 항목을 구성합니다.
자동 구성dl 기본 위치에 TNS 파일을 생성합니다. Oracle 12.1.0.2(CDB가 아님)와 Oracle19C PDB의 경우 기본 위치는 $ORACLE_HOME/network/admin/$<CONTEXT_NAME>입니다. Oracle 19c용 CDB는 이전 단계에서 자동 구성을 실행할 때 생성된 환경 파일에 $TNS_ADMIN으로 정의된 기본값 $ORACLE_HOME/network/admin/을 사용합니다.
Oracle 12.1.0.2 및 19c CDB의 경우 자동 구성으로 생성된 tnsnames.ora 및 listener.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 데이터베이스를 생성할 때 생성되었습니다. 지금은 이 파일을 변경하지 않았으므로 이 파일을 기본값으로 유지해야 합니다.
표준 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 파일을 사용할 $TNS_ADMIN 경로를 변경합니다. 환경 파일은 이전에 자동 구성을 실행할 때 생성되었습니다. <CONTEXT_NAME> 접미사를 제거하여 TNS_ADMIN 변수를 편집합니다.
참고
19c의 기본 홈은 Amazon RDS Custom의 기본 홈과 $ORACLE_HOME/network/admin동일한 이므로 Oracle 12.1.0.2에서만 환경 파일을 편집해야 합니다.
SQL>select node_name from apps.fnd_nodes
NODE_NAME
--------------------------------------------------------------------------------
AUTHENTICATION
OEBS-APP01LOG
OEBS-DB01LOG
6. 애플리케이션을 시작합니다.
$ ./adstrtal.sh
DBA
작업
설명
필요한 기술
자동화를 재개하여 제대로 작동하는지 확인합니다.
다음 AWS CLI 명령을 사용하여 자동화를 재개합니다.
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 온라인 패치(ADOP)가 예상대로 작동하는지 확인합니다.
DBA
마이그레이션 후 단계 수행
작업
설명
필요한 기술
자동화를 재개하여 제대로 작동하는지 확인합니다.
다음 AWS CLI 명령을 사용하여 자동화를 재개합니다.
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 온라인 패치(ADOP)가 예상대로 작동하는지 확인합니다.
DBA
문제 해결
문제
Solution
로그 파일을 삭제하려고 하면 ORA-01624 오류가 발생합니다.
로그 파일을 삭제하려고 할 때 ORA-01624 오류가 발생하는 경우 다음 단계를 따릅니다.
다음 명령을 실행하고 삭제하려는 로그 파일의 상태가 INACTIVE가 될 때까지 기다립니다. V$log의 상태 코드에 대한 자세한 내용은 Oracle 설명서를 참조하세요. 다음은 예제 명령과 해당하는 출력입니다.
SQL>selectgroup#, status from v$log;
GROUP# STATUS
---------- ----------------1 ACTIVE
2CURRENT3 UNUSED
4 UNUSED
5 UNUSED
6 UNUSED
6rows selected.
이 예제에서는 로그 파일 1이 ACTIVE이므로 이전에 추가한 첫 번째 새 로그 파일의 상태가 CURRENT가 되도록 로그 파일을 세 번 강제 전환해야 합니다.
SQL>altersystem switch logfile;
System altered.
SQL>altersystem switch logfile;
System altered.
SQL>altersystem switch logfile;
System altered.
다음 예제와 같이 삭제하려는 로그 파일이 모두 INACTIVE가 될 때까지 기다린 다음 DROP LOGFILE 명령을 실행합니다.
SQL>selectgroup#, status from v$log;
GROUP# STATUS
---------- ----------------1 INACTIVE
2 INACTIVE
3 INACTIVE
4CURRENT5 UNUSED
6 UNUSED
6rows selected.
resetlogs로 데이터베이스를 열면 ORA-00392 오류가 발생합니다.
error ORA-00392: log xx of thread 1 is being cleared, operation not allowed 오류를 수신하면 다음 명령(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.2207191.8) does not match that of the oracle executable (19.0.0.0.01.8)
근본 원인: 소스 데이터베이스에 여러 패치가 적용되었지만 Amazon RDS Custom DB_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를 다시 실행합니다.