Schritt-für-Schritt-Anweisungen zur Implementierung
Auf dieser Seite wird die automatisierte Methode zur Implementierung von Oracle19c auf NetApp ONTAP Storage beschrieben.
AWX/Tower-Implementierung der Oracle 19c-Datenbank
1. Erstellen Sie das Inventar, die Gruppe, die Hosts und die Anmeldeinformationen für Ihre Umgebung
In diesem Abschnitt wird die Einrichtung von Inventar, Gruppen, Hosts und Zugangsdaten im AWX/Ansible Tower beschrieben, die die Umgebung für den Einsatz automatisierter NetApp Lösungen vorbereiten.
-
Konfigurieren Sie den Bestand.
-
Navigieren Sie zu Ressourcen → Inventar → Hinzufügen, und klicken Sie auf Inventar hinzufügen.
-
Geben Sie den Namen und die Organisationsdetails ein, und klicken Sie auf Speichern.
-
Klicken Sie auf der Seite Inventar auf den erstellten Bestand.
-
Wenn es Bestandsvariablen gibt, fügen Sie diese in das Feld Variablen ein.
-
Navigieren Sie zum Untermenü Gruppen, und klicken Sie auf Hinzufügen.
-
Geben Sie den Namen der Gruppe für ONTAP ein, fügen Sie die Gruppenvariablen ein (falls vorhanden) und klicken Sie auf Speichern.
-
Wiederholen Sie den Vorgang für eine andere Gruppe für Oracle.
-
Wählen Sie die erstellte ONTAP-Gruppe aus, gehen Sie zum Untermenü Hosts und klicken Sie auf Neuen Host hinzufügen.
-
Geben Sie die IP-Adresse der ONTAP-Cluster-Management-IP an, fügen Sie die Host-Variablen ein (falls vorhanden), und klicken Sie auf Speichern.
-
Dieser Prozess muss für die Oracle-Gruppe und für Oracle-Host(s)-Management-IP/Hostname wiederholt werden.
-
-
Erstellen von Anmeldungstypen. Bei Lösungen, die ONTAP verwenden, müssen Sie den Anmeldeinformationstyp so konfigurieren, dass er mit den Einträgen für Benutzernamen und Kennwort übereinstimmt.
-
Navigieren Sie zu Administration → Credential Types, und klicken Sie auf Add.
-
Geben Sie den Namen und eine Beschreibung an.
-
Fügen Sie den folgenden Inhalt in die Eingabekonfiguration ein:
-
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
-
Fügen Sie folgenden Inhalt in die Konfiguration des Injektors ein:
extra_vars:
password: '{{ password }}'
username: '{{ username }}'
vsadmin_password: '{{ vsadmin_password }}'
-
Konfigurieren Sie die Anmeldedaten.
-
Navigieren Sie zu Resources → Credentials, und klicken Sie auf Add.
-
Geben Sie den Namen und die Organisationsdetails für ONTAP ein.
-
Wählen Sie den benutzerdefinierten Anmeldungstyp aus, den Sie für ONTAP erstellt haben.
-
Geben Sie unter „Type Details“ den Benutzernamen, das Passwort und das vsadmin_password ein.
-
Klicken Sie auf Zurück zur Anmeldeinformation, und klicken Sie auf Hinzufügen.
-
Geben Sie den Namen und die Organisationsdetails für Oracle ein.
-
Wählen Sie den Typ der Geräteanmeldeinformationen aus.
-
Geben Sie unter „Typdetails“ den Benutzernamen und das Kennwort für die Oracle-Hosts ein.
-
Wählen Sie die richtige Privilege-Eskalationsmethode aus, und geben Sie Benutzernamen und Kennwort ein.
-
2. Erstellen Sie ein Projekt
-
Gehen Sie zu Ressourcen → Projekte, und klicken Sie auf Hinzufügen.
-
Geben Sie den Namen und die Organisationsdetails ein.
-
Wählen Sie im Feld Quellenkontrolle Credential Type die Option Git aus.
-
Eingabe <https://github.com/NetApp-Automation/na_oracle19c_deploy.git> Als URL für die Quellensteuerung.
-
Klicken Sie auf Speichern .
-
Das Projekt muss gelegentlich synchronisiert werden, wenn sich der Quellcode ändert.
-
3. Oracle Host_vars konfigurieren
Die in diesem Abschnitt definierten Variablen werden auf jeden einzelnen Oracle Server und jede Datenbank angewendet.
-
Geben Sie Ihre umgebungsspezifischen Parameter in das folgende eingebettete Oracle-Hosts-Variablen oder Host_vars-Formular ein.
Die blauen Elemente müssen an Ihre Umgebung angepasst werden. |
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"}
-
Füllen Sie alle Variablen in die blauen Felder ein.
-
Klicken Sie nach Abschluss der Variablen auf die Schaltfläche Kopieren im Formular, um alle Variablen zu kopieren, die an AWX oder Tower übertragen werden sollen.
-
Navigieren Sie zurück zu AWX oder Tower, und gehen Sie zu Ressourcen → Hosts, und wählen Sie und öffnen Sie die Konfigurationsseite für den Oracle-Server.
-
Klicken Sie auf der Registerkarte Details auf Bearbeiten und fügen Sie die kopierten Variablen aus Schritt 1 in das Feld Variablen unter der Registerkarte YAML ein.
-
Klicken Sie auf Speichern .
-
Wiederholen Sie diesen Vorgang für alle weiteren Oracle Server im System.
4. Globale Variablen konfigurieren
Die in diesem Abschnitt definierten Variablen gelten für alle Oracle Hosts, Datenbanken und den ONTAP Cluster.
-
Geben Sie Ihre umgebungsspezifischen Parameter in das folgende eingebettete globale Variablen oder Vars-Formular ein.
Die blauen Elemente müssen an Ihre Umgebung angepasst werden. |
#######################################################################
###### 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"
-
Alle Variablen in blaue Felder eintragen.
-
Klicken Sie nach Abschluss der Variablen auf die Schaltfläche Kopieren im Formular, um alle Variablen zu kopieren, die an AWX oder Tower übertragen werden sollen, in die folgende Jobvorlage.
5. Konfigurieren und starten Sie die Jobvorlage.
-
Erstellen Sie die Job-Vorlage.
-
Navigieren Sie zu Ressourcen → Vorlagen → Hinzufügen, und klicken Sie auf Job Template hinzufügen.
-
Geben Sie den Namen und die Beschreibung ein
-
Wählen Sie den Jobtyp aus. Führen Sie die Konfiguration des Systems anhand eines Playbooks aus, und prüfen Sie, ob ein Playbook trocken ausgeführt wird, ohne das System tatsächlich zu konfigurieren.
-
Wählen Sie den entsprechenden Bestand, das Projekt, das Playbook und die Zugangsdaten für das Playbook aus.
-
Wählen Sie all_Playbook.yml als Standard-Playbook aus, das ausgeführt werden soll.
-
Fügen Sie globale Variablen, die aus Schritt 4 kopiert wurden, in das Feld Vorlagenvariablen unter der Registerkarte YAML ein.
-
Aktivieren Sie das Kontrollkästchen Aufforderung zum Starten im Feld Job-Tags.
-
Klicken Sie auf Speichern .
-
-
Starten Sie die Jobvorlage.
-
Navigieren Sie zu Ressourcen → Vorlagen.
-
Klicken Sie auf die gewünschte Vorlage und dann auf Starten.
-
Wenn Sie beim Start nach Job-Tags gefragt werden, geben Sie Anforderungen_config ein. Möglicherweise müssen Sie unter Requirements_config auf die Zeile Job-Tag erstellen klicken, um die Job-Tag-Nummer einzugeben.
-
Requirements_config stellt sicher, dass Sie über die richtigen Bibliotheken verfügen, um die anderen Rollen auszuführen. |
-
Klicken Sie auf Weiter und dann auf Start, um den Job zu starten.
-
Klicken Sie auf Ansicht → Jobs, um die Jobausgabe und den Fortschritt zu überwachen.
-
Wenn Sie zur Einführung von Job-Tags aufgefordert werden, geben sie ontap_config ein. Sie müssen möglicherweise direkt unter ontap_config auf die Zeile „Job Tag erstellen“ klicken, um das Job-Tag einzugeben.
-
Klicken Sie auf Weiter und dann auf Start, um den Job zu starten.
-
Klicken Sie auf Ansicht → Jobs, um die Jobausgabe und den Fortschritt zu überwachen
-
Führen Sie nach Abschluss der rolle ontap_config den Prozess für linux_config erneut aus.
-
Navigieren Sie zu Ressourcen → Vorlagen.
-
Wählen Sie die gewünschte Vorlage aus, und klicken Sie dann auf Starten.
-
Wenn Sie beim Start aufgefordert werden, geben Sie die Job-Tags in linux_config ein, müssen Sie möglicherweise die Zeile „Job-Tag erstellen“ direkt unter linux_config auswählen, um das Job-Tag einzugeben.
-
Klicken Sie auf Weiter und dann auf Start, um den Job zu starten.
-
Wählen Sie Ansicht → Jobs, um die Jobausgabe und den Fortschritt zu überwachen.
-
Führen Sie nach Abschluss der rolle linux_config den Prozess für oracle_config erneut aus.
-
Gehen Sie zu Ressourcen → Vorlagen.
-
Wählen Sie die gewünschte Vorlage aus, und klicken Sie dann auf Starten.
-
Wenn Sie beim Start nach Job-Tags gefragt werden, geben sie oracle_config ein. Sie müssen möglicherweise die Zeile „Job Tag erstellen“ direkt unter oracle_config auswählen, um das Job-Tag einzugeben.
-
Klicken Sie auf Weiter und dann auf Start, um den Job zu starten.
-
Wählen Sie Ansicht → Jobs, um die Jobausgabe und den Fortschritt zu überwachen.
6. Implementieren Sie zusätzliche Datenbank auf demselben Oracle Host
Der Oracle Teil des Playbook erstellt pro Ausführung eine einzelne Oracle-Container-Datenbank auf einem Oracle-Server. Führen Sie die folgenden Schritte aus, um zusätzliche Container-Datenbanken auf demselben Server zu erstellen.
-
Host_Vars-Variablen überarbeiten.
-
Zurück zu Schritt 2 - Oracle Host_Vars konfigurieren.
-
Ändern Sie Oracle SID zu einer anderen Namenskonvention.
-
Ändern Sie den Listener-Port in eine andere Zahl.
-
Ändern Sie den EM Express-Port in eine andere Nummer, wenn Sie EM Express installieren.
-
Kopieren Sie die überarbeiteten Hostvariablen in das Feld Oracle Host Variables auf der Registerkarte Host Configuration Detail.
-
-
Starten Sie die Jobvorlage für die Bereitstellung nur mit dem tag oracle_config.
-
Melden Sie sich beim Oracle-Server als Oracle-Benutzer an und führen Sie die folgenden Befehle aus:
ps -ef | grep ora
Auf diese Weise werden die oracle-Prozesse aufgeführt, wenn die Installation wie erwartet abgeschlossen wurde und die oracle DB gestartet wurde -
Melden Sie sich bei der Datenbank an, um die db-Konfigurationseinstellungen und die PDBs zu überprüfen, die mit den folgenden Befehlssätzen erstellt wurden.
[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 richtig funktioniert.
-
Stellen Sie über Listener eine Verbindung zur Datenbank her, um die Konfiguration des Oracle Listener 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 Oracle Listener ordnungsgemäß funktioniert.
Wo Hilfe benötigt wird?
Wenn Sie Hilfe mit dem Toolkit benötigen, nehmen Sie bitte an der Teil "NetApp Solution Automation Community Support Slack Channel" Und suchen Sie den Kanal zur Lösungsautomatisierung, um Ihre Fragen zu stellen oder zu fragen.