Azure VM 및 Azure NetApp Files에 대한 단계별 Oracle 구축 절차
이 섹션에서는 FSx 스토리지와 함께 Oracle RDS 사용자 지정 데이터베이스를 구축하는 구축 절차를 설명합니다.
Azure 포털 콘솔을 통해 Oracle용 ANF와 Azure VM을 구축합니다
Azure를 처음 사용하는 경우 먼저 Azure 계정 환경을 설정해야 합니다. 여기에는 Azure Active Directory를 사용하기 위한 조직 등록이 포함됩니다. 다음 섹션은 이러한 단계를 요약한 것입니다. 자세한 내용은 연결된 Azure 관련 설명서를 참조하십시오.
Azure 리소스를 생성하고 사용합니다
Azure 환경을 설정하고 계정을 만들고 구독과 연결한 후 계정을 사용하여 Azure 포털에 로그인하여 Oracle을 실행하는 데 필요한 리소스를 생성할 수 있습니다.
가상 네트워크 또는 VNET를 생성합니다
Azure VNet(Virtual Network)은 Azure의 프라이빗 네트워크에 대한 기본 구성 요소입니다. VNET를 사용하면 Azure VM(가상 머신)과 같은 여러 유형의 Azure 리소스를 사용하여 서로, 인터넷 및 온프레미스 네트워크와 안전하게 통신할 수 있습니다. Azure VM을 프로비저닝하기 전에 먼저 VNet(VM이 배포된)을 구성해야 합니다.
을 참조하십시오 "Azure 포털을 사용하여 가상 네트워크를 생성합니다" VNET를 생성합니다.
ANF용 NetApp 스토리지 계정 및 용량 풀을 생성합니다
이 구축 시나리오에서는 Azure VM OS가 일반 Azure 스토리지를 사용하여 프로비저닝되지만 ANF 볼륨은 NFS를 통해 Oracle 데이터베이스를 실행하도록 프로비저닝됩니다. 먼저 NetApp 스토리지 계정과 스토리지 볼륨을 호스팅할 용량 풀을 생성해야 합니다.
을 참조하십시오 "Azure NetApp Files를 설정하고 NFS 볼륨을 생성합니다" ANF 용량 풀을 설정하려면 다음을 수행합니다.
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에 대한 태그를 추가합니다. 그런 다음 검토 + 만들기 페이지로 이동합니다.
-
배포 워크플로는 구성에 대한 유효성 검사를 실행하고 유효성 검사가 통과한 경우 * Create * 를 클릭하여 VM을 만듭니다.
Oracle용 ANF 데이터베이스 볼륨 프로비저닝
Oracle 바이너리, 데이터 및 로그 볼륨에 대해 ANF 용량 풀에 대해 각각 3개의 NFS 볼륨을 생성해야 합니다.
-
Azure 콘솔의 Azure 서비스 목록에서 Azure NetApp Files 를 클릭하여 볼륨 생성 워크플로를 엽니다. ANF 스토리지 계정이 두 개 이상인 경우 볼륨을 프로비저닝할 계정을 클릭합니다.
-
NetApp 스토리지 계정에서 * 볼륨 * 을 클릭한 다음 * 볼륨 추가 * 를 클릭하여 새 Oracle 볼륨을 만듭니다.
-
VM 호스트 이름을 접두사로 사용하여 Oracle 볼륨을 식별한 다음 호스트에서 마운트 지점(예: Oracle 바이너리의 경우 u01, Oracle 데이터의 경우 u02, Oracle 로그의 경우 u03)을 확인합니다. VM과 동일한 VNet을 선택합니다. Next(다음): Protocol(프로토콜) > * 를 클릭합니다.
-
NFS 프로토콜을 선택하고 허용된 클라이언트에 Oracle 호스트 IP 주소를 추가한 다음 모든 IP 주소 0.0.0.0/0을 허용하는 기본 정책을 제거합니다. 그런 다음 * 다음: 태그 > * 를 클릭합니다.
-
필요한 경우 볼륨 태그를 추가합니다. 그런 다음 * 검토 + 생성 > * 을 클릭합니다.
-
유효성 검사에 통과하면 * Create * 를 클릭하여 볼륨을 생성합니다.
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 Database" CLI를 사용하여 플레이북을 실행합니다. CLI가 아닌 Azure 콘솔에서 데이터베이스 볼륨을 생성할 때 글로벌 VAR 파일의 변수 구성에서 ONTAP 부분을 무시할 수 있습니다.
툴킷 기본값은 RU 19.8과 함께 Oracle 19c를 구축합니다. 경미한 기본 구성 변경 사항이 있는 다른 모든 패치 수준에 쉽게 적용할 수 있습니다. 또한 기본 시드 데이터베이스 활성 로그 파일이 데이터 볼륨에 배포됩니다. 로그 볼륨에 활성 로그 파일이 필요한 경우 초기 구축 후 해당 로그 파일을 재이동해야 합니다. 필요한 경우 NetApp 솔루션 팀에 도움을 요청하십시오. |
Oracle용 애플리케이션 정합성 보장 스냅샷을 위해 AzAcSnap 백업 툴을 설정합니다
Azure Application-Consistent Snapshot Tool(AzAcSnap)은 스토리지 스냅샷을 생성하기 전에 애플리케이션 정합성 보장 상태로 전환하는 데 필요한 모든 오케스트레이션을 처리하여 타사 데이터베이스의 데이터를 보호할 수 있는 명령줄 툴입니다. 그런 다음 이러한 데이터베이스를 운영 상태로 되돌립니다. 데이터베이스 서버 호스트에 툴을 설치하는 것이 좋습니다. 다음 설치 및 구성 절차를 참조하십시오.
AzAcSnap 도구를 설치합니다
-
의 최신 버전을 가져옵니다 "AzArcSnap 설치 프로그램".
-
다운로드한 자체 설치 프로그램을 대상 시스템에 복사합니다.
-
기본 설치 옵션을 사용하여 루트 사용자로 자체 설치 프로그램을 실행합니다. 필요한 경우 를 사용하여 파일을 실행 가능하게 만듭니다
chmod +x *.run
명령../azacsnap_installer_v5.0.run -I
Oracle 접속 구성을 구성합니다
스냅샷 도구는 Oracle 데이터베이스와 통신하며 백업 모드를 설정하거나 해제할 수 있는 적절한 권한이 있는 데이터베이스 사용자가 필요합니다.
AzAcSnap 데이터베이스 사용자를 설정합니다
다음 예에서는 Oracle 데이터베이스 사용자를 설정하고 sqlplus를 사용하여 Oracle 데이터베이스 통신을 보여 줍니다. 예제 명령은 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;
Oracle Wallet을 사용하여 DB 액세스를 위한 Linux-user azacsnap 구성
AzAcSnap 기본 설치는 azacsnap OS 사용자를 생성합니다. Oracle Wallet에 저장된 암호를 사용하여 Oracle 데이터베이스 액세스를 위해 Bash 셸 환경을 구성해야 합니다.
-
루트 사용자로 를 실행합니다
cat /etc/oratab
호스트에서 ORACLE_HOME 및 ORACLE_SID 변수를 식별하는 명령입니다.cat /etc/oratab
-
azacsnap 사용자 bash 프로필에 oracle_home, oracle_SID, TNS_admin 및 경로 변수를 추가합니다. 필요에 따라 변수를 변경합니다.
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 User, AzPasswd1은 Oracle User의 데이터베이스 암호입니다. 전자지갑 암호를 묻는 메시지가 다시 나타납니다.
mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -createCredential AZACSNAP azacsnap AzPasswd1
-
를 생성합니다
tnsnames-ora
파일. 다음 명령 예에서는 호스트를 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
-
Wallet을 사용하여 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 user azacsnap user bin 디렉토리에 저장되고 적절한 시스템 권한으로 파일을 보호합니다.
JSON 파일의 형식이 위에서 설명한 대로 정확하게 지정되었는지 확인하십시오. 특히 큰따옴표로 묶인 URL(")을 사용하십시오. |
AzAcSnap 도구 설정을 완료합니다
다음 단계에 따라 스냅샷 도구를 구성하고 테스트합니다. 테스트 성공 후 첫 번째 데이터베이스 정합성 보장 스토리지 스냅샷을 수행할 수 있습니다.
-
스냅샷 사용자 계정으로 변경합니다.
su - azacsnap
-
명령 위치를 변경합니다.
cd /home/azacsnap/bin/
-
스토리지 백업 세부 정보 파일을 구성합니다. 이렇게 하면 가 생성됩니다
azacsnap.json
구성 파일.azacsnap -c configure –-configuration new
Oracle 볼륨 3개가 필요한 경우의 결과:
[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