Skip to main content
NetApp Solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

分步部署操作步骤

贡献者

此页面介绍了在 NetApp ONTAP 存储上部署 Oracle19c 的自动化方法。

AWX/Tower 部署 Oracle 19c 数据库

1. 为您的环境创建清单,组,主机和凭据

本节介绍如何在 AWX/Ansible 塔中设置清单,组,主机和访问凭据,以便为使用 NetApp 自动化解决方案的环境做好准备。

  1. 配置清单。

    1. 导航到资源→清单→添加,然后单击添加清单。

    2. 提供名称和组织详细信息,然后单击保存。

    3. 在清单页面上,单击已创建的清单。

    4. 如果存在任何清单变量,请将其粘贴到变量字段中。

    5. 导航到组子菜单,然后单击添加。

    6. 提供 ONTAP 的组名称,粘贴组变量(如果有),然后单击保存。

    7. 对 Oracle 的另一个组重复此过程。

    8. 选择已创建的 ONTAP 组,转到主机子菜单,然后单击添加新主机。

    9. 提供 ONTAP 集群管理 IP 的 IP 地址,粘贴主机变量(如果有),然后单击保存。

    10. 必须对 Oracle 组和 Oracle 主机管理 IP/ 主机名重复此过程。

  2. 创建凭据类型。对于涉及 ONTAP 的解决方案,您必须配置凭据类型以匹配用户名和密码条目。

    1. 导航到管理→凭据类型,然后单击添加。

    2. 提供名称和问题描述。

    3. 将以下内容粘贴到输入配置中:

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
  1. 将以下内容粘贴到注射器配置中:

extra_vars:
  password: '{{ password }}'
  username: '{{ username }}'
  vsadmin_password: '{{ vsadmin_password }}'
  1. 配置凭据。

    1. 导航到资源→凭据,然后单击添加。

    2. 输入 ONTAP 的名称和组织详细信息。

    3. 选择为 ONTAP 创建的自定义凭据类型。

    4. 在 Type Details 下,输入用户名,密码和 vsadmin_password 。

    5. 单击 Back to Credential ,然后单击 Add 。

    6. 输入 Oracle 的名称和组织详细信息。

    7. 选择计算机凭据类型。

    8. 在 Type Details 下,输入 Oracle 主机的 Username 和 Password 。

    9. 选择正确的权限升级方法,然后输入用户名和密码。

2. 创建项目

  1. 转至 "Resources" → "projects" ,然后单击 "Add" 。

    1. 输入名称和组织详细信息。

    2. 在源控制凭据类型字段中选择 Git 。

    3. 输入 …​ <https://github.com/NetApp-Automation/na_oracle19c_deploy.git> 作为源控制 URL 。

    4. 单击保存。

    5. 当源代码发生更改时,项目可能偶尔需要同步。

3. 配置 Oracle host_vars

本节中定义的变量将应用于每个 Oracle 服务器和数据库。

  1. 以以下嵌入式 Oracle hosts 变量或 host_vars 形式输入环境特定的参数。

备注 必须根据您的环境更改蓝色项。

主机 VARS 配置

######################################################################
##############      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"}
  1. 填写蓝色字段中的所有变量。

  2. 完成变量输入后,单击表单上的复制按钮以复制要传输到 AWX 或塔式的所有变量。

  3. 导航回 AWX 或塔式,然后转到资源→主机,选择并打开 Oracle 服务器配置页面。

  4. 在详细信息选项卡下,单击编辑并将从步骤 1 复制的变量粘贴到 YAML 选项卡下的变量字段。

  5. 单击保存。

  6. 对系统中的任何其他 Oracle 服务器重复此过程。

4. 配置全局变量

本节中定义的变量适用于所有 Oracle 主机,数据库和 ONTAP 集群。

  1. 在以下嵌入式全局变量或变量表单中输入环境特定的参数。

