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

Azure VM和Azure NetApp Files 上的Oracle分步部署过程

贡献者

通过Azure门户控制台使用适用于Oracle的ANF部署Azure虚拟机

如果您是Azure的新用户、则首先需要设置Azure帐户环境。这包括注册您的组织以使用Azure Active Directory。以下部分总结了这些步骤。有关详细信息、请参见特定于Azure的链接文档。

创建和使用Azure资源

设置Azure环境并创建帐户并将其与订阅关联后、您可以使用帐户登录到Azure门户以创建运行Oracle所需的资源。

1.创建虚拟网络或vNet

Azure虚拟网络(vNet)是Azure中专用网络的基本组件。VNet支持Azure虚拟机(VM)等多种类型的Azure资源安全地相互通信、并与Internet和内部网络进行通信。在配置Azure VM之前、必须先配置vNet (部署VM的位置)。

请参见 "使用Azure门户创建虚拟网络" 创建vNet。

2.为ANF创建NetApp存储帐户和容量池

在此部署场景中、Azure VM操作系统使用常规Azure存储进行配置、但ANF卷配置为通过NFS运行Oracle数据库。首先、您需要创建NetApp存储帐户和容量池来托管存储卷。

请参见 "设置Azure NetApp Files 并创建NFS卷" 设置ANF容量池。

3.为Oracle配置Azure VM

根据您的工作负载、确定您需要哪种类型的Azure VM以及要为Oracle部署的VM vCPU和RAM的大小。然后、在Azure控制台中、单击虚拟机图标以启动虚拟机部署工作流。

  1. 在Azure VM页面中、单击*创建*、然后选择* Azure虚拟机*。

    此屏幕截图显示了可用Azure虚拟机的列表。

  2. 选择部署的订阅ID、然后选择资源组、区域、主机名、VM映像、大小、和身份验证方法。转到磁盘页面。

    此屏幕截图显示了"Create a Virtual Machine"页面的输入。
    此屏幕截图显示了"Create a Virtual Machine"页面的其他输入。

  3. 选择*高级SSD*以实现操作系统本地冗余、并将数据磁盘留空、因为数据磁盘是从ANF存储挂载的。转到网络连接页面。

    此屏幕截图显示了"Create a Virtual Machine Disks"页面的输入。

  4. 选择vNet和子网。为外部VM访问分配公共IP。然后转到"管理"页面。

    此屏幕截图显示了创建虚拟机页面的其他输入。

  5. 保留Management的所有默认值、然后转到Advanced页面。

    此屏幕截图显示了"Create a Virtual Machine Management"页面的输入。

  6. 保留"高级"页面的所有默认值、除非您需要在使用自定义脚本部署后自定义VM。然后转到"标记"页面。

    此屏幕截图显示了"Create a Virtual Machine Advanced"页面的输入。

  7. 如果需要、为虚拟机添加一个标记。然后、转到Review + create页面。

    此屏幕截图显示了"Create a Virtual Machine Tags "页面的输入。

  8. 部署工作流将对配置运行验证、如果验证通过、请单击*创建*以创建虚拟机。

    "此屏幕截图显示了"Create a Virtual Machine review and create"页面的输入。

4.为Oracle配置ANF数据库卷

您必须分别为Oracle二进制卷、数据卷和日志卷的ANF容量池创建三个NFS卷。

  1. 在Azure控制台中的Azure服务列表下、单击Azure NetApp Files 以打开卷创建工作流。如果您有多个ANF存储帐户、请单击要从中配置卷的帐户。

    此屏幕截图显示了Azure服务页面、其中ANF突出显示。

  2. 在NetApp存储帐户下、单击*卷*、然后单击*添加卷*以创建新的Oracle卷。

    此屏幕截图显示了NetApp存储帐户的登录屏幕。
    此屏幕截图显示了可用于NetApp存储帐户的卷。

  3. 作为一种良好做法、请先确定使用VM主机名作为前缀的Oracle卷、然后再确定主机上的挂载点、例如、对于Oracle二进制文件、可以使用u01表示Oracle数据、可以使用u02表示Oracle数据、也可以使用u03表示Oracle日志。为卷选择与VM相同的vNet。单击*下一步:协议>*。

    卷创建屏幕。

  4. 选择NFS协议、将Oracle主机IP地址添加到允许的客户端、然后删除允许所有IP地址0.0.0.0/0的默认策略。然后单击*下一步:标记>*。

    卷创建屏幕上的协议输入。

  5. 根据需要添加卷标记。然后单击*审阅+创建>*。

    卷创建屏幕上的标记输入。

  6. 如果验证通过、请单击*创建*以创建卷。

    查看并创建卷创建屏幕的阶段。

