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

分步部署操作步骤

贡献者

本页介绍了 NetApp ONTAP 存储上 Oracle19c 的自动数据保护。

AWX/ 塔式 Oracle 数据保护

为您的环境创建清单、组、主机和凭据

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

  1. 配置清单。

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

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

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

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

    5. 提供第一个组的名称 oracle ,然后单击 Save 。

    6. 对名为 dr_oracle 的第二个组重复此过程。

    7. 选择已创建的 Oracle 组,转至主机子菜单,然后单击添加新主机。

    8. 提供源 Oracle 主机管理 IP 的 IP 地址,然后单击保存。

    9. 必须对 dr_oracle 组重复此过程,并添加 DR/Destination Oracle 主机的管理 IP/ 主机名。

备注 下面介绍了如何使用 ONTAP 为内部部署或 AWS 上的 CVO 创建凭据类型和凭据。
内部
  1. 配置凭据。

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

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

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

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

      fields:
        - id: dst_cluster_username
          type: string
          label: Destination Cluster Username
        - id: dst_cluster_password
          type: string
          label: Destination Cluster Password
          secret: true
        - id: src_cluster_username
          type: string
          label: Source Cluster Username
        - id: src_cluster_password
          type: string
          label: Source Cluster Password
          secret: true
    4. 将以下内容粘贴到 " 注入器配置 " 中,然后单击保存:

      extra_vars:
        dst_cluster_username: '{{ dst_cluster_username }}'
        dst_cluster_password: '{{ dst_cluster_password }}'
        src_cluster_username: '{{ src_cluster_username }}'
        src_cluster_password: '{{ src_cluster_password }}'
  3. 为 ONTAP 创建凭据

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

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

    3. 选择上一步中创建的凭据类型。

    4. 在 Type Details 下,输入源集群和目标集群的用户名和密码。

    5. 单击保存。

  4. 为 Oracle 创建凭据

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

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

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

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

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

    6. 单击保存。

    7. 如果需要为 dr_oracle 主机配置其他凭据,请重复此过程。

CVO
  1. 配置凭据。

  2. 创建凭据类型。对于涉及 ONTAP 的解决方案,您必须配置凭据类型以匹配用户名和密码条目,我们还会为 Cloud Central 和 AWS 添加条目。

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

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

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

      fields:
        - id: dst_cluster_username
          type: string
          label: CVO Username
        - id: dst_cluster_password
          type: string
          label: CVO Password
          secret: true
        - id: cvo_svm_password
          type: string
          label: CVO SVM Password
          secret: true
        - id: src_cluster_username
          type: string
          label: Source Cluster Username
        - id: src_cluster_password
          type: string
          label: Source Cluster Password
          secret: true
        - id: regular_id
          type: string
          label: Cloud Central ID
          secret: true
        - id: email_id
          type: string
          label: Cloud Manager Email
          secret: true
        - id: cm_password
          type: string
          label: Cloud Manager Password
          secret: true
        - id: access_key
          type: string
          label: AWS Access Key
          secret: true
        - id: secret_key
          type: string
          label: AWS Secret Key
          secret: true
        - id: token
          type: string
          label: Cloud Central Refresh Token
          secret: true
    4. 将以下内容粘贴到 "Injector Configuration" 中,然后单击 "Save :

      extra_vars:
        dst_cluster_username: '{{ dst_cluster_username }}'
        dst_cluster_password: '{{ dst_cluster_password }}'
        cvo_svm_password: '{{ cvo_svm_password }}'
        src_cluster_username: '{{ src_cluster_username }}'
        src_cluster_password: '{{ src_cluster_password }}'
        regular_id: '{{ regular_id }}'
        email_id: '{{ email_id }}'
        cm_password: '{{ cm_password }}'
        access_key: '{{ access_key }}'
        secret_key: '{{ secret_key }}'
        token: '{{ token }}'
  3. 为 ontap/CVO/AWS 创建凭据

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

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

    3. 选择上一步中创建的凭据类型。

    4. 在 Type Details 下,输入源集群和 CVO 集群, Cloud Central/Manager , AWS 访问 / 机密密钥和 Cloud Central 刷新令牌的用户名和密码。

    5. 单击保存。

  4. 为 Oracle 创建凭据(源)

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

    2. 输入 Oracle 主机的名称和组织详细信息

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

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

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

    6. 单击保存。

  5. 为 Oracle 目标创建凭据

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

    2. 输入 DR Oracle 主机的名称和组织详细信息

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

    4. 在 Type Details 下,输入 Username ( EC2-user ,或者如果您已对其进行了默认更改,请输入该用户名)和 SSH 私钥

    5. 选择正确的权限升级方法( sudo ),然后根据需要输入用户名和密码。

    6. 单击保存。