备注 必须根据您的环境更改蓝色项。
#######################################################################
###### 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"
  1. 在蓝色字段中填写所有变量。

  2. 完成变量输入后,单击表单上的复制按钮,将要传输到 AWX 或塔式的所有变量复制到以下作业模板中。

5. 配置并启动作业模板。

  1. 创建作业模板。

    1. 导航到资源→模板→添加,然后单击添加作业模板。

    2. 输入名称和问题描述

    3. 选择作业类型;运行将根据攻略手册配置系统,而检查将在不实际配置系统的情况下执行攻略手册的试运行。

    4. 为攻略手册选择相应的清单,项目,攻略手册和凭据。

    5. 选择 all_playbook.yml 作为要执行的默认攻略手册。

    6. 将从步骤 4 复制的全局变量粘贴到 YAML 选项卡下的模板变量字段中。

    7. 选中作业标记字段中的启动时提示框。

    8. 单击保存。

  2. 启动作业模板。

    1. 导航到资源→模板。

    2. 单击所需模板,然后单击启动。

    3. 在启动作业标记时系统提示时,键入 requirements_config 。您可能需要单击 requirements_config 下方的 Create Job Tag 行以输入作业标记。

备注 requirements_config 可确保您有正确的库来运行其他角色。
  1. 单击下一步,然后单击启动以启动作业。

  2. 单击查看→作业以监控作业输出和进度。

  3. 在启动作业标记时,系统提示您键入 ontap_config 。您可能需要单击 ontap_config 下方的 Create "Job Tag (创建作业标记) " 行以输入作业标记。

  4. 单击下一步,然后单击启动以启动作业。

  5. 单击查看→作业以监控作业输出和进度

  6. 完成 ontap_config 角色后,对 linux_config 再次运行此过程。

  7. 导航到资源→模板。

  8. 选择所需模板,然后单击启动。

  9. 在 Linux_config 中启动作业标记类型时,系统提示您选择 Linux_config 下方的创建 " 作业标记 " 行以输入作业标记。

  10. 单击下一步,然后单击启动以启动作业。

  11. 选择 View → Jobs 以监控作业输出和进度。

  12. 完成 Linux_config 角色后,对 ORACLE_CONFIG 再次运行此过程。

  13. 转至资源→模板。

  14. 选择所需模板,然后单击启动。

  15. 在启动作业标记时,系统提示您键入 ORACLE_CONFIG 。您可能需要选择 ORACLE_CONFIG 下方的 "Create Job Tag (创建作业标记) " 行以输入作业标记。

  16. 单击下一步,然后单击启动以启动作业。

  17. 选择 View → Jobs 以监控作业输出和进度。

6. 在同一 Oracle 主机上部署其他数据库

此攻略手册的 Oracle 部分会每次在 Oracle 服务器上创建一个 Oracle 容器数据库。要在同一服务器上创建其他容器数据库,请完成以下步骤。

  1. 修改 host_vars 变量。

    1. 返回到步骤 2 —配置 Oracle host_vars 。

    2. 将 Oracle SID 更改为其他命名字符串。

    3. 将侦听器端口更改为其他编号。

    4. 如果要安装 EM Express ,请将 EM Express 端口更改为其他编号。

    5. 将修订后的主机变量复制并粘贴到主机配置详细信息选项卡中的 Oracle 主机变量字段中。

  2. 启动仅包含 ORACLE_CONFIG 标记的部署作业模板。

  3. 以Oracle用户身份登录到Oracle服务器并执行以下命令:

    ps -ef | grep ora
    备注 如果安装按预期完成且 Oracle 数据库已启动,则此列表将列出 Oracle 进程
  4. 登录到数据库以检查数据库配置设置以及使用以下命令集创建的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运行正常。

  5. 使用以下命令通过侦听器连接到数据库以检查Oracle侦听器配置。更改为相应的侦听器端口和数据库服务名称。

    [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侦听器工作正常。

如何获取帮助?

如果您需要有关该工具包的帮助,请加入 "NetApp 解决方案自动化社区支持 Slack 通道" 并寻找解决方案自动化渠道来发布您的问题或询问。