使用ANF在Azure虚拟机上安装和配置Oracle

NetApp解决方案团队创建了许多基于Ansible的自动化工具包、可帮助您在Azure中顺利部署Oracle。按照以下步骤在Azure虚拟机上部署Oracle。

设置Ansible控制器

如果尚未设置Ansible控制器、请参见 "NetApp 解决方案自动化"、其中详细说明了如何设置Ansible控制器。

获取Oracle部署自动化工具包

在您的主目录中、使用您用于登录到Ansible控制器的用户ID克隆一份Oracle部署工具包副本。

git clone https://github.com/NetApp-Automation/na_oracle19c_deploy.git

根据您的配置执行工具包

请参见 "CLI 部署 Oracle 19c 数据库" 使用命令行界面执行攻略手册。从Azure控制台而非命令行界面创建数据库卷时、您可以忽略全局VARS文件中变量配置的ONTAP 部分。

备注 该工具包默认部署Oracle 19c和RU 19.8。它可以轻松地适应任何其他修补程序级别、并对默认配置进行少量更改。此外、默认的种子数据库活动日志文件也会部署到数据卷中。如果需要日志卷上的活动日志文件、应在初始部署后重新定位。如有必要、请联系NetApp解决方案 团队以获得帮助。

为Oracle的应用程序一致快照设置AzAcSnap备份工具

Azure应用程序一致的Snapshot工具(AzAcSnap)是一个命令行工具、可通过处理在创建存储快照之前将第三方数据库置于应用程序一致状态所需的所有流程编排来为第三方数据库提供数据保护。然后、它会将这些数据库返回到运行状态。NetApp建议在数据库服务器主机上安装此工具。请参见以下安装和配置过程。

安装AzAcSnap工具

  1. 获取的最新版本 "AzArcSnap安装程序"

  2. 将下载的自安装程序复制到目标系统。

  3. 使用默认安装选项以root用户身份执行自安装程序。如有必要、请使用使文件可执行 chmod +x *.run 命令:

     ./azacsnap_installer_v5.0.run -I

配置Oracle连接

快照工具与Oracle数据库进行通信、并且需要具有适当权限的数据库用户来启用或禁用备份模式。

1.设置AzAcSnap数据库用户

以下示例显示了Oracle数据库用户的设置以及使用sqlplus与Oracle数据库进行通信。示例命令用于在Oracle数据库中设置用户(AZACSNAP)、并根据需要更改IP地址、用户名和密码。

  1. 在Oracle数据库安装中、启动sqlplus以登录到数据库。

    su – oracle
    sqlplus / AS SYSDBA
  2. 创建用户。

    CREATE USER azacsnap IDENTIFIED BY password;
  3. 授予用户权限。此示例设置了AZACSNAP用户启用将数据库置于备份模式的权限。

    GRANT CREATE SESSION TO azacsnap;
    GRANT SYSBACKUP TO azacsnap;
  4. 将默认用户的密码到期时间更改为无限制。

    ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME unlimited;
  5. 验证数据库的azacsnap连接。

    connect azacsnap/password
    quit;

2.使用Oracle Wallet为数据库访问配置Linux用户azacsnap

AzAcSnap默认安装会创建一个azacsnap操作系统用户。必须使用存储在Oracle Wallet中的密码为其Bash shell环境配置Oracle数据库访问。

  1. 以root用户身份运行 cat /etc/oratab 用于标识主机上的ORACLE_HOME和ORACLE_SID变量的命令。

    cat /etc/oratab
  2. 将ORACLE_HOME、ORACLE_SID、TNS_admin和路径变量添加到azacsnap用户bash配置文件中。根据需要更改变量。

    echo "export ORACLE_SID=ORATEST" >> /home/azacsnap/.bash_profile
    echo "export ORACLE_HOME=/u01/app/oracle/product/19800/ORATST" >> /home/azacsnap/.bash_profile
    echo "export TNS_ADMIN=/home/azacsnap" >> /home/azacsnap/.bash_profile
    echo "export PATH=\$PATH:\$ORACLE_HOME/bin" >> /home/azacsnap/.bash_profile
  3. 作为Linux用户azacsnap、创建电子钱包。系统将提示您输入电子邮件密码。

    sudo su - azacsnap
    
    mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -create
  4. 将连接字符串凭据添加到Oracle Wallet。在以下示例命令中、AZACSNAP是AzAcSnap要使用的ConnectString、azacsnap是Oracle数据库用户、AzPasswd1是Oracle用户的数据库密码。系统会再次提示您输入电子邮件密码。

    mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -createCredential AZACSNAP azacsnap AzPasswd1
  5. 创建 tnsnames-ora 文件在以下示例命令中、应将主机设置为Oracle数据库的IP地址、并将服务器SID设置为Oracle数据库SID。

    echo "# Connection string
    AZACSNAP=\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.30.137.142)(PORT=1521))(CONNECT_DATA=(SID=ORATST)))\"
    " > $TNS_ADMIN/tnsnames.ora
  6. 创建 sqlnet.ora 文件

    echo "SQLNET.WALLET_OVERRIDE = TRUE
    WALLET_LOCATION=(
        SOURCE=(METHOD=FILE)
        (METHOD_DATA=(DIRECTORY=\$TNS_ADMIN/.oracle_wallet))
    ) " > $TNS_ADMIN/sqlnet.ora
  7. 使用Wallet测试Oracle访问。

    sqlplus /@AZACSNAP as SYSBACKUP

    命令的预期输出:

    [azacsnap@acao-ora01 ~]$ sqlplus /@AZACSNAP as SYSBACKUP
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 8 18:02:07 2022
    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>