创建项目

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

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

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

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

    4. 单击保存。

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

配置全局变量

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

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

备注 必须根据您的环境更改蓝色项。
内部
# Oracle Data Protection global user configuration variables
# Ontap env specific config variables
hosts_group: "ontap"
ca_signed_certs: "false"

# Inter-cluster LIF details
src_nodes:
  - "AFF-01"
  - "AFF-02"

dst_nodes:
  - "DR-AFF-01"
  - "DR-AFF-02"

create_source_intercluster_lifs: "yes"

source_intercluster_network_port_details:
  using_dedicated_ports: "yes"
  using_ifgrp: "yes"
  using_vlans: "yes"
  failover_for_shared_individual_ports: "yes"
  ifgrp_name: "a0a"
  vlan_id: "10"
  ports:
    - "e0b"
    - "e0g"
  broadcast_domain: "NFS"
  ipspace: "Default"
  failover_group_name: "iclifs"

source_intercluster_lif_details:
  - name: "icl_1"
    address: "10.0.0.1"
    netmask: "255.255.255.0"
    home_port: "a0a-10"
    node: "AFF-01"
  - name: "icl_2"
    address: "10.0.0.2"
    netmask: "255.255.255.0"
    home_port: "a0a-10"
    node: "AFF-02"

create_destination_intercluster_lifs: "yes"

destination_intercluster_network_port_details:
  using_dedicated_ports: "yes"
  using_ifgrp: "yes"
  using_vlans: "yes"
  failover_for_shared_individual_ports: "yes"
  ifgrp_name: "a0a"
  vlan_id: "10"
  ports:
    - "e0b"
    - "e0g"
  broadcast_domain: "NFS"
  ipspace: "Default"
  failover_group_name: "iclifs"

destination_intercluster_lif_details:
  - name: "icl_1"
    address: "10.0.0.3"
    netmask: "255.255.255.0"
    home_port: "a0a-10"
    node: "DR-AFF-01"
  - name: "icl_2"
    address: "10.0.0.4"
    netmask: "255.255.255.0"
    home_port: "a0a-10"
    node: "DR-AFF-02"

# Variables for SnapMirror Peering
passphrase: "your-passphrase"

# Source & Destination List
dst_cluster_name: "dst-cluster-name"
dst_cluster_ip: "dst-cluster-ip"
dst_vserver: "dst-vserver"
dst_nfs_lif: "dst-nfs-lif"
src_cluster_name: "src-cluster-name"
src_cluster_ip: "src-cluster-ip"
src_vserver: "src-vserver"

# Variable for Oracle Volumes and SnapMirror Details
cg_snapshot_name_prefix: "oracle"
src_orabinary_vols:
  - "binary_vol"
src_db_vols:
  - "db_vol"
src_archivelog_vols:
  - "log_vol"
snapmirror_policy: "async_policy_oracle"

# Export Policy Details
export_policy_details:
  name: "nfs_export_policy"
  client_match: "0.0.0.0/0"
  ro_rule: "sys"
  rw_rule: "sys"

# Linux env specific config variables
mount_points:
  - "/u01"
  - "/u02"
  - "/u03"
hugepages_nr: "1234"
redhat_sub_username: "xxx"
redhat_sub_password: "xxx"

# DB env specific install and config variables
recovery_type: "scn"
control_files:
  - "/u02/oradata/CDB2/control01.ctl"
  - "/u03/orareco/CDB2/control02.ctl"
CVO
###########################################
### 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 Source ONTAP Cluster
src_nodes:
  - "AFF-01"
  - "AFF-02"

#Names of the Nodes in the Destination CVO Cluster
dst_nodes:
  - "DR-AFF-01"
  - "DR-AFF-02"

#Define whether or not to create intercluster lifs on source cluster (ONLY CHANGE to "No" IF YOU HAVE ALREADY CREATED THE INTERCLUSTER LIFS)
create_source_intercluster_lifs: "yes"

source_intercluster_network_port_details:
  using_dedicated_ports: "yes"
  using_ifgrp: "yes"
  using_vlans: "yes"
  failover_for_shared_individual_ports: "yes"
  ifgrp_name: "a0a"
  vlan_id: "10"
  ports:
    - "e0b"
    - "e0g"
  broadcast_domain: "NFS"
  ipspace: "Default"
  failover_group_name: "iclifs"

source_intercluster_lif_details:
  - name: "icl_1"
    address: "10.0.0.1"
    netmask: "255.255.255.0"
    home_port: "a0a-10"
    node: "AFF-01"
  - name: "icl_2"
    address: "10.0.0.2"
    netmask: "255.255.255.0"
    home_port: "a0a-10"
    node: "AFF-02"

###########################################
### CVO Deployment Variables ###
###########################################

####### Access Keys Variables ######

