기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 데이터베이스 마이그레이션 전략을 참조하세요.
이 패턴은 Oracle Recovery Manager(RMAN) 백업과 EC2 인스턴스와 Amazon EC2 RDS Custom 간의 Amazon Elastic File System(AmazonEFS) 공유 파일 시스템을 사용하여 Amazon의 독립형 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 with Oracle Linux 7 또는 Red Hat Enterprise Linux() 버전 7.x에서 실행되는 Oracle 버전 12.1.0.2 또는 19c(최소 19.3RHEL) 소스 데이터베이스입니다. 이 패턴은 소스 데이터베이스 이름이 VIS
이고 Oracle 19c의 추가 컨테이너 데이터베이스 이름이 VISCDB
인 것으로 가정하지만 다른 이름을 사용할 수 있습니다.
참고 : 온프레미스 네트워크와 Amazon Virtual Private Cloud(AmazonVPC) 간에 적절한 네트워크 연결이 있는 한 온프레미스 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가 필요하지 않습니다.)
마이그레이션을 시작하기 전에 다음 단계를 완료해야 합니다.
Amazon RDS 콘솔에서 데이터베이스 이름VIS
(또는 소스 데이터베이스 이름)으로 Amazon RDS Custom for Oracle DB 인스턴스를 생성합니다. 지침은 AWS 설명서의 Amazon RDS Custom 작업 및 Amazon RDS Custom for Oracle – Database Environment의 새로운 제어 기능 블로그 게시물을 참조하세요. 이렇게 하면 데이터베이스 이름이 소스 데이터베이스와 동일한 이름으로 설정됩니다. (빈 칸으로 두면 EC2 인스턴스 및 데이터베이스 이름이 로 설정됩니다ORCL
.) 최소한 소스에 적용된 패치를 사용하여 사용자 지정 엔진 버전(CEV)을 생성해야 합니다. 자세한 내용은 Amazon RDS 설명서의 생성 준비를 CEV 참조하세요.
Oracle 19c 참고 사항 : 현재 Oracle 19c의 경우 Amazon RDS 컨테이너 데이터베이스 이름을 사용자 지정할 수 있습니다. 기본값은 RDSCDB
입니다. 소스 인스턴스와 동일한 시스템 ID(SID)로 RDS Custom Oracle EC2 인스턴스를 생성해야 합니다. 예를 들어 이 패턴에서 Oracle 19cSID는 소스 인스턴스VISCDB
에 있는 것으로 간주됩니다. 따라서 SID Amazon RDS Custom의 대상 Oracle 19c도 이어야 합니다VISCDB
.
Amazon EC2 소스 데이터베이스와 일치하도록 충분한 스토리지, v CPU및 메모리로 Amazon RDS Custom DB 인스턴스를 구성합니다. 이렇게 하려면 vCPU 및 메모리를 기반으로 Amazon EC2 인스턴스 유형을 일치시킬 수 있습니다.
Amazon EFS 파일 시스템을 생성하고 Amazon EC2 및 Amazon RDS Custom 인스턴스에 탑재합니다. 지침은 Amazon RDS Custom for Oracle과 Amazon 블로그 게시물 통합EFS을 참조하세요. 이 패턴은 소스 Amazon EC2 및 대상 Amazon RDS Custom DB 인스턴스 /RMAN
모두에 Amazon EFS 볼륨을 탑재했으며 소스와 대상 간에 네트워크 연결이 가능하다고 가정합니다. Amazon FSx 또는 공유 드라이브를 사용하여 동일한 방법을 사용할 수도 있습니다.
가정
이 패턴은 애플리케이션과 데이터베이스가 논리적 호스트 이름을 사용한다고 가정하므로 마이그레이션 단계 수가 줄어듭니다. 물리적 호스트 이름을 사용하도록 이러한 단계를 조정할 수 있지만 논리적 호스트 이름을 사용하면 마이그레이션 프로세스의 복잡성이 줄어듭니다. 논리적 호스트 이름 사용의 이점에 대한 자세한 내용은 다음 지원 노트를 참조하세요.
이 패턴은 Oracle 12c에서 19c로의 업그레이드 시나리오를 다루지 않으며 Amazon에서 실행되는 동일한 버전의 Oracle 데이터베이스를 Amazon RDS Custom for Oracle로 마이그레이션EC2하는 데 중점을 둡니다.
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(AmazonEBS) 볼륨 수정
새 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 의 가용성 및 요구 사항을 참조하세요.
아키텍처
다음 아키텍처 다이어그램은 의 단일 가용 영역에서 실행되는 Oracle E-Business Suite 시스템을 나타냅니다AWS. 애플리케이션 계층은 Application Load Balancer를 통해 액세스되고, 애플리케이션과 데이터베이스는 모두 프라이빗 서브넷에 있으며, Amazon RDS Custom 및 Amazon EC2 데이터베이스 계층은 Amazon EFS 공유 파일 시스템을 사용하여 RMAN 백업 파일을 저장하고 액세스합니다.
AWS 서비스
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
사용자를 생성하고 시스템 및 시스템 암호를 변경합니다.
기타 도구
모범 사례
논리적 호스트 이름을 사용합니다. 이렇게 하면 실행해야 하는 사후 복제 스크립트의 수가 크게 줄어듭니다. 자세한 내용은 Oracle Support 문서 2246690.1을 참조하세요.
Amazon RDS Custom은 기본적으로 Oracle Automatic Memory Management(AMM)를 사용합니다. 거대 메모리 커널을 사용하려면 대신 자동 공유 메모리 관리(ASMM)를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다.
memory_max_target
파라미터는 기본적으로 활성화되어 있습니다. 프레임워크는 백그라운드에서 이 파라미터를 사용하여 읽기 전용 복제본을 생성합니다.
Oracle Flashback Database를 활성화합니다. 이 기능은 대기를 복원하기 위한 장애 조치(전환 아님) 테스트 시나리오에서 유용합니다.
데이터베이스 초기화 파라미터의 경우 Oracle 소스 데이터베이스의 를 사용하는 대신 Oracle E-Business Suite용 Amazon RDS Custom DB 인스턴스SPFILE에서 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. | 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 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
| 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 RDS Custom DB 인스턴스의 Oracle 홈 위치에 권장되는 RPMs Oracle E-Business Suite를 설치합니다. 자세한 내용은 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. 선택한 전송 메커니즘(예: )을 사용하여 예제 CD .zip 파일을 이 디렉터리에 복사합니다. SCP V100102-01.zip
4. 소유권을 rdsdb 로 변경합니다. $ chown -R rdsdb:rdsdb /RMAN/12cexamples
5. rdsdb 사용자로서 파일의 압축을 풉니다. $ unzip V10010201.zip
6. 클라이언트 및 Amazon RDS Custom에 액세스할 수 있는 VNC 클라이언트에서 연결합니다. 에 대한 액세스를 허용하는 데 필요한 네트워크 연결 및 방화벽 포트가 열려 있는지 확인합니다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 |
작업 | 설명 | 필요한 기술 |
---|
자동화 모드를 일시 중지합니다. | 자동화가 RMAN 활동을 방해하지 않도록 다음 단계를 진행하기 전에 Amazon RDS Custom DB 인스턴스의 자동화 모드를 일시 중지해야 합니다. 다음 AWS 명령줄 인터페이스(AWS CLI) 명령을 사용하여 자동화를 일시 중지합니다. (AWS먼저 를 구성CLI했는지 확인하세요.) 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 및 에 PFILE 대해 Amazon RDS Custom에서 제공하는 값을 변경하지 마세요db_unique_name . Amazon은 이러한 값을 RDS 기대합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.
Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. 거대한 메모리를 사용하려면 자동 공유 메모리 관리()를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다ASMM. 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 및 에 PFILE 대해 Amazon RDS Custom에서 제공하는 값을 변경하지 마세요db_unique_name . Amazon은 이러한 값을 RDS 기대합니다. 이러한 기준을 벗어나면 나중에 읽기 전용 복제본을 만들려고 할 때 문제가 발생할 수 있습니다.
Amazon RDS Custom은 기본적으로 자동 메모리 관리(AMM)를 사용합니다. 거대한 메모리를 사용하려면 자동 공유 메모리 관리()를 사용하도록 Amazon RDS Custom을 구성할 수 있습니다ASMM. 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. 를 사용하지 $ORACLE_HOME/dbs 않으므로 에서 init.ora 파일을 삭제합니다PFILE. $ 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 관리 콘솔에 로그인하고 에서 Amazon RDS 콘솔을 엽니다https://console.aws.amazon.com/rds/. 2. 탐색 창에서 데이터베이스 를 선택한 다음 Amazon RDS 데이터베이스를 선택합니다. 3. 구성을 선택하고 인스턴스의 리소스 ID(형식: db-WZ4WLCK6AOQ6TJGZKMGRCDCI3Y )를 기록합니다. 4. 에서 AWS Secrets Manager 콘솔을 엽니다https://console.aws.amazon.com/secretsmanager/. 5. do-not-delete-custom-<resource_id> 와 같은 이름을 가진 암호를 선택합니다. 여기서 resource-id 는 3단계에서 기록해 둔 인스턴스의 ID를 나타냅니다. 6. 보안 암호 값 검색을 선택합니다. | DBA |
RDSADMIN 사용자를 생성합니다. | RDSADMIN 는 Amazon RDS Custom DB 인스턴스의 모니터링 및 오케스트레이터 데이터베이스 사용자입니다. 스타터 데이터베이스가 삭제되고 를 사용하여 소스에서 대상 데이터베이스가 복원되었으므로 복원 작업 후 이 사용자를 다시 생성하여 Amazon RDS Custom 모니터링이 예상대로 작동하는지 확인해야 RMAN합니다. 또한 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_prefix 가 C## 으로 설정되었기 때문입니다. 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 |
마스터 사용자를 생성합니다. | 스타터 데이터베이스가 삭제되었고 를 사용하여 소스에서 대상 데이터베이스가 복원되었으므로 마스터 사용자를 다시 생성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;
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 appsutil.tar 파일 시스템에서 이전에 생성한 EFS 파일을 복사하고 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 자동화가 파일을 구문 분석하는 방식 때문에 항목에 공백, 주석 또는 추가 줄이 없는지 확인해야 합니다. 그렇지 않으면 -read-replicaAPIs와 같은 일부 를 사용할 때 문제가 발생할 수 있습니다. create-db-instance 다음 템플릿을 예로 사용합니다. 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)))
참고: 파일에는 추가 행이 없어야 합니다. 행을 제거하지 않으면 나중에 읽기 전용 복제본을 생성할 때 문제가 발생할 수 있습니다. 읽기 전용 복제본을 생성하지 못할 수 있으며 오류 메시지: 활동 스루 예외: HostManagerException: 호스트 restrictReplication 에서 성공적으로 호출할 수 없습니다. 3. 데이터베이스에 연결할 수 있는지 확인합니다. $ tnsping vis
OK (0 msec)
4. Oracle 19c의 경우에만 sqlnet.ora 파일을 업데이트합니다. 이렇게 하지 않으면 오류 ORA-01017이 발생합니다. 잘못된 사용자 이름/암호, 데이터베이스에 연결하려고 할 때 로그온이 거부됩니다. 다음과 일치하도록 $ORACLE_HOME/network/admin 의 sqlnet.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 |
AutoconfigETCC를 설치하고 실행합니다. | 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 RDS Custom 및 Oracle E-Business Suite에 대한 TNS 항목을 구성합니다. | Autoconfig는 기본 위치에 TNS ifile을 생성합니다. Oracle 12.1.0.2(비CDB) 및 Oracle19cPDB의 경우 기본 위치는 입니다$ORACLE_HOME/network/admin/$<CONTEXT_NAME> . CDB for Oracle 19c는 이전 단계에서 Autoconfig를 실행할 때 생성되는 환경 파일$TNS_ADMIN 에서 에 $ORACLE_HOME/network/admin/ 정의된 기본 를 사용합니다. Oracle 12.1.0.2 및 19c 의 경우 Autoconfig에서 생성된 tnsnames.ora 및 listener.ora 파일은 공백이나 주석이 없는 등 Amazon RDS 요구 사항을 준수하지 않으므로 이러한 를 CDB사용하지 않습니다. 대신 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 하며 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 Custom IP 주소로 변경합니다. xx.xx.xx.xx OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log
논리적 호스트 이름을 사용하기 때문에 데이터베이스 노드를 거의 순조롭게 교체할 수 있습니다. 2. Amazon RDS Custom DB 인스턴스에서 애플리케이션이 노드에 액세스할 수 있도록 소스 EC2 인스턴스에 할당된 보안 그룹을 추가하거나 수정하여 Amazon RDS Custom DB 인스턴스를 반영합니다. 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의 경우: 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 |
작업 | 설명 | 필요한 기술 |
---|
자동화를 재개하여 제대로 작동하는지 확인합니다. | 다음 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 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 은 새 설치이거나 를 생성할 OJVM때 와 같은 필수 RSU 패치를 사용하지 않았기 때문에 에 모든 패치가 CEV 포함되지 않았습니다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 업그레이드 중에 빈 볼륨의 내용이 삭제됩니다. 따라서 를 사용하여 업그레이드를 수행하기 전에 appsutil
디렉터리 사본을 생성해야 합니다CEV.
소스 Amazon RDS Custom 인스턴스에서 를 업그레이드하기 전에 를 백업CEV합니다$ORACLE_HOME/appsutil
.
참고 : 이 예제에서는 NFS 볼륨을 사용합니다. 하지만 Amazon Simple Storage Service(Amazon S3)에 대한 복사본을 대신 사용할 수 있습니다.
1. 원본 Amazon RDS Custom 인스턴스에 appsutil을 저장할 디렉터리를 만듭니다.
$ mkdir /RMAN/appsutil.preupgrade
2. 타르 및 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 RDS 설명서의 RDS 사용자 지정 DB 인스턴스 업그레이드의 지침에 따라 최신CEV(사전 요구 사항이 이미 생성CEV됨)으로 업그레이드합니다.
를 사용하여 직접 패치할 수도 있습니다OPATCH. Amazon RDS 설명서의 Oracle 업그레이드를 위한 RDS 사용자 지정 요구 사항 및 고려 사항 섹션을 참조하세요.
참고 : CEV 패치 프로세스 중에는 호스트 시스템의 IP 주소가 변경되지 않습니다. 이 프로세스는 업그레이드를 수행 out-of-place하며, 시작 중에 새 빈 볼륨이 동일한 인스턴스에 연결됩니다.