TR-4974: NFS/ASM을 사용하는 AWS FSx/EC2에서 독립형 재시작 시 Oracle 19c
Allen Cao, Niyaz Mohamed, NetApp
이 솔루션은 NFS 프로토콜과 asm을 볼륨 관리자로 사용하여 독립형 ReStart에서 구성된 Oracle 데이터베이스를 사용하여 AWS FSx ONTAP 스토리지와 EC2 컴퓨팅 인스턴스에서 Oracle 데이터베이스를 배포하고 보호하기 위한 개요와 세부 정보를 제공합니다.
목적
ASM(자동 스토리지 관리)은 많은 Oracle 설치에 사용되는 인기 있는 Oracle 스토리지 볼륨 관리자입니다. 이는 Oracle에서 권장하는 스토리지 관리 솔루션이기도 합니다. 기존 볼륨 관리자와 파일 시스템에 대한 대안을 제공합니다. Oracle 버전 11g부터 ASM은 데이터베이스가 아닌 그리드 인프라와 함께 패키징되었습니다. 따라서 RAC 없이 스토리지 관리를 위해 Oracle ASM을 활용하려면 Oracle Restart라고도 하는 독립형 서버에 Oracle Grid Infrastructure을 설치해야 합니다. 그렇게 하면 그렇지 않으면 더 간단했을 Oracle 데이터베이스 배포에 복잡성이 더 추가됩니다. 하지만 이름에서 알 수 있듯이 Oracle을 재시작 모드로 배포하면 실패한 Oracle 서비스는 사용자 개입 없이 호스트 재부팅 후 다시 시작되므로 일정 수준의 고가용성 또는 HA 기능이 제공됩니다.
Oracle ASM은 일반적으로 FC, iSCSI 스토리지 프로토콜 및 LUN을 원시 스토리지 장치로 배포합니다. 하지만 NFS 프로토콜과 NFS 파일 시스템의 ASM 구성도 Oracle에서 지원됩니다. 이 문서에서는 EC2 컴퓨팅 인스턴스가 있는 Amazon FSx ONTAP 스토리지 환경에서 NFS 프로토콜과 Oracle ASM을 사용하여 Oracle 19c 데이터베이스를 배포하는 방법을 보여줍니다. 또한 NetApp BlueXP 콘솔을 통해 NetApp SnapCenter 서비스를 사용하여 AWS 퍼블릭 클라우드에서 저장 효율적인 데이터베이스 운영을 위한 개발/테스트 또는 기타 사용 사례를 위해 Oracle 데이터베이스를 백업, 복원 및 복제하는 방법을 보여드립니다.
이 솔루션은 다음과 같은 사용 사례를 해결합니다.
-
NFS/ASM을 사용한 Amazon FSx ONTAP 스토리지 및 EC2 컴퓨팅 인스턴스에 Oracle 데이터베이스 배포
-
NFS/ASM을 사용하여 퍼블릭 AWS 클라우드에서 Oracle 워크로드 테스트 및 검증
-
AWS에 배포된 Oracle 데이터베이스 재시작 기능 테스트 및 검증
대상
이 솔루션은 다음과 같은 사람들을 위해 만들어졌습니다.
-
NFS/ASM을 사용하여 AWS 퍼블릭 클라우드에 Oracle을 배포하려는 DBA입니다.
-
AWS 퍼블릭 클라우드에서 Oracle 워크로드를 테스트하려는 데이터베이스 솔루션 아키텍트입니다.
-
AWS FSx 스토리지에 배포된 Oracle 데이터베이스를 배포하고 관리하려는 스토리지 관리자입니다.
-
AWS FSx/EC2에 Oracle 데이터베이스를 구축하려는 애플리케이션 소유자입니다.
솔루션 테스트 및 검증 환경
이 솔루션의 테스트와 검증은 최종 배포 환경과 일치하지 않을 수 있는 AWS FSx 및 EC2 환경에서 수행되었습니다. 자세한 내용은 다음 섹션을 참조하세요. 배포 고려사항의 핵심 요소 .
아키텍처
하드웨어 및 소프트웨어 구성 요소
하드웨어 |
||
FSx ONTAP 스토리지 |
AWS에서 제공하는 현재 버전 |
동일한 VPC 및 가용성 영역에 있는 하나의 FSx HA 클러스터 |
컴퓨팅을 위한 EC2 인스턴스 |
t2.xlarge/4vCPU/16G |
두 개의 EC2 T2 xlarge EC2 인스턴스(하나는 기본 DB 서버로, 다른 하나는 복제 DB 서버로 사용) |
소프트웨어 |
||
레드햇 리눅스 |
RHEL-8.6.0_HVM-20220503-x86_64-2-시간별2-GP2 |
테스트를 위해 RedHat 구독을 배포했습니다. |
오라클 그리드 인프라 |
버전 19.18 |
RU 패치 p34762026_190000_Linux-x86-64.zip이 적용되었습니다. |
오라클 데이터베이스 |
버전 19.18 |
RU 패치 p34765931_190000_Linux-x86-64.zip을 적용했습니다. |
오라클 OPatch |
버전 12.2.0.1.36 |
최신 패치 p6880880_190000_Linux-x86-64.zip |
SnapCenter 서비스 |
버전 |
v2.3.1.2324 |
배포 고려사항의 핵심 요소
-
EC2 컴퓨팅 인스턴스. 이러한 테스트와 검증에서는 Oracle 데이터베이스 컴퓨팅 인스턴스에 AWS EC2 t2.xlarge 인스턴스 유형을 사용했습니다. NetApp 데이터베이스 워크로드에 최적화되어 있으므로 프로덕션 배포 시 Oracle의 컴퓨팅 인스턴스로 M5 유형 EC2 인스턴스를 사용할 것을 권장합니다. 실제 작업 부하 요구 사항에 따라 vCPU 수와 RAM 양에 맞게 EC2 인스턴스 크기를 적절히 조정해야 합니다.
-
FSx 스토리지 HA 클러스터 단일 또는 다중 영역 배포. 이러한 테스트와 검증을 통해 단일 AWS 가용성 영역에 FSx HA 클러스터를 배포했습니다. 프로덕션 배포의 경우 NetApp 두 개의 서로 다른 가용성 영역에 FSx HA 쌍을 배포할 것을 권장합니다. FSx HA 클러스터는 항상 스토리지 수준 중복성을 제공하기 위해 액티브-패시브 파일 시스템 쌍에 동기화 미러링된 HA 쌍으로 프로비저닝됩니다. 다중 영역 배포는 단일 AWS 영역에서 장애가 발생할 경우 고가용성을 더욱 향상시킵니다.
-
FSx 스토리지 클러스터 크기 조정. Amazon FSx ONTAP 스토리지 파일 시스템은 최대 160,000 원시 SSD IOPS, 최대 4GBps 처리량, 최대 192TiB 용량을 제공합니다. 그러나 배포 시점의 실제 요구 사항에 따라 프로비저닝된 IOPS, 처리량 및 저장 용량 한도(최소 1,024GiB)를 기준으로 클러스터 크기를 조정할 수 있습니다. 애플리케이션 가용성에 영향을 주지 않고 용량을 즉시 동적으로 조정할 수 있습니다.
-
Oracle 데이터 및 로그 레이아웃. 테스트와 검증 과정에서 데이터와 로그에 대해 각각 두 개의 ASM 디스크 그룹을 배포했습니다. +DATA asm 디스크 그룹 내에서 데이터 NFS 파일 시스템 마운트 지점에 4개의 디스크를 프로비저닝했습니다. +LOGS asm 디스크 그룹 내에서 로그 NFS 파일 시스템 마운트 지점에 두 개의 디스크를 프로비저닝했습니다. 대규모 데이터베이스 배포의 경우 ASM 디스크 그룹을 여러 FSx 파일 시스템에 걸쳐 구축하고 ASM NFS 디스크를 FSx 파일 시스템에 고정된 여러 NFS 마운트 지점을 통해 분산할 수 있습니다. 이 특정 설정은 4GBps 이상의 데이터베이스 처리량과 160,000 원시 SSD IOPS 요구 사항을 충족하도록 설계되었습니다.
-
dNFS 구성. dNFS는 Oracle 커널에 내장되어 있으며 Oracle을 NFS 스토리지에 배포할 때 Oracle 데이터베이스 성능을 획기적으로 높이는 것으로 알려져 있습니다. dNFS는 Oracle 바이너리에 패키징되어 있지만 기본적으로 켜져 있지 않습니다. NFS에 Oracle 데이터베이스를 배포하는 경우 이 기능을 켜야 합니다. 대규모 데이터베이스에 여러 FSx 파일 시스템을 배포하는 경우, dNFS 다중 경로를 적절하게 구성해야 합니다.
-
사용자가 생성하는 각 Oracle ASM 디스크 그룹에 사용할 Oracle ASM 중복 수준입니다. FSx는 이미 FSx 클러스터 수준에서 스토리지를 미러링하므로 다음을 수행해야 합니다.
ONLY
외부 중복성을 사용합니다. 즉, 이 옵션은 Oracle ASM이 디스크 그룹의 내용을 미러링하는 것을 허용하지 않습니다. 이는 Oracle 데이터베이스 데이터 저장을 위한 NFS에 하드 NFS 마운트 옵션이 필요하므로 특히 중요한데, 이는 Oracle 수준에서 ASM 콘텐츠를 미러링하는 데는 바람직하지 않습니다. -
데이터베이스 백업. NetApp NetApp BlueXP 콘솔 UI를 통해 사용할 수 있는 클라우드에서 데이터베이스 백업, 복원 및 복제를 위한 SnapCenter software 서비스의 SaaS 버전을 제공합니다. NetApp 빠른(1분 이내) 스냅샷 백업, 빠른(몇 분) 데이터베이스 복원 및 데이터베이스 복제를 달성하기 위해 이러한 서비스를 구현할 것을 권장합니다.
솔루션 구축
다음 섹션에서는 단계별 배포 절차를 제공합니다.
배포를 위한 전제 조건
Details
배포에는 다음과 같은 전제 조건이 필요합니다.
-
AWS 계정이 설정되었고, AWS 계정 내에 필요한 VPC 및 네트워크 세그먼트가 생성되었습니다.
-
AWS EC2 콘솔에서 두 개의 EC2 Linux 인스턴스를 배포해야 합니다. 하나는 기본 Oracle DB 서버로, 다른 하나는 선택적으로 대체 복제 대상 DB 서버로 배포합니다. 환경 설정에 대한 자세한 내용은 이전 섹션의 아키텍처 다이어그램을 참조하세요. 또한 검토하세요"Linux 인스턴스 사용자 가이드" 자세한 내용은.
-
AWS EC2 콘솔에서 Amazon FSx ONTAP 스토리지 HA 클러스터를 배포하여 Oracle 데이터베이스 볼륨을 호스팅합니다. FSx 스토리지 배포에 익숙하지 않은 경우 설명서를 참조하세요."FSx ONTAP 파일 시스템 생성" 단계별 지침을 확인하세요.
-
2단계와 3단계는 다음 Terraform 자동화 툴킷을 사용하여 수행할 수 있습니다. 이 툴킷은 다음과 같은 EC2 인스턴스를 생성합니다.
ora_01
그리고 FSx 파일 시스템이라는 이름fsx_01
. 지침을 주의 깊게 검토하고 실행하기 전에 환경에 맞게 변수를 변경하세요.git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
|
Oracle 설치 파일을 준비할 충분한 공간을 확보하려면 EC2 인스턴스 루트 볼륨에 최소 50G를 할당했는지 확인하세요. |
EC2 인스턴스 커널 구성
Details
필수 구성 요소가 프로비저닝되면 ec2-user로 EC2 인스턴스에 로그인하고 루트 사용자로 sudo를 실행하여 Oracle 설치를 위한 Linux 커널을 구성합니다.
-
스테이징 디렉토리 만들기
/tmp/archive
폴더와 설정777
허가.mkdir /tmp/archive chmod 777 /tmp/archive
-
Oracle 바이너리 설치 파일 및 기타 필수 rpm 파일을 다운로드하고 준비합니다.
/tmp/archive
예배 규칙서.다음 설치 파일 목록을 참조하세요.
/tmp/archive
EC2 인스턴스에서.[ec2-user@ip-172-30-15-58 ~]$ ls -l /tmp/archive total 10537316 -rw-rw-r--. 1 ec2-user ec2-user 19112 Mar 21 15:57 compat-libcap1-1.10-7.el7.x86_64.rpm -rw-rw-r-- 1 ec2-user ec2-user 3059705302 Mar 21 22:01 LINUX.X64_193000_db_home.zip -rw-rw-r-- 1 ec2-user ec2-user 2889184573 Mar 21 21:09 LINUX.X64_193000_grid_home.zip -rw-rw-r--. 1 ec2-user ec2-user 589145 Mar 21 15:56 netapp_linux_unified_host_utilities-7-1.x86_64.rpm -rw-rw-r--. 1 ec2-user ec2-user 31828 Mar 21 15:55 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm -rw-rw-r-- 1 ec2-user ec2-user 2872741741 Mar 21 22:31 p34762026_190000_Linux-x86-64.zip -rw-rw-r-- 1 ec2-user ec2-user 1843577895 Mar 21 22:32 p34765931_190000_Linux-x86-64.zip -rw-rw-r-- 1 ec2-user ec2-user 124347218 Mar 21 22:33 p6880880_190000_Linux-x86-64.zip -rw-r--r-- 1 ec2-user ec2-user 257136 Mar 22 16:25 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
대부분의 커널 구성 요구 사항을 충족하는 Oracle 19c 사전 설치 RPM을 설치합니다.
yum install /tmp/archive/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
-
누락된 것을 다운로드하고 설치하세요
compat-libcap1
리눅스 8에서.yum install /tmp/archive/compat-libcap1-1.10-7.el7.x86_64.rpm
-
NetApp 에서 NetApp 호스트 유틸리티를 다운로드하여 설치합니다.
yum install /tmp/archive/netapp_linux_unified_host_utilities-7-1.x86_64.rpm
-
설치하다
policycoreutils-python-utils
EC2 인스턴스에서는 사용할 수 없습니다.yum install /tmp/archive/policycoreutils-python-utils-2.9-9.el8.noarch.rpm
-
Open JDK 버전 1.8을 설치합니다.
yum install java-1.8.0-openjdk.x86_64
-
nfs-utils를 설치합니다.
yum install nfs-utils
-
현재 시스템에서 투명한 거대 페이지를 비활성화합니다.
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
다음 줄을 추가하세요
/etc/rc.local
비활성화하다transparent_hugepage
재부팅 후:# Disable transparent hugepages if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
-
변경하여 selinux를 비활성화하세요
SELINUX=enforcing
에게SELINUX=disabled
. 변경 사항을 적용하려면 호스트를 재부팅해야 합니다.vi /etc/sysconfig/selinux
-
다음 줄을 추가하세요
limit.conf
따옴표 없이 파일 설명자 제한 및 스택 크기를 설정하려면" "
.vi /etc/security/limits.conf "* hard nofile 65536" "* soft stack 10240"
-
다음 지침에 따라 EC2 인스턴스에 스왑 공간을 추가하세요."스왑 파일을 사용하여 Amazon EC2 인스턴스에서 스왑 공간으로 작동하는 메모리를 할당하려면 어떻게 해야 합니까?" 추가할 수 있는 정확한 공간의 양은 최대 16G까지의 RAM 크기에 따라 달라집니다.
-
asm sysasm 그룹에 사용할 ASM 그룹을 추가합니다.
groupadd asm
-
ASM을 보조 그룹으로 추가하기 위해 oracle 사용자를 수정합니다(oracle 사용자는 Oracle 사전 설치 RPM 설치 후에 생성되어야 합니다).
usermod -a -G asm oracle
-
EC2 인스턴스를 재부팅합니다.
EC2 인스턴스 호스트에 마운트할 NFS 볼륨을 프로비저닝하고 내보냅니다.
Details
FSx 클러스터 관리 IP를 사용하여 fsxadmin 사용자로 ssh를 통해 FSx 클러스터에 로그인하여 명령줄에서 세 개의 볼륨을 프로비저닝하고 Oracle 데이터베이스 바이너리, 데이터 및 로그 파일을 호스팅합니다.
-
fsxadmin 사용자로 SSH를 통해 FSx 클러스터에 로그인합니다.
ssh fsxadmin@172.30.15.53
-
다음 명령을 실행하여 Oracle 바이너리에 대한 볼륨을 생성합니다.
vol create -volume ora_01_biny -aggregate aggr1 -size 50G -state online -type RW -junction-path /ora_01_biny -snapshot-policy none -tiering-policy snapshot-only
-
Oracle 데이터에 대한 볼륨을 생성하려면 다음 명령을 실행하세요.
vol create -volume ora_01_data -aggregate aggr1 -size 100G -state online -type RW -junction-path /ora_01_data -snapshot-policy none -tiering-policy snapshot-only
-
다음 명령을 실행하여 Oracle 로그에 대한 볼륨을 생성합니다.
vol create -volume ora_01_logs -aggregate aggr1 -size 100G -state online -type RW -junction-path /ora_01_logs -snapshot-policy none -tiering-policy snapshot-only
-
생성된 DB 볼륨을 검증합니다.
vol show
다음이 반환될 것으로 예상됩니다.
FsxId02ad7bf3476b741df::> vol show (vol show) FsxId06c3c8b2a7bd56458::> vol show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm_ora ora_01_biny aggr1 online RW 50GB 47.50GB 0% svm_ora ora_01_data aggr1 online RW 100GB 95.00GB 0% svm_ora ora_01_logs aggr1 online RW 100GB 95.00GB 0% svm_ora svm_ora_root aggr1 online RW 1GB 972.1MB 0% 4 entries were displayed.
데이터베이스 저장소 구성
Details
이제 EC2 인스턴스 호스트에 Oracle 그리드 인프라와 데이터베이스 설치를 위한 FSx 스토리지를 가져와 설정합니다.
-
SSH 키와 EC2 인스턴스 IP 주소를 사용하여 ec2-user로 SSH를 통해 EC2 인스턴스에 로그인합니다.
ssh -i ora_01.pem ec2-user@172.30.15.58
-
Oracle 바이너리 파일 시스템을 마운트하기 위해 /u01 디렉토리를 생성합니다.
sudo mkdir /u01
-
바이너리 볼륨을 마운트합니다.
/u01
, FSx NFS life IP 주소로 변경되었습니다. NetApp 자동화 툴킷을 통해 FSx 클러스터를 배포한 경우, 리소스 프로비저닝 실행이 끝나면 FSx 가상 스토리지 서버 NFS lif IP 주소가 출력에 나열됩니다. 그렇지 않은 경우 AWS FSx 콘솔 UI에서 검색할 수 있습니다.sudo mount -t nfs 172.30.15.19:/ora_01_biny /u01 -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
-
변화
/u01
마운트 지점 소유권은 Oracle 사용자와 연관된 기본 그룹에 있습니다.sudo chown oracle:oinstall /u01
-
Oracle 데이터 파일 시스템을 마운트하려면 /oradata 디렉토리를 생성합니다.
sudo mkdir /oradata
-
데이터 볼륨을 마운트합니다
/oradata
, FSx NFS lif IP 주소로 변경됨sudo mount -t nfs 172.30.15.19:/ora_01_data /oradata -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
-
변화
/oradata
마운트 지점 소유권은 Oracle 사용자와 연관된 기본 그룹에 있습니다.sudo chown oracle:oinstall /oradata
-
Oracle 로그 파일 시스템을 마운트하려면 /oralogs 디렉토리를 생성하세요.
sudo mkdir /oralogs
-
로그 볼륨을 마운트합니다.
/oralogs
, FSx NFS lif IP 주소로 변경됨sudo mount -t nfs 172.30.15.19:/ora_01_logs /oralogs -o rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536
-
변화
/oralogs
마운트 지점 소유권은 Oracle 사용자와 연관된 기본 그룹에 있습니다.sudo chown oracle:oinstall /oralogs
-
마운트 지점을 추가하세요
/etc/fstab
.sudo vi /etc/fstab
다음 줄을 추가합니다.
172.30.15.19:/ora_01_biny /u01 nfs rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536 0 0 172.30.15.19:/ora_01_data /oradata nfs rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536 0 0 172.30.15.19:/ora_01_logs /oralogs nfs rw,bg,hard,vers=3,proto=tcp,timeo=600,rsize=65536,wsize=65536 0 0
-
sudo를 oracle 사용자에게 사용하여 asm 디스크 파일을 저장할 asm 폴더를 만듭니다.
sudo su su - oracle mkdir /oradata/asm mkdir /oralogs/asm
-
Oracle 사용자로 asm 데이터 디스크 파일을 만들고, 디스크 크기와 블록 크기에 맞게 개수를 변경합니다.
dd if=/dev/zero of=/oradata/asm/nfs_data_disk01 bs=1M count=20480 oflag=direct dd if=/dev/zero of=/oradata/asm/nfs_data_disk02 bs=1M count=20480 oflag=direct dd if=/dev/zero of=/oradata/asm/nfs_data_disk03 bs=1M count=20480 oflag=direct dd if=/dev/zero of=/oradata/asm/nfs_data_disk04 bs=1M count=20480 oflag=direct
-
데이터 디스크 파일 권한을 640으로 변경
chmod 640 /oradata/asm/*
-
Oracle 사용자로서 asm 로그 디스크 파일을 생성하고, 디스크 크기와 블록 크기에 맞게 count를 변경합니다.
dd if=/dev/zero of=/oralogs/asm/nfs_logs_disk01 bs=1M count=40960 oflag=direct dd if=/dev/zero of=/oralogs/asm/nfs_logs_disk02 bs=1M count=40960 oflag=direct
-
로그 디스크 파일 권한을 640으로 변경
chmod 640 /oralogs/asm/*
-
EC2 인스턴스 호스트를 재부팅합니다.
Oracle 그리드 인프라 설치
Details
-
SSH를 통해 ec2-user로 EC2 인스턴스에 로그인하고 주석 처리를 제거하여 암호 인증을 활성화합니다.
PasswordAuthentication yes
그리고 나서 주석을 달다PasswordAuthentication no
.sudo vi /etc/ssh/sshd_config
-
sshd 서비스를 다시 시작합니다.
sudo systemctl restart sshd
-
Oracle 사용자 비밀번호를 재설정합니다.
sudo passwd oracle
-
Oracle Restart 소프트웨어 소유자 사용자(oracle)로 로그인합니다. 다음과 같이 Oracle 디렉토리를 만듭니다.
mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory
-
디렉토리 권한 설정을 변경합니다.
chmod -R 775 /u01/app
-
그리드 홈 디렉토리를 만들고 변경합니다.
mkdir -p /u01/app/oracle/product/19.0.0/grid cd /u01/app/oracle/product/19.0.0/grid
-
그리드 설치 파일의 압축을 풉니다.
unzip -q /tmp/archive/LINUX.X64_193000_grid_home.zip
-
그리드 홈에서 삭제
OPatch
예배 규칙서.rm -rf OPatch
-
그리드 홈에서 복사
p6880880_190000_Linux-x86-64.zip
grid_home으로 이동한 후 압축을 풉니다.cp /tmp/archive/p6880880_190000_Linux-x86-64.zip . unzip p6880880_190000_Linux-x86-64.zip
-
그리드 홈에서 수정
cv/admin/cvu_config
, 주석을 제거하고 교체합니다.CV_ASSUME_DISTID=OEL5
~와 함께CV_ASSUME_DISTID=OL7
.vi cv/admin/cvu_config
-
준비하다
gridsetup.rsp
자동 설치를 위한 파일을 만들고 rsp 파일을 다음 위치에 두십시오./tmp/archive
예배 규칙서. rsp 파일에는 다음 정보와 함께 A, B, G 섹션이 포함되어야 합니다.INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=HA_CONFIG ORACLE_BASE=/u01/app/oracle oracle.install.asm.OSDBA=dba oracle.install.asm.OSOPER=oper oracle.install.asm.OSASM=asm oracle.install.asm.SYSASMPassword="SetPWD" oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=4 oracle.install.asm.diskGroup.disks=/oradata/asm/nfs_data_disk01,/oradata/asm/nfs_data_disk02,/oradata/asm/nfs_data_disk03,/oradata/asm/nfs_data_disk04 oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm/*,/oralogs/asm/* oracle.install.asm.monitorPassword="SetPWD" oracle.install.asm.configureAFD=false
-
EC2 인스턴스에 루트 사용자로 로그인합니다.
-
설치하다
cvuqdisk-1.0.10-1.rpm
.rpm -ivh /u01/app/oracle/product/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
-
Oracle 사용자로 EC2 인스턴스에 로그인하고 패치를 추출합니다.
/tmp/archive
접는 사람.unzip p34762026_190000_Linux-x86-64.zip
-
그리드 홈 /u01/app/oracle/product/19.0.0/grid에서 Oracle 사용자로 시작합니다.
gridSetup.sh
그리드 인프라 설치를 위해../gridSetup.sh -applyRU /tmp/archive/34762026/ -silent -responseFile /tmp/archive/gridsetup.rsp
그리드 인프라에 잘못된 그룹이 있다는 경고는 무시하세요. Oracle Restart를 관리하기 위해 단일 Oracle 사용자를 사용하고 있으므로 이는 예상된 일입니다.
-
루트 사용자로 다음 스크립트를 실행합니다.
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/grid/root.sh
-
Oracle 사용자로서 다음 명령을 실행하여 구성을 완료합니다.
/u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
-
Oracle 사용자로서 LOGS 디스크 그룹을 생성합니다.
bin/asmca -silent -sysAsmPassword 'yourPWD' -asmsnmpPassword 'yourPWD' -createDiskGroup -diskGroupName LOGS -disk '/oralogs/asm/nfs_logs_disk*' -redundancy EXTERNAL -au_size 4
-
Oracle 사용자로서 설치 구성 후 그리드 서비스를 검증합니다.
bin/crsctl stat res -t + Name Target State Server State details Local Resources ora.DATA.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-58 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.asm ONLINE ONLINE ip-172-30-15-58 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-58 STABLE Cluster Resources ora.cssd ONLINE ONLINE ip-172-30-15-58 STABLE ora.diskmon OFFLINE OFFLINE STABLE ora.driver.afd ONLINE ONLINE ip-172-30-15-58 STABLE ora.evmd ONLINE ONLINE ip-172-30-15-58 STABLE
오라클 데이터베이스 설치
Details
-
Oracle 사용자로 로그인하고 설정을 해제합니다.
$ORACLE_HOME
그리고$ORACLE_SID
설정되어 있는 경우.unset ORACLE_HOME unset ORACLE_SID
-
Oracle DB 홈 디렉토리를 만들고 변경합니다.
mkdir /u01/app/oracle/product/19.0.0/db1 cd /u01/app/oracle/product/19.0.0/db1
-
Oracle DB 설치 파일의 압축을 풉니다.
unzip -q /tmp/archive/LINUX.X64_193000_db_home.zip
-
DB 홈에서 삭제하세요
OPatch
예배 규칙서.rm -rf OPatch
-
DB 홈에서 복사
p6880880_190000_Linux-x86-64.zip
에게grid_home
, 그리고 압축을 풀어주세요.cp /tmp/archive/p6880880_190000_Linux-x86-64.zip . unzip p6880880_190000_Linux-x86-64.zip
-
DB홈에서 수정하세요
cv/admin/cvu_config
, 주석을 제거하고 교체합니다.CV_ASSUME_DISTID=OEL5
~와 함께CV_ASSUME_DISTID=OL7
.vi cv/admin/cvu_config
-
에서
/tmp/archive
디렉토리에서 DB 19.18 RU 패치를 압축 해제합니다.unzip p34765931_190000_Linux-x86-64.zip
-
DB 자동 설치 rsp 파일을 준비합니다.
/tmp/archive/dbinstall.rsp
다음 값을 갖는 디렉토리:oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=oper oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false
-
db1 home /u01/app/oracle/product/19.0.0/db1에서 소프트웨어 전용 DB 설치를 실행합니다.
./runInstaller -applyRU /tmp/archive/34765931/ -silent -ignorePrereqFailure -responseFile /tmp/archive/dbinstall.rsp
-
루트 사용자로 다음을 실행합니다.
root.sh
소프트웨어만 설치한 후의 스크립트입니다./u01/app/oracle/product/19.0.0/db1/root.sh
-
Oracle 사용자로서 다음을 생성합니다.
dbca.rsp
다음 항목이 포함된 파일:gdbName=db1.demo.netapp.com sid=db1 createAsContainerDatabase=true numberOfPDBs=3 pdbName=db1_pdb useLocalUndoForPDBs=true pdbAdminPassword="yourPWD" templateName=General_Purpose.dbc sysPassword="yourPWD" systemPassword="yourPWD" dbsnmpPassword="yourPWD" storageType=ASM diskGroupName=DATA characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 listeners=LISTENER databaseType=MULTIPURPOSE automaticMemoryManagement=false totalMemory=8192
EC2 인스턴스 호스트에서 사용 가능한 메모리를 기준으로 총 메모리를 설정합니다. Oracle은 75%를 할당합니다. totalMemory
DB 인스턴스 SGA 또는 버퍼 캐시로. -
Oracle 사용자로서 dbca를 사용하여 DB 생성을 시작합니다.
bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp output: Prepare for db operation 7% complete Registering database with Oracle Restart 11% complete Copying database files 33% complete Creating and starting Oracle instance 35% complete 38% complete 42% complete 45% complete 48% complete Completing Database Creation 53% complete 55% complete 56% complete Creating Pluggable Databases 60% complete 64% complete 69% complete 78% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/db1. Database Information: Global Database Name:db1.demo.netapp.com System Identifier(SID):db1 Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1/db1.log" for further details.
-
Oracle 사용자로서 DB 생성 후 Oracle Restart HA 서비스를 검증합니다.
[oracle@ip-172-30-15-58 db1]$ ../grid/bin/crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-58 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-58 STABLE ora.asm ONLINE ONLINE ip-172-30-15-58 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-58 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE ip-172-30-15-58 STABLE ora.db1.db 1 ONLINE ONLINE ip-172-30-15-58 Open,HOME=/u01/app/o racle/product/19.0.0 /db1,STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE ip-172-30-15-58 STABLE -------------------------------------------------------------------------------- [oracle@ip-172-30-15-58 db1]$
-
Oracle 사용자 설정
.bash_profile
.vi ~/.bash_profile
-
다음 항목을 추가합니다.
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1 export ORACLE_SID=db1 export PATH=$PATH:$ORACLE_HOME/bin alias asm='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid;export ORACLE_SID=+ASM;export PATH=$PATH:$ORACLE_HOME/bin'
-
생성된 CDB/PDB를 검증합니다.
. ~/.bash_profile sqlplus / as sysdba SQL> select name, open_mode from v$database; NAME OPEN_MODE DB1 READ WRITE SQL> select name from v$datafile; NAME +DATA/DB1/DATAFILE/system.256.1132176177 +DATA/DB1/DATAFILE/sysaux.257.1132176221 +DATA/DB1/DATAFILE/undotbs1.258.1132176247 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.265.1132177009 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.266.1132177009 +DATA/DB1/DATAFILE/users.259.1132176247 +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.267.1132177009 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/system.271.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/sysaux.272.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/undotbs1.270.1132177853 +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/users.274.1132177871 NAME +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/system.276.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/sysaux.277.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/undotbs1.275.1132177871 +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/users.279.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/system.281.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/sysaux.282.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/undotbs1.280.1132177889 +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/users.284.1132177907 19 rows selected. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED 2 PDB$SEED READ ONLY NO 3 DB1_PDB1 READ WRITE NO 4 DB1_PDB2 READ WRITE NO 5 DB1_PDB3 READ WRITE NO SQL>
-
Oracle 사용자로서 Oracle 데이터베이스 홈 디렉토리 /u01/app/oracle/product/19.0.0/db1로 변경하고 dNFS를 활성화합니다.
cd /u01/app/oracle/product/19.0.0/db1 mkdir rdbms/lib/odm cp lib/libnfsodm19.so rdbms/lib/odm/
-
ORACLE_HOME에 oranfstab 파일을 구성합니다.
vi $ORACLE_HOME/dbs/oranfstab add following entries: server: fsx_01 local: 172.30.15.58 path: 172.30.15.19 nfs_version: nfsv3 export: /ora_01_biny mount: /u01 export: /ora_01_data mount: /oradata export: /ora_01_logs mount: /oralogs
-
Oracle 사용자로 SQLPlus에서 데이터베이스에 로그인하고 DB 복구 크기와 위치를 +LOGS 디스크 그룹으로 설정합니다.
. ~/.bash_profile sqlplus / as sysdba alter system set db_recovery_file_dest_size = 80G scope=both; alter system set db_recovery_file_dest = '+LOGS' scope=both;
-
아카이브 로그 모드를 활성화하고 Oracle DB 인스턴스를 재부팅합니다.
shutdown immediate; startup mount; alter database archivelog; alter database open; alter system switch logfile;
-
인스턴스 재부팅 후 DB 로그 모드 및 dNFS 검증
SQL> select name, log_mode from v$database; NAME LOG_MODE --------- ------------ DB1 ARCHIVELOG SQL> select svrname, dirname from v$dnfs_servers; SVRNAME -------------------------------------------------------------------------------- DIRNAME -------------------------------------------------------------------------------- fsx_01 /ora_01_data fsx_01 /ora_01_biny fsx_01 /ora_01_logs
-
Oracle ASM 검증
[oracle@ip-172-30-15-58 db1]$ asm [oracle@ip-172-30-15-58 db1]$ sqlplus / as sysasm SQL*Plus: Release 19.0.0.0.0 - Production on Tue May 9 20:39:39 2023 Version 19.18.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.18.0.0.0 SQL> set lin 200 SQL> col path form a30 SQL> select name, path, header_status, mount_status, state from v$asm_disk; NAME PATH HEADER_STATU MOUNT_S STATE ------------------------------ ------------------------------ ------------ ------- -------- DATA_0002 /oradata/asm/nfs_data_disk01 MEMBER CACHED NORMAL DATA_0000 /oradata/asm/nfs_data_disk02 MEMBER CACHED NORMAL DATA_0001 /oradata/asm/nfs_data_disk03 MEMBER CACHED NORMAL DATA_0003 /oradata/asm/nfs_data_disk04 MEMBER CACHED NORMAL LOGS_0000 /oralogs/asm/nfs_logs_disk01 MEMBER CACHED NORMAL LOGS_0001 /oralogs/asm/nfs_logs_disk02 MEMBER CACHED NORMAL 6 rows selected. SQL> select name, state, ALLOCATION_UNIT_SIZE, TOTAL_MB, FREE_MB from v$asm_diskgroup; NAME STATE ALLOCATION_UNIT_SIZE TOTAL_MB FREE_MB ------------------------------ ----------- -------------------- ---------- ---------- DATA MOUNTED 4194304 81920 73536 LOGS MOUNTED 4194304 81920 81640 This completes Oracle 19c version 19.18 Restart deployment on an Amazon FSx ONTAP and EC2 compute instance with NFS/ASM. If desired, NetApp recommends relocating the Oracle control file and online log files to the +LOGS disk group.
자동 배포 옵션
NetApp 이 솔루션의 구현을 용이하게 하기 위해 Ansible을 활용한 완전 자동화된 솔루션 배포 툴킷을 출시할 예정입니다. 툴킷의 가용성을 다시 확인해 주세요. 출시 후 여기에 링크가 게시될 예정입니다.
SnapCenter 서비스를 사용한 Oracle 데이터베이스 백업, 복원 및 복제
현재 NFS 및 ASM 스토리지 옵션이 있는 Oracle 데이터베이스는 기존 SnapCenter Server UI 도구에서만 지원됩니다."SnapCenter 활용한 하이브리드 클라우드 데이터베이스 솔루션" NetApp SnapCenter UI 도구를 사용한 Oracle 데이터베이스 백업, 복원 및 복제에 대한 자세한 내용은 다음을 참조하세요.
추가 정보를 찾을 수 있는 곳
이 문서에 설명된 정보에 대해 자세히 알아보려면 다음 문서 및/또는 웹사이트를 검토하세요.
-
새 데이터베이스 설치로 독립형 서버에 Oracle Grid Infrastructure 설치
-
응답 파일을 사용하여 Oracle 데이터베이스 설치 및 구성
-
Amazon FSx ONTAP
-
아마존 EC2