# Region where your CVO will be deployed.
region_deploy: "us-east-1"

########### CVO and Connector Vars ########

# AWS Managed Policy required to give permission for IAM role creation.
aws_policy: "arn:aws:iam::1234567:policy/OCCM"

# Specify your aws role name, a new role is created if one already does not exist.
aws_role_name: "arn:aws:iam::1234567:policy/OCCM"

# Name your connector.
connector_name: "awx_connector"

# Name of the key pair generated in AWS.
key_pair: "key_pair"

# Name of the Subnet that has the range of IP addresses in your VPC.
subnet: "subnet-12345"

# ID of your AWS secuirty group that allows access to on-prem resources.
security_group: "sg-123123123"

# You Cloud Manager Account ID.
account: "account-A23123A"

# Name of the your CVO instance
cvo_name: "test_cvo"

# ID of the VPC in AWS.
vpc: "vpc-123123123"

###################################################################################################
# Variables for - Add on-prem ONTAP to Connector in Cloud Manager
###################################################################################################

# For Federated users, Client ID from API Authentication Section of Cloud Central to generate access token.
sso_id: "123123123123123123123"

# For regular access with username and password, please specify "pass" as the connector_access. For SSO users, use "refresh_token" as the variable.
connector_access: "pass"

####################################################################################################
# Variables for SnapMirror Peering
####################################################################################################
passphrase: "your-passphrase"

#####################################################################################################
# Source & Destination List
#####################################################################################################
#Please Enter Destination Cluster Name
dst_cluster_name: "dst-cluster-name"

#Please Enter Destination Cluster (Once CVO is Created Add this Variable to all templates)
dst_cluster_ip: "dst-cluster-ip"

#Please Enter Destination SVM to create mirror relationship
dst_vserver: "dst-vserver"

#Please Enter NFS Lif for dst vserver (Once CVO is Created Add this Variable to all templates)
dst_nfs_lif: "dst-nfs-lif"

#Please Enter Source Cluster Name
src_cluster_name: "src-cluster-name"

#Please Enter Source Cluster
src_cluster_ip: "src-cluster-ip"

#Please Enter Source SVM
src_vserver: "src-vserver"

#####################################################################################################
# Variable for Oracle Volumes and SnapMirror Details
#####################################################################################################
#Please Enter Source Snapshot Prefix Name
cg_snapshot_name_prefix: "oracle"

#Please Enter Source Oracle Binary Volume(s)
src_orabinary_vols:
  - "binary_vol"
#Please Enter Source Database Volume(s)
src_db_vols:
  - "db_vol"
#Please Enter Source Archive Volume(s)
src_archivelog_vols:
  - "log_vol"
#Please Enter Destination Snapmirror Policy
snapmirror_policy: "async_policy_oracle"

#####################################################################################################
# Export Policy Details
#####################################################################################################
#Enter the destination export policy details (Once CVO is Created Add this Variable to all templates)
export_policy_details:
  name: "nfs_export_policy"
  client_match: "0.0.0.0/0"
  ro_rule: "sys"
  rw_rule: "sys"

#####################################################################################################
### 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 ###
####################################################
#Recovery Type (leave as scn)
recovery_type: "scn"

#Oracle Control Files
control_files:
  - "/u02/oradata/CDB2/control01.ctl"
  - "/u03/orareco/CDB2/control02.ctl"

自动化攻略手册

需要运行四本单独的攻略手册。

  1. 用于设置环境的攻略手册,内部部署或 CVO 。

  2. 用于按计划复制 Oracle 二进制文件和数据库的攻略手册

  3. 用于按计划复制 Oracle 日志的攻略手册

  4. 用于在目标主机上恢复数据库的攻略手册

ONTAP/CVO 设置

ONTAP和CVO Setup

配置并启动作业模板。

  1. 创建作业模板。

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

    2. 输入名称 ontap/CVO 设置

    3. 选择作业类型;运行将根据攻略手册配置系统。

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

    5. 为内部环境选择 ontap_setup.yml 攻略手册,或者选择 CVO_setup.yml 以复制到 CVO 实例。

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

    7. 单击保存。

  2. 启动作业模板。

    1. 导航到资源→模板。

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

      备注 我们将使用此模板并将其复制到其他攻略手册中。
二进制卷和数据库卷的复制

计划二进制和数据库复制操作手册

