단계별 배포 절차
이 페이지에서는 NetApp ONTAP 스토리지에 Oracle19c를 구축하는 자동화된 방법에 대해 설명합니다.
AWX/Tower 구축 Oracle 19c Database
환경의 인벤토리, 그룹, 호스트 및 자격 증명을 생성합니다
이 섹션에서는 NetApp 자동화 솔루션을 사용하는 환경을 준비하기 위해 AWX/Ansible 타워에서 인벤토리, 그룹, 호스트, 액세스 자격 증명을 설정하는 방법을 설명합니다.
-
인벤토리를 구성합니다.
-
Resources(리소스) → Inventory(인벤토리) → Add(추가) 로 이동하고 Add Inventory(재고 추가) 를 클릭합니다.
-
이름 및 조직 세부 정보를 입력하고 저장 을 클릭합니다.
-
재고 페이지에서 생성된 재고를 클릭합니다.
-
재고 변수가 있는 경우 변수 필드에 붙여 넣습니다.
-
Groups 하위 메뉴로 이동하여 Add를 클릭합니다.
-
ONTAP 그룹 이름을 입력하고 그룹 변수(있는 경우)를 붙여 넣은 다음 저장을 클릭합니다.
-
Oracle에 대해 다른 그룹에 대해서도 이 프로세스를 반복합니다.
-
생성된 ONTAP 그룹을 선택하고 Hosts 하위 메뉴로 이동한 다음 Add New Host를 클릭합니다.
-
ONTAP 클러스터 관리 IP의 IP 주소를 제공하고 호스트 변수(있는 경우)를 붙여 넣은 다음 저장 을 클릭합니다.
-
Oracle 그룹 및 Oracle 호스트 관리 IP/호스트 이름에 대해 이 프로세스를 반복해야 합니다.
-
-
자격 증명 유형을 만듭니다. ONTAP와 관련된 솔루션의 경우 자격 증명 유형을 사용자 이름 및 암호 항목과 일치하도록 구성해야 합니다.
-
Administration → Credential Types로 이동한 후 Add를 클릭합니다.
-
이름과 설명을 입력합니다.
-
입력 구성에 다음 내용을 붙여 넣습니다.
-
fields:
- id: username
type: string
label: Username
- id: password
type: string
label: Password
secret: true
- id: vsadmin_password
type: string
label: vsadmin_password
secret: true
-
다음 내용을 주입기 구성에 붙여넣습니다.
extra_vars:
password: '{{ password }}'
username: '{{ username }}'
vsadmin_password: '{{ vsadmin_password }}'
-
자격 증명을 구성합니다.
-
Resources → Credentials로 이동한 후 Add를 클릭합니다.
-
ONTAP의 이름과 조직 세부 정보를 입력합니다.
-
ONTAP에 대해 만든 사용자 지정 자격 증명 유형을 선택합니다.
-
세부 정보 입력 아래에 사용자 이름, 암호 및 vsadmin_password를 입력합니다.
-
자격 증명으로 돌아가기 를 클릭하고 추가 를 클릭합니다.
-
Oracle의 이름 및 조직 세부 정보를 입력합니다.
-
시스템 자격 증명 유형을 선택합니다.
-
유형 세부 정보 에서 Oracle 호스트의 사용자 이름 및 암호를 입력합니다.
-
올바른 권한 에스컬레이션 방법을 선택하고 사용자 이름과 암호를 입력합니다.
-
프로젝트를 만듭니다
-
Resources → Projects로 이동하여 Add를 클릭합니다.
-
이름 및 조직 세부 정보를 입력합니다.
-
소스 제어 자격 증명 유형 필드에서 Git 를 선택합니다.
-
소스 제어 URL로 를
https://github.com/NetApp-Automation/na_oracle19c_deploy.git
입력합니다. -
저장 을 클릭합니다.
-
소스 코드가 변경되면 프로젝트를 가끔 동기화해야 할 수 있습니다.
-
Oracle host_VAR을 구성합니다
이 섹션에 정의된 변수는 각 개별 Oracle 서버 및 데이터베이스에 적용됩니다.
-
다음과 같은 내장된 Oracle hosts 변수 또는 host_vars 양식에 환경별 매개 변수를 입력합니다.
파란색 항목은 환경에 맞게 변경해야 합니다. |
호스트 VAR 구성
######################################################################
############## Host Variables Configuration ##############
######################################################################
# Add your Oracle Host
ansible_host: "10.61.180.15"
# Oracle db log archive mode: true - ARCHIVELOG or false - NOARCHIVELOG
log_archive_mode: "true"
# Number of pluggable databases per container instance identified by sid. Pdb_name specifies the prefix for container database naming in this case cdb2_pdb1, cdb2_pdb2, cdb2_pdb3
oracle_sid: "cdb2"
pdb_num: "3"
pdb_name: "{{ oracle_sid }}_pdb"
# CDB listener port, use different listener port for additional CDB on same host
listener_port: "1523"
# CDB is created with SGA at 75% of memory_limit, MB. Consider how many databases to be hosted on the node and how much ram to be allocated to each DB. The grand total SGA should not exceed 75% available RAM on node.
memory_limit: "5464"
# Set "em_configuration: DBEXPRESS" to install enterprise manager express and choose a unique port from 5500 to 5599 for each sid on the host.
# Leave them black if em express is not installed.
em_configuration: "DBEXPRESS"
em_express_port: "5501"
# {{groups.oracle[0]}} represents first Oracle DB server as defined in Oracle hosts group [oracle]. For concurrent multiple Oracle DB servers deployment, [0] will be incremented for each additional DB server. For example, {{groups.oracle[1]}}" represents DB server 2, "{{groups.oracle[2]}}" represents DB server 3 ... As a good practice and the default, minimum three volumes is allocated to a DB server with corresponding /u01, /u02, /u03 mount points, which store oracle binary, oracle data, and oracle recovery files respectively. Additional volumes can be added by click on "More NFS volumes" but the number of volumes allocated to a DB server must match with what is defined in global vars file by volumes_nfs parameter, which dictates how many volumes are to be created for each DB server.
host_datastores_nfs:
- {vol_name: "{{groups.oracle[0]}}_u01", aggr_name: "aggr01_node01", lif: "172.21.94.200", size: "25"}
- {vol_name: "{{groups.oracle[0]}}_u02", aggr_name: "aggr01_node01", lif: "172.21.94.200", size: "25"}
- {vol_name: "{{groups.oracle[0]}}_u03", aggr_name: "aggr01_node01", lif: "172.21.94.200", size: "25"}
-
파란색 필드에 모든 변수를 입력합니다.
-
변수 입력을 완료한 후 양식의 복사 버튼을 클릭하여 AWX 또는 타워로 전송할 모든 변수를 복사합니다.
-
AWX 또는 Tower로 돌아가서 Resources → Hosts 로 이동한 다음 Oracle 서버 구성 페이지를 선택하여 엽니다.
-
세부 정보 탭에서 편집 을 클릭하고 1단계에서 복사한 변수를 YAML 탭의 변수 필드에 붙여 넣습니다.
-
저장 을 클릭합니다.
-
시스템에 있는 모든 추가 Oracle 서버에 대해 이 프로세스를 반복합니다.
글로벌 변수를 설정합니다
이 섹션에 정의된 변수는 모든 Oracle 호스트, 데이터베이스 및 ONTAP 클러스터에 적용됩니다.
-
다음 임베디드 글로벌 변수 또는 VAR 양식에 환경별 매개 변수를 입력합니다.
파란색 항목은 환경에 맞게 변경해야 합니다. |
#######################################################################
###### Oracle 19c deployment global user configuration variables ######
###### Consolidate all variables from ontap, linux and oracle ######
#######################################################################
###########################################
### Ontap env specific config variables ###
###########################################
#Inventory group name
#Default inventory group name - 'ontap'
#Change only if you are changing the group name either in inventory/hosts file or in inventory groups in case of AWX/Tower
hosts_group: "ontap"
#CA_signed_certificates (ONLY CHANGE to 'true' IF YOU ARE USING CA SIGNED CERTIFICATES)
ca_signed_certs: "false"
#Names of the Nodes in the ONTAP Cluster
nodes:
- "AFF-01"
- "AFF-02"
#Storage VLANs
#Add additional rows for vlans as necessary
storage_vlans:
- {vlan_id: "203", name: "infra_NFS", protocol: "NFS"}
More Storage VLANsEnter Storage VLANs details
#Details of the Data Aggregates that need to be created
#If Aggregate creation takes longer, subsequent tasks of creating volumes may fail.
#There should be enough disks already zeroed in the cluster, otherwise aggregate create will zero the disks and will take long time
data_aggregates:
- {aggr_name: "aggr01_node01"}
- {aggr_name: "aggr01_node02"}
#SVM name
svm_name: "ora_svm"
# SVM Management LIF Details
svm_mgmt_details:
- {address: "172.21.91.100", netmask: "255.255.255.0", home_port: "e0M"}
# NFS storage parameters when data_protocol set to NFS. Volume named after Oracle hosts name identified by mount point as follow for oracle DB server 1. Each mount point dedicates to a particular Oracle files: u01 - Oracle binary, u02 - Oracle data, u03 - Oracle redo. Add additional volumes by click on "More NFS volumes" and also add the volumes list to corresponding host_vars as host_datastores_nfs variable. For multiple DB server deployment, additional volumes sets needs to be added for additional DB server. Input variable "{{groups.oracle[1]}}_u01", "{{groups.oracle[1]}}_u02", and "{{groups.oracle[1]}}_u03" as vol_name for second DB server. Place volumes for multiple DB servers alternatingly between controllers for balanced IO performance, e.g. DB server 1 on controller node1, DB server 2 on controller node2 etc. Make sure match lif address with controller node.
volumes_nfs:
- {vol_name: "{{groups.oracle[0]}}_u01", aggr_name: "aggr01_node01", lif: "172.21.94.200", size: "25"}
- {vol_name: "{{groups.oracle[0]}}_u02", aggr_name: "aggr01_node01", lif: "172.21.94.200", size: "25"}
- {vol_name: "{{groups.oracle[0]}}_u03", aggr_name: "aggr01_node01", lif: "172.21.94.200", size: "25"}
#NFS LIFs IP address and netmask
nfs_lifs_details:
- address: "172.21.94.200" #for node-1
netmask: "255.255.255.0"
- address: "172.21.94.201" #for node-2
netmask: "255.255.255.0"
#NFS client match
client_match: "172.21.94.0/24"
###########################################
### Linux env specific config variables ###
###########################################
#NFS Mount points for Oracle DB volumes
mount_points:
- "/u01"
- "/u02"
- "/u03"
# Up to 75% of node memory size divided by 2mb. Consider how many databases to be hosted on the node and how much ram to be allocated to each DB.
# Leave it blank if hugepage is not configured on the host.
hugepages_nr: "1234"
# RedHat subscription username and password
redhat_sub_username: "xxx"
redhat_sub_password: "xxx"
####################################################
### DB env specific install and config variables ###
####################################################
db_domain: "your.domain.com"
# Set initial password for all required Oracle passwords. Change them after installation.
initial_pwd_all: "netapp123"
-
파란색 필드에 모든 변수를 입력합니다.
-
변수 입력을 완료한 후 양식의 복사 버튼을 클릭하여 AWX 또는 Tower로 전송할 모든 변수를 다음 작업 템플릿으로 복사합니다.
작업 템플릿을 구성하고 시작합니다.
-
작업 템플릿을 작성합니다.
-
Resources → Templates → Add로 이동하여 Add Job Template을 클릭합니다.
-
이름과 설명을 입력합니다
-
작업 유형을 선택합니다. Run은 Playbook을 기반으로 시스템을 구성하고 Check는 실제로 시스템을 구성하지 않고 Playbook을 건조하게 실행합니다.
-
Playbook의 해당 인벤토리, 프로젝트, 플레이북 및 자격 증명을 선택합니다.
-
All_Playbook.yml을 실행할 기본 플레이북으로 선택합니다.
-
4단계에서 복사한 글로벌 변수를 YAML 탭의 템플릿 변수 필드에 붙여 넣습니다.
-
작업 태그 필드에서 시작 시 프롬프트 표시 확인란을 선택합니다.
-
저장 을 클릭합니다.
-
-
작업 템플릿을 시작합니다.
-
리소스 → 템플릿 으로 이동합니다.
-
원하는 템플릿을 클릭한 다음 실행을 클릭합니다.
-
작업 태그를 시작할 때 메시지가 나타나면 requirements_config 를 입력합니다. 작업 태그를 입력하려면 requirements_config 아래의 작업 태그 작성 줄을 클릭해야 할 수도 있습니다.
-
requirements_config 다른 역할을 실행할 올바른 라이브러리가 있는지 확인합니다. |
-
다음 을 클릭한 다음 시작 을 클릭하여 작업을 시작합니다.
-
보기 → 작업 을 클릭하여 작업 출력 및 진행률을 모니터링합니다.
-
작업 태그를 시작할 때 프롬프트가 표시되면 ONTAP_config를 입력합니다. ONTAP_config 바로 아래에 있는 "작업 태그" 생성 라인을 클릭하여 작업 태그를 입력해야 할 수 있습니다.
-
다음 을 클릭한 다음 시작 을 클릭하여 작업을 시작합니다.
-
보기 → 작업 을 클릭하여 작업 출력 및 진행률을 모니터링합니다
-
ONTAP_config 역할이 완료된 후 Linux_config에 대해 프로세스를 다시 실행하십시오.
-
리소스 → 템플릿 으로 이동합니다.
-
원하는 템플릿을 선택한 다음 실행을 클릭합니다.
-
Linux_config에서 작업 태그 유형을 시작할 때 메시지가 표시되면 Linux_config 바로 아래의 "작업 태그 생성" 행을 선택하여 작업 태그를 입력해야 할 수 있습니다.
-
다음 을 클릭한 다음 시작 을 클릭하여 작업을 시작합니다.
-
보기 → 작업 을 선택하여 작업 출력 및 진행률을 모니터링합니다.
-
Linux_config 역할이 완료된 후 ORACLE_config에 대해 프로세스를 다시 실행하십시오.
-
리소스 → 템플릿 으로 이동합니다.
-
원하는 템플릿을 선택한 다음 실행을 클릭합니다.
-
작업 태그 시작 시 메시지가 표시되면 ORACLE_config 를 입력합니다. 작업 태그를 입력하려면 ORACLE_config 바로 아래에 있는 "작업 태그 생성" 행을 선택해야 할 수 있습니다.
-
다음 을 클릭한 다음 시작 을 클릭하여 작업을 시작합니다.
-
보기 → 작업 을 선택하여 작업 출력 및 진행률을 모니터링합니다.
동일한 Oracle 호스트에 추가 데이터베이스를 구축합니다
플레이북의 Oracle 부분은 실행 당 Oracle 서버에 단일 Oracle 컨테이너 데이터베이스를 생성합니다. 동일한 서버에 추가 컨테이너 데이터베이스를 만들려면 다음 단계를 완료하십시오.
-
host_vars 변수를 수정합니다.
-
2단계 - Configure Oracle host_VAR로 돌아갑니다.
-
Oracle SID를 다른 명명 문자열로 변경합니다.
-
수신기 포트를 다른 번호로 변경합니다.
-
EM Express를 설치할 경우 EM Express 포트를 다른 번호로 변경하십시오.
-
호스트 구성 세부 정보 탭의 Oracle 호스트 변수 필드에 수정된 호스트 변수를 복사하여 붙여 넣습니다.
-
-
ORACLE_config 태그만 사용하여 구축 작업 템플릿을 시작합니다.
-
Oracle 서버에 Oracle 사용자로 로그인하고 다음 명령을 실행합니다.
ps -ef | grep ora
설치가 예상대로 완료되고 Oracle DB가 시작되면 Oracle 프로세스가 나열됩니다 -
데이터베이스에 로그인하여 다음 명령 세트로 생성된 DB 구성 설정과 PDB를 확인합니다.
[oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu May 6 12:52:51 2021 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> SQL> select name, log_mode from v$database; NAME LOG_MODE --------- ------------ CDB2 ARCHIVELOG SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 CDB2_PDB1 READ WRITE NO 4 CDB2_PDB2 READ WRITE NO 5 CDB2_PDB3 READ WRITE NO col svrname form a30 col dirname form a30 select svrname, dirname, nfsversion from v$dnfs_servers; SQL> col svrname form a30 SQL> col dirname form a30 SQL> select svrname, dirname, nfsversion from v$dnfs_servers; SVRNAME DIRNAME NFSVERSION ------------------------------ ------------------------------ ---------------- 172.21.126.200 /rhelora03_u02 NFSv3.0 172.21.126.200 /rhelora03_u03 NFSv3.0 172.21.126.200 /rhelora03_u01 NFSv3.0
그러면 dNFS가 제대로 작동하고 있음을 확인할 수 있습니다.
-
다음 명령을 사용하여 listener를 통해 데이터베이스에 연결하여 hte oracle listener 구성을 확인합니다. 적절한 수신기 포트 및 데이터베이스 서비스 이름으로 변경합니다.
[oracle@localhost ~]$ sqlplus system@//localhost:1523/cdb2_pdb1.cie.netapp.com SQL*Plus: Release 19.0.0.0.0 - Production on Thu May 6 13:19:57 2021 Version 19.8.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Enter password: Last Successful login time: Wed May 05 2021 17:11:11 -04:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.8.0.0.0 SQL> show user USER is "SYSTEM" SQL> show con_name CON_NAME CDB2_PDB1
이를 통해 Oracle Listener가 제대로 작동하고 있음을 확인할 수 있습니다.
도움을 받을 수 있는 곳
툴킷에 대한 도움이 필요한 경우 에 가입하십시오 "NetApp 솔루션 자동화 커뮤니티는 여유 채널을 지원합니다" 질문 또는 질문을 게시할 수 있는 솔루션 자동화 채널을 찾아보십시오.