Schrittweises Bereitstellungsverfahren
Dieses Dokument beschreibt die Bereitstellung von Oracle 19c mithilfe der Automatisierungs-Befehlszeilenschnittstelle (CLI).
CLI-Bereitstellung Oracle 19c-Datenbank
In diesem Abschnitt werden die erforderlichen Schritte zum Vorbereiten und Bereitstellen der Oracle19c-Datenbank mit der CLI beschrieben. Stellen Sie sicher, dass Sie die"Abschnitt „Erste Schritte und Anforderungen“" und Ihre Umgebung entsprechend vorbereitet.
Laden Sie das Oracle19c-Repository herunter
-
Führen Sie von Ihrem Ansible-Controller aus den folgenden Befehl aus:
git clone https://github.com/NetApp-Automation/na_oracle19c_deploy.git
-
Wechseln Sie nach dem Herunterladen des Repositorys in das Verzeichnis na_oracle19c_deploy <cd na_oracle19c_deploy>.
Bearbeiten Sie die Hosts-Datei
Führen Sie vor der Bereitstellung die folgenden Schritte aus:
-
Bearbeiten Sie das Verzeichnis na_oracle19c_deploy Ihrer Hosts-Datei.
-
Ändern Sie unter [ontap] die IP-Adresse in Ihre Cluster-Verwaltungs-IP.
-
Fügen Sie unter der Gruppe [oracle] die Namen der Oracle-Hosts hinzu. Der Hostname muss entweder über DNS oder die Hosts-Datei in seine IP-Adresse aufgelöst werden oder im Host angegeben werden.
-
Nachdem Sie diese Schritte abgeschlossen haben, speichern Sie alle Änderungen.
Das folgende Beispiel zeigt eine Hostdatei:
#ONTAP Host
[ontap]
"10.61.184.183"
#Oracle hosts
[oracle]
"rtpora01"
"rtpora02"
Dieses Beispiel führt das Playbook aus und stellt Oracle 19c gleichzeitig auf zwei Oracle-DB-Servern bereit. Sie können auch mit nur einem DB-Server testen. In diesem Fall müssen Sie nur eine Hostvariablendatei konfigurieren.
|
Das Playbook wird unabhängig von der Anzahl der bereitgestellten Oracle-Hosts und -Datenbanken auf die gleiche Weise ausgeführt. |
Bearbeiten Sie die Datei host_name.yml unter host_vars
Jeder Oracle-Host verfügt über eine Hostvariablendatei, die durch seinen Hostnamen identifiziert wird und hostspezifische Variablen enthält. Sie können für Ihren Host einen beliebigen Namen angeben. Bearbeiten und kopieren Sie die host_vars
aus dem Abschnitt Host VARS Config und fügen Sie es in Ihr gewünschtes host_name.yml
Datei.
|
Die blauen Elemente müssen geändert werden, damit sie zu Ihrer Umgebung passen. |
Host-VARS-Konfiguration
######################################################################
############## 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"}
Bearbeiten Sie die Datei vars.yml
Der vars.yml
Die Datei konsolidiert alle umgebungsspezifischen Variablen (ONTAP, Linux oder Oracle) für die Oracle-Bereitstellung.
-
Bearbeiten und kopieren Sie die Variablen aus dem Abschnitt VARS und fügen Sie diese Variablen in Ihre
vars.yml
Datei.
#######################################################################
###### 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"
Ausführen des Playbooks
Nachdem Sie die erforderlichen Umgebungsvoraussetzungen erfüllt und die Variablen in vars.yml
Und your_host.yml
, Sie sind jetzt bereit, die Playbooks bereitzustellen.
|
<Benutzername> muss geändert werden, damit es Ihrer Umgebung entspricht. |
-
Führen Sie das ONTAP -Playbook aus, indem Sie die richtigen Tags und den ONTAP Cluster-Benutzernamen übergeben. Geben Sie das Kennwort für den ONTAP Cluster und vsadmin ein, wenn Sie dazu aufgefordert werden.
ansible-playbook -i hosts all_playbook.yml -u username -k -K -t ontap_config -e @vars/vars.yml
-
Führen Sie das Linux-Playbook aus, um den Linux-Teil der Bereitstellung auszuführen. Eingabe für das Admin-SSH-Passwort sowie das Sudo-Passwort.
ansible-playbook -i hosts all_playbook.yml -u username -k -K -t linux_config -e @vars/vars.yml
-
Führen Sie das Oracle-Playbook aus, um den Oracle-Teil der Bereitstellung auszuführen. Eingabe für das Admin-SSH-Passwort sowie das Sudo-Passwort.
ansible-playbook -i hosts all_playbook.yml -u username -k -K -t oracle_config -e @vars/vars.yml
Bereitstellen einer zusätzlichen Datenbank auf demselben Oracle-Host
Der Oracle-Teil des Playbooks erstellt pro Ausführung eine einzelne Oracle-Containerdatenbank auf einem Oracle-Server. Führen Sie die folgenden Schritte aus, um eine zusätzliche Containerdatenbank auf demselben Server zu erstellen:
-
Überarbeiten Sie die host_vars-Variablen.
-
Gehen Sie zurück zu Schritt 3 - Bearbeiten Sie die
host_name.yml
Datei unterhost_vars
. -
Ändern Sie die Oracle-SID in eine andere Namenszeichenfolge.
-
Ändern Sie den Listener-Port auf eine andere Nummer.
-
Ändern Sie den EM Express-Port in eine andere Nummer, wenn Sie EM Express installiert haben.
-
Kopieren Sie die überarbeiteten Hostvariablen und fügen Sie sie in die Oracle-Hostvariablendatei unter
host_vars
.
-
-
Führen Sie das Playbook mit dem
oracle_config
Tag wie oben gezeigt inAusführen des Playbooks .
Überprüfen der Oracle-Installation
-
Melden Sie sich als Oracle-Benutzer beim Oracle-Server an und führen Sie die folgenden Befehle aus:
ps -ef | grep ora
Hier werden Oracle-Prozesse aufgelistet, wenn die Installation wie erwartet abgeschlossen und Oracle DB gestartet wurde. -
Melden Sie sich bei der Datenbank an, um die Datenbankkonfigurationseinstellungen und die mit den folgenden Befehlssätzen erstellten PDBs zu überprüfen.
[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
Dies bestätigt, dass dNFS ordnungsgemäß funktioniert.
-
Stellen Sie über den Listener eine Verbindung zur Datenbank her, um die Oracle-Listener-Konfiguration mit dem folgenden Befehl zu überprüfen. Wechseln Sie zum entsprechenden Listener-Port und Datenbankdienstnamen.
[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
Dies bestätigt, dass der Oracle-Listener ordnungsgemäß funktioniert.
Wo bekomme ich Hilfe?
Wenn Sie Hilfe mit dem Toolkit benötigen, treten Sie bitte dem bei"Slack-Kanal für den Community-Support von NetApp Solution Automation" und suchen Sie nach dem Kanal zur Lösungsautomatisierung, um Ihre Fragen oder Anfragen zu posten.