配置并启动作业模板。

  1. 复制先前创建的作业模板。

    1. 导航到资源→模板。

    2. 找到 ontap/CVO 设置模板,然后在最右侧单击复制模板

    3. 单击复制的模板上的编辑模板,然后将名称更改为二进制和数据库复制攻略手册。

    4. 保留该模板的相同清单,项目和凭据。

    5. 选择 ora_replication cc.yml 作为要执行的攻略手册。

    6. 这些变量将保持不变,但需要在变量 dst_cluster_ip 中设置 CVO 集群 IP 。

    7. 单击保存。

  2. 计划作业模板。

    1. 导航到资源→模板。

    2. 单击二进制和数据库复制攻略手册模板,然后单击顶部选项集的计划。

    3. 单击添加,为二进制和数据库复制添加名称计划,在小时开始时选择开始日期 / 时间,选择您的本地时区以及运行频率。运行频率通常会更新 SnapMirror 复制。

      备注 系统将为日志卷复制创建一个单独的计划,以便可以更频繁地进行复制。
复制日志卷

计划日志复制操作手册

配置并启动作业模板

  1. 复制先前创建的作业模板。

    1. 导航到资源→模板。

    2. 找到 ontap/CVO 设置模板,然后在最右侧单击复制模板

    3. 单击复制的模板上的 Edit Template ,然后将名称更改为 Log Replication 攻略手册。

    4. 保留该模板的相同清单,项目和凭据。

    5. 选择 ora_replication logs.yml 作为要执行的攻略手册。

    6. 这些变量将保持不变,但需要在变量 dst_cluster_ip 中设置 CVO 集群 IP 。

    7. 单击保存。

  2. 计划作业模板。

    1. 导航到资源→模板。

    2. 单击日志复制攻略手册模板,然后单击顶部选项集的计划。

    3. 单击添加,为日志复制添加名称计划,选择开始日期 / 时间,选择本地时区和运行频率。运行频率通常会更新 SnapMirror 复制。

    备注 建议将日志计划设置为每小时更新一次,以确保恢复到上一个每小时更新。
还原和恢复数据库

计划日志复制操作手册

配置并启动作业模板。

  1. 复制先前创建的作业模板。

    1. 导航到资源→模板。

    2. 找到 ontap/CVO 设置模板,然后在最右侧单击复制模板

    3. 单击复制的模板上的 Edit Template ,然后将名称更改为 Restore and Recovery Playbook 。

    4. 保留该模板的相同清单,项目和凭据。

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

    6. 这些变量将保持不变,但需要在变量 dst_cluster_ip 中设置 CVO 集群 IP 。

    7. 单击保存。

    备注 只有在准备好在远程站点还原数据库后,才会运行此攻略手册。

恢复Oracle数据库

  1. 内部生产 Oracle 数据库数据卷通过 NetApp SnapMirror 复制到二级数据中心的冗余 ONTAP 集群或公有云中的 Cloud Volume ONTAP 进行保护。在完全配置的灾难恢复环境中,二级数据中心或公有云中的恢复计算实例处于备用状态,可以在发生灾难时恢复生产数据库。备用计算实例通过在操作系统内核修补程序上运行准面更新或在一个锁定步骤中进行升级,与内部实例保持同步。

  2. 在此解决方案演示中, Oracle 二进制卷会复制到目标并挂载到目标实例,以启动 Oracle 软件堆栈。与灾难发生时的最后一分钟全新安装 Oracle 相比,这种恢复 Oracle 的方法更有优势。它可以保证 Oracle 安装与当前内部生产软件安装和修补程序级别等完全同步。但是,根据 Oracle 软件许可的结构,这可能会对恢复站点上复制的 Oracle 二进制卷产生额外的软件许可影响,也可能不会产生额外的软件许可影响。建议用户在决定使用相同方法之前,先咨询其软件许可人员,以评估潜在的 Oracle 许可要求。

  3. 目标位置的备用 Oracle 主机已配置 Oracle 前提条件配置。

  4. SnapMirrors 已损坏,卷可写并挂载到备用 Oracle 主机。

  5. 在备用计算实例上挂载所有数据库卷后, Oracle 恢复模块将在恢复站点执行以下恢复和启动 Oracle 任务。

    1. 同步控制文件:我们在不同的数据库卷上部署了重复的 Oracle 控制文件,以保护关键数据库控制文件。一个位于数据卷上,另一个位于日志卷上。由于数据卷和日志卷的复制频率不同,因此在恢复时它们将不同步。

    2. 重新链接 Oracle 二进制文件:由于 Oracle 二进制文件已重新定位到新主机,因此需要重新链接。

    3. 恢复 Oracle 数据库:恢复机制从控制文件中检索 Oracle 日志卷中最后一个可用归档日志中的最后一个系统更改编号,并恢复 Oracle 数据库以重新处理在发生故障时能够复制到灾难恢复站点的所有业务事务。然后,数据库将在新的形式中启动,以在恢复站点执行用户连接和业务事务。

备注 运行恢复攻略手册之前,请确保您具备以下条件:确保它通过 /etc/oratab 和 /etc/oraInst.oc 从源 Oracle 主机复制到目标主机