配置ANF连接

本节介绍如何启用与Azure NetApp Files (与VM)的通信。

  1. 在Azure Cloud Shell会话中、确保您已登录到默认要与服务主体关联的订阅。

    az account show
  2. 如果订阅不正确、请使用以下命令:

    az account set -s <subscription name or id>
  3. 使用Azure命令行界面创建服务主体、如以下示例所示:

    az ad sp create-for-rbac --name "AzAcSnap" --role Contributor --scopes /subscriptions/{subscription-id} --sdk-auth

    预期输出:

    {
      "clientId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "clientSecret": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "subscriptionId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "tenantId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
      "resourceManagerEndpointUrl": "https://management.azure.com/",
      "activeDirectoryGraphResourceId": "https://graph.windows.net/",
      "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
      "galleryEndpointUrl": "https://gallery.azure.com/",
      "managementEndpointUrl": "https://management.core.windows.net/"
    }
  4. 剪切输出内容并将其粘贴到名为的文件中 oracle.json 存储在Linux用户azacsnap用户箱目录中、并使用适当的系统权限保护文件。

备注 请确保JSON文件的格式与上述格式完全相同、尤其是使用双引号(")括起的URL。

完成AzAcSnap工具的设置

按照以下步骤配置和测试快照工具。成功测试后、您可以执行第一个数据库一致的存储快照。

  1. 更改为Snapshot用户帐户。

    su - azacsnap
  2. 更改命令的位置。

    cd /home/azacsnap/bin/
  3. 配置存储备份详细信息文件。这将创建 azacsnap.json 配置文件。

    azacsnap -c configure –-configuration new

    三个Oracle卷的预期输出:

    [azacsnap@acao-ora01 bin]$ azacsnap -c configure --configuration new
    Building new config file
    Add comment to config file (blank entry to exit adding comments): Oracle snapshot bkup
    Add comment to config file (blank entry to exit adding comments):
    Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): oracle
    
    === Add Oracle Database details ===
    Oracle Database SID (e.g. CDB1): ORATST
    Database Server's Address (hostname or IP address): 172.30.137.142
    Oracle connect string (e.g. /@AZACSNAP): /@AZACSNAP
    
    === Azure NetApp Files Storage details ===
    Are you using Azure NetApp Files for the database? (y/n) [n]: y
    --- DATA Volumes have the Application put into a consistent state before they are snapshot ---
    Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: y
    Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u01
    Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json
    Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: y
    Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u02
    Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json
    Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: n
    --- OTHER Volumes are snapshot immediately without preparing any application for snapshot ---
    Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: y
    Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u03
    Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json
    Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: n
    
    === Azure Managed Disk details ===
    Are you using Azure Managed Disks for the database? (y/n) [n]: n
    
    === Azure Large Instance (Bare Metal) Storage details ===
    Are you using Azure Large Instance (Bare Metal) for the database? (y/n) [n]: n
    
    Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): exit
    
    Editing configuration complete, writing output to 'azacsnap.json'.
  4. 以azacsnap Linux用户身份、对Oracle备份运行azacsnap test命令。

    cd ~/bin
    azacsnap -c test --test oracle --configfile azacsnap.json

    预期输出:

    [azacsnap@acao-ora01 bin]$ azacsnap -c test --test oracle --configfile azacsnap.json
    BEGIN : Test process started for 'oracle'
    BEGIN : Oracle DB tests
    PASSED: Successful connectivity to Oracle DB version 1908000000
    END   : Test process complete for 'oracle'
    [azacsnap@acao-ora01 bin]$
  5. 运行第一个快照备份。

    azacsnap -c backup –-volume data --prefix ora_test --retention=1