Azure VM 및 Azure NetApp Files 대한 단계별 Oracle 배포 절차
이 섹션에서는 FSx 스토리지를 사용하여 Oracle RDS 사용자 정의 데이터베이스를 배포하는 절차를 설명합니다.
Azure Portal 콘솔을 통해 Oracle용 ANF를 사용하여 Azure VM 배포
Azure를 처음 사용하는 경우 먼저 Azure 계정 환경을 설정해야 합니다. 여기에는 Azure Active Directory를 사용하도록 조직을 등록하는 것이 포함됩니다. 다음 섹션에서는 이러한 단계를 요약했습니다. 자세한 내용은 링크된 Azure 관련 문서를 참조하세요.
Azure 리소스 만들기 및 사용
Azure 환경이 설정되고 계정이 생성되어 구독과 연결되면 해당 계정으로 Azure Portal에 로그인하여 Oracle을 실행하는 데 필요한 리소스를 만들 수 있습니다.
1. 가상 네트워크 또는 VNet 만들기
Azure Virtual Network(VNet)는 Azure의 개인 네트워크를 위한 기본 구성 요소입니다. VNet을 사용하면 Azure Virtual Machines(VM) 등 다양한 유형의 Azure 리소스가 서로, 인터넷 및 온프레미스 네트워크와 안전하게 통신할 수 있습니다. Azure VM을 프로비저닝하기 전에 먼저 VNet(VM이 배포되는 위치)을 구성해야 합니다.
보다"Azure Portal을 사용하여 가상 네트워크 만들기" VNet을 생성합니다.
2. ANF에 대한 NetApp 스토리지 계정 및 용량 풀 생성
이 배포 시나리오에서는 Azure VM OS가 일반 Azure 저장소를 사용하여 프로비저닝되지만 ANF 볼륨은 NFS를 통해 Oracle 데이터베이스를 실행하도록 프로비저닝됩니다. 먼저, 스토리지 볼륨을 호스팅할 NetApp 스토리지 계정과 용량 풀을 만들어야 합니다.
보다"Azure NetApp Files 설정 및 NFS 볼륨 생성" ANF 용량 풀을 설정합니다.
3. Oracle용 Azure VM 프로비저닝
작업 부하에 따라 필요한 Azure VM 유형과 Oracle에 배포할 VM vCPU 및 RAM 크기를 결정합니다. 그런 다음 Azure 콘솔에서 VM 아이콘을 클릭하여 VM 배포 워크플로를 시작합니다.
-
Azure VM 페이지에서 *만들기*를 클릭한 다음 *Azure 가상 머신*을 선택합니다.
-
배포에 대한 구독 ID를 선택한 다음 리소스 그룹, 지역, 호스트 이름, VM 이미지, 크기 및 인증 방법을 선택합니다. 디스크 페이지로 이동합니다.
-
OS 로컬 중복성을 위해 *프리미엄 SSD*를 선택하고 데이터 디스크는 ANF 스토리지에서 마운트되므로 데이터 디스크를 비워 둡니다. 네트워킹 페이지로 이동하세요.
-
VNet과 서브넷을 선택하세요. 외부 VM 액세스를 위해 공용 IP를 할당합니다. 그런 다음 관리 페이지로 이동하세요.
-
관리에 대한 모든 기본값을 유지하고 고급 페이지로 이동합니다.
-
사용자 정의 스크립트를 사용하여 배포한 후 VM을 사용자 정의해야 하는 경우가 아니면 고급 페이지의 모든 기본값을 유지합니다. 그런 다음 태그 페이지로 이동하세요.
-
원하는 경우 VM에 대한 태그를 추가합니다. 그런 다음 검토 + 생성 페이지로 이동하세요.
-
배포 워크플로는 구성에 대한 유효성 검사를 실행하고, 유효성 검사에 통과하면 *만들기*를 클릭하여 VM을 만듭니다.
4. Oracle용 ANF 데이터베이스 볼륨 프로비저닝
Oracle 바이너리, 데이터 및 로그 볼륨에 대해 각각 ANF 용량 풀에 대해 세 개의 NFS 볼륨을 만들어야 합니다.
-
Azure 콘솔의 Azure 서비스 목록에서 Azure NetApp Files 클릭하여 볼륨 생성 워크플로를 엽니다. ANF 스토리지 계정이 두 개 이상 있는 경우 볼륨을 프로비저닝할 계정을 클릭합니다.
-
NetApp 스토리지 계정에서 *볼륨*을 클릭한 다음 *볼륨 추가*를 클릭하여 새로운 Oracle 볼륨을 만듭니다.
-
모범 사례로, Oracle 볼륨을 식별할 때 VM 호스트 이름을 접두사로 사용하고 그 뒤에 호스트의 마운트 지점을 붙입니다. 예를 들어 Oracle 바이너리의 경우 u01, Oracle 데이터의 경우 u02, Oracle 로그의 경우 u03입니다. 볼륨에 대해서도 VM과 동일한 VNet을 선택합니다. *다음: 프로토콜>*을 클릭합니다.
-
NFS 프로토콜을 선택하고 허용된 클라이언트에 Oracle 호스트 IP 주소를 추가하고 모든 IP 주소 0.0.0.0/0을 허용하는 기본 정책을 제거합니다. 그런 다음 *다음: 태그>*를 클릭합니다.
-
원하는 경우 볼륨 태그를 추가하세요. 그런 다음 *검토 + 만들기>*를 클릭합니다.
-
검증에 통과하면 *만들기*를 클릭하여 볼륨을 만듭니다.
ANF를 사용하여 Azure VM에 Oracle 설치 및 구성
NetApp 솔루션 팀은 Azure에서 Oracle을 원활하게 배포하는 데 도움이 되는 많은 Ansible 기반 자동화 툴킷을 만들었습니다. Azure VM에 Oracle을 배포하려면 다음 단계를 따르세요.
Ansible 컨트롤러 설정
Ansible 컨트롤러를 설정하지 않은 경우 다음을 참조하세요."NetApp 솔루션 자동화" Ansible 컨트롤러를 설정하는 방법에 대한 자세한 지침이 나와 있습니다.
Oracle 배포 자동화 툴킷 받기
Ansible 컨트롤러에 로그인하는 데 사용하는 사용자 ID로 홈 디렉토리에 Oracle 배포 툴킷 사본을 복제합니다.
git clone https://github.com/NetApp-Automation/na_oracle19c_deploy.git
구성에 맞게 툴킷을 실행하세요
를 참조하십시오"CLI 배포 Oracle 19c 데이터베이스" CLI로 플레이북을 실행합니다. CLI가 아닌 Azure 콘솔에서 데이터베이스 볼륨을 생성하는 경우 글로벌 VARS 파일의 변수 구성의 ONTAP 부분을 무시할 수 있습니다.
|
툴킷은 기본적으로 RU 19.8과 함께 Oracle 19c를 배포합니다. 사소한 기본 구성 변경으로 다른 패치 수준에도 쉽게 적용할 수 있습니다. 또한 기본 시드 데이터베이스 활성 로그 파일도 데이터 볼륨에 배포됩니다. 로그 볼륨에 활성 로그 파일이 필요한 경우 초기 배포 후에 해당 파일을 다시 배치해야 합니다. 도움이 필요하면 NetApp 솔루션 팀에 문의하세요. |
Oracle용 앱 일관성 스냅샷을 위한 AzAcSnap 백업 도구 설정
Azure 애플리케이션 일관성 스냅샷 도구(AzAcSnap)는 저장소 스냅샷을 찍기 전에 애플리케이션을 일관성 있는 상태로 전환하는 데 필요한 모든 오케스트레이션을 처리하여 타사 데이터베이스의 데이터를 보호할 수 있는 명령줄 도구입니다. 그런 다음 이러한 데이터베이스를 작동 상태로 되돌립니다. NetApp 데이터베이스 서버 호스트에 도구를 설치할 것을 권장합니다. 다음 설치 및 구성 절차를 참조하세요.
AzAcSnap 도구 설치
-
최신 버전을 받으세요"AzArcSnap 설치 프로그램" .
-
다운로드한 셀프 설치 프로그램을 대상 시스템에 복사합니다.
-
기본 설치 옵션을 사용하여 루트 사용자로 셀프 설치 프로그램을 실행합니다. 필요한 경우 다음을 사용하여 파일을 실행 가능하게 만드십시오.
chmod +x *.run
명령../azacsnap_installer_v5.0.run -I
Oracle 연결 구성
스냅샷 도구는 Oracle 데이터베이스와 통신하며 백업 모드를 활성화하거나 비활성화하려면 적절한 권한이 있는 데이터베이스 사용자가 필요합니다.
1. AzAcSnap 데이터베이스 사용자 설정
다음 예제에서는 Oracle 데이터베이스 사용자의 설정과 Oracle 데이터베이스와의 통신을 위한 sqlplus의 사용을 보여줍니다. 예제 명령은 Oracle 데이터베이스에 사용자(AZACSNAP)를 설정하고 IP 주소, 사용자 이름 및 비밀번호를 적절하게 변경합니다.
-
Oracle 데이터베이스 설치에서 sqlplus를 실행하여 데이터베이스에 로그인합니다.
su – oracle sqlplus / AS SYSDBA
-
사용자를 생성합니다.
CREATE USER azacsnap IDENTIFIED BY password;
-
사용자에게 권한을 부여합니다. 이 예제에서는 AZACSNAP 사용자가 데이터베이스를 백업 모드로 전환할 수 있는 권한을 설정합니다.
GRANT CREATE SESSION TO azacsnap; GRANT SYSBACKUP TO azacsnap;
-
기본 사용자의 비밀번호 만료 기간을 무제한으로 변경합니다.
ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME unlimited;
-
데이터베이스에 대한 azacsnap 연결을 검증합니다.
connect azacsnap/password quit;
2. Oracle Wallet을 사용하여 DB 액세스를 위한 Linux 사용자 azacsnap 구성
AzAcSnap 기본 설치는 azacsnap OS 사용자를 생성합니다. Oracle Wallet에 저장된 비밀번호를 사용하여 Oracle 데이터베이스에 액세스하려면 Bash 셸 환경을 구성해야 합니다.
-
루트 사용자로 다음을 실행합니다.
cat /etc/oratab
호스트의 ORACLE_HOME 및 ORACLE_SID 변수를 식별하는 명령입니다.cat /etc/oratab
-
ORACLE_HOME, ORACLE_SID, TNS_ADMIN 및 PATH 변수를 azacsnap 사용자 bash 프로필에 추가합니다. 필요에 따라 변수를 변경하세요.
echo "export ORACLE_SID=ORATEST" >> /home/azacsnap/.bash_profile echo "export ORACLE_HOME=/u01/app/oracle/product/19800/ORATST" >> /home/azacsnap/.bash_profile echo "export TNS_ADMIN=/home/azacsnap" >> /home/azacsnap/.bash_profile echo "export PATH=\$PATH:\$ORACLE_HOME/bin" >> /home/azacsnap/.bash_profile
-
Linux 사용자 azacsnap으로 지갑을 생성합니다. 지갑 비밀번호를 입력하라는 메시지가 표시됩니다.
sudo su - azacsnap mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -create
-
Oracle Wallet에 연결 문자열 자격 증명을 추가합니다. 다음 예제 명령에서 AZACSNAP은 AzAcSnap에서 사용되는 ConnectString이고, azacsnap은 Oracle Database 사용자이고, AzPasswd1은 Oracle 사용자의 데이터베이스 암호입니다. 지갑 비밀번호를 다시 입력하라는 메시지가 표시됩니다.
mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -createCredential AZACSNAP azacsnap AzPasswd1
-
생성하다
tnsnames-ora
파일. 다음 예제 명령에서 HOST는 Oracle Database의 IP 주소로 설정해야 하고, 서버 SID는 Oracle Database SID로 설정해야 합니다.echo "# Connection string AZACSNAP=\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.30.137.142)(PORT=1521))(CONNECT_DATA=(SID=ORATST)))\" " > $TNS_ADMIN/tnsnames.ora
-
생성하다
sqlnet.ora
파일.echo "SQLNET.WALLET_OVERRIDE = TRUE WALLET_LOCATION=( SOURCE=(METHOD=FILE) (METHOD_DATA=(DIRECTORY=\$TNS_ADMIN/.oracle_wallet)) ) " > $TNS_ADMIN/sqlnet.ora
-
지갑을 사용하여 Oracle 액세스를 테스트합니다.
sqlplus /@AZACSNAP as SYSBACKUP
명령의 예상 출력:
[azacsnap@acao-ora01 ~]$ sqlplus /@AZACSNAP as SYSBACKUP SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 8 18:02:07 2022 Version 19.8.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.8.0.0.0 SQL>
ANF 연결 구성
이 섹션에서는 Azure NetApp Files (VM 포함)와 통신을 활성화하는 방법을 설명합니다.
-
Azure Cloud Shell 세션 내에서 기본적으로 서비스 주체와 연결하려는 구독에 로그인했는지 확인하세요.
az account show
-
구독이 올바르지 않으면 다음 명령을 사용하세요.
az account set -s <subscription name or id>
-
다음 예와 같이 Azure CLI를 사용하여 서비스 주체를 만듭니다.
az ad sp create-for-rbac --name "AzAcSnap" --role Contributor --scopes /subscriptions/{subscription-id} --sdk-auth
예상 출력:
{ "clientId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a", "clientSecret": "00aa000a-aaaa-0000-00a0-00aa000aaa0a", "subscriptionId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a", "tenantId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com/", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net/" }
-
출력 내용을 잘라내어 파일에 붙여넣습니다.
oracle.json
Linux 사용자 azacsnap 사용자 bin 디렉토리에 저장하고 적절한 시스템 권한으로 파일을 보호합니다.
|
JSON 파일의 형식이 위에 설명한 대로 정확히 지정되었는지 확인하세요. 특히 URL을 큰따옴표(")로 묶어야 합니다. |
AzAcSnap 도구 설정을 완료하세요
스냅샷 도구를 구성하고 테스트하려면 다음 단계를 따르세요. 테스트가 성공적으로 완료되면 첫 번째 데이터베이스 일관성 저장소 스냅샷을 수행할 수 있습니다.
-
스냅샷 사용자 계정으로 변경합니다.
su - azacsnap
-
명령어의 위치를 변경합니다.
cd /home/azacsnap/bin/
-
저장소 백업 세부 정보 파일을 구성합니다. 이것은 다음을 생성합니다.
azacsnap.json
구성 파일.azacsnap -c configure –-configuration new
3개의 Oracle 볼륨에 대한 예상 출력:
[azacsnap@acao-ora01 bin]$ azacsnap -c configure --configuration new Building new config file Add comment to config file (blank entry to exit adding comments): Oracle snapshot bkup Add comment to config file (blank entry to exit adding comments): Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): oracle === Add Oracle Database details === Oracle Database SID (e.g. CDB1): ORATST Database Server's Address (hostname or IP address): 172.30.137.142 Oracle connect string (e.g. /@AZACSNAP): /@AZACSNAP === Azure NetApp Files Storage details === Are you using Azure NetApp Files for the database? (y/n) [n]: y --- DATA Volumes have the Application put into a consistent state before they are snapshot --- Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: y Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u01 Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: y Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u02 Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: n --- OTHER Volumes are snapshot immediately without preparing any application for snapshot --- Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: y Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u03 Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: n === Azure Managed Disk details === Are you using Azure Managed Disks for the database? (y/n) [n]: n === Azure Large Instance (Bare Metal) Storage details === Are you using Azure Large Instance (Bare Metal) for the database? (y/n) [n]: n Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): exit Editing configuration complete, writing output to 'azacsnap.json'.
-
azacsnap Linux 사용자로서 Oracle 백업을 위해 azacsnap 테스트 명령을 실행합니다.
cd ~/bin azacsnap -c test --test oracle --configfile azacsnap.json
예상 출력:
[azacsnap@acao-ora01 bin]$ azacsnap -c test --test oracle --configfile azacsnap.json BEGIN : Test process started for 'oracle' BEGIN : Oracle DB tests PASSED: Successful connectivity to Oracle DB version 1908000000 END : Test process complete for 'oracle' [azacsnap@acao-ora01 bin]$
-
첫 번째 스냅샷 백업을 실행합니다.
azacsnap -c backup –-volume data --prefix ora_test --retention=1