你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Linux 虚拟机上设置 Oracle ASM

适用于:✔️ Linux VM

Azure 虚拟机提供完全可配置的灵活计算环境。 本教程介绍基本的 Azure 虚拟机部署以及 Oracle 自动存储管理 (ASM) 的安装和配置。 学习如何:

  • 创建并连接到 Oracle 数据库 VM
  • 安装并配置 Oracle 自动存储管理
  • 安装并配置 Oracle Grid 基础结构
  • 初始化 Oracle ASM 安装
  • 创建由 ASM 管理的 Oracle DB

有关 ASM 的价值主张的概述,请参阅 Oracle 上的文档

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.4 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

准备环境

本实验室在 Azure 上使用两个 VM:asmXServer 运行用于运行网格设置的 X Windows 服务器,asmVM 托管 Oracle Database 和 ASM 安装。 用于创建这些虚拟机的市场映像为

  • asmVM:Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1
  • asmXServer:MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207

你还需要熟悉 Unix 编辑器 vi,并对 X Server 有基本的了解。

登录 Azure

  1. 在 Windows、Linux 或 Azure Shell 上打开首选 shell。

  2. 使用 az login 命令登录 Azure 订阅。 然后,遵照屏幕指令进行操作。

    $ az login
    
  3. 通过验证订阅名称和/或 ID,确保已连接到正确的订阅。

    $ az account show
    
    {
      "environmentName": "XXXXX",
      "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "id": "<SUBSCRIPTION_ID>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<SUBSCRIPTION_NAME>",
      "state": "Enabled",
      "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "user": {
        "cloudShellID": true,
        "name": "aaaaa@bbbbb.com",
        "type": "user"
      }
    }
    

生成身份验证密钥

我们将基于密钥文件的身份验证与 ssh 配合使用,以连接到 Oracle Database VM。 确保在 shell 上创建了私有(名为 id_rsa)和公共(名为 id_rsa.pub)密钥文件。

密钥文件的位置取决于源系统。

Windows:%USERPROFILE%.ssh Linux:~/.ssh

如果它们不存在,则可以创建新的密钥文件对。

$ ssh-keygen -m PEM -t rsa -b 4096

已创建 .ssh 目录和密钥文件。 有关详细信息,请参阅创建和管理用于 Azure 中 Linux VM 的身份验证的 SSH 密钥

创建资源组

若要创建资源组,请使用 az group create 命令。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

$ az group create --name ASMOnAzureLab --location westus

创建和配置网络

创建虚拟网络

使用以下命令创建虚拟网络来托管我们在此实验室中创建的资源。

$ az network vnet create \
  --name asmVnet \
  --resource-group ASMOnAzureLab \
  --address-prefixes "10.0.0.0/16" \
  --subnet-name asmSubnet1 \
  --subnet-prefixes "10.0.0.0/24"

创建网络安全组 (NSG)

  1. 创建网络安全组 (NSG) 以锁定虚拟网络。

    $ az network nsg create \
      --resource-group ASMOnAzureLab \
      --name asmVnetNSG
    
  2. 创建 NSG 规则以允许在虚拟网络内进行通信。

    $ az network nsg rule create  --resource-group ASMOnAzureLab --nsg-name asmVnetNSG \
        --name asmAllowVnet \
        --protocol '*' --direction inbound --priority 3400 \
        --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
        --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
    
  3. 创建 NSG 规则以拒绝所有入站连接

    $ az network nsg rule create \
      --resource-group ASMOnAzureLab \
      --nsg-name asmVnetNSG \
      --name asmDenyAllInBound \
      --protocol '*' --direction inbound --priority 3500 \
      --source-address-prefix '*' --source-port-range '*' \
      --destination-address-prefix '*' --destination-port-range '*' --access deny
    
  4. 将 NSG 分配到托管服务器的子网。

    $ az network vnet subnet update --resource-group ASMOnAzureLab --vnet-name asmVNet --name asmSubnet1 --network-security-group asmVnetNSG
    

创建 Bastion 网络

  1. 创建 Bastion 子网。 子网名称必须为 AzureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group ASMOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name asmVnet \
        --address-prefixes 10.0.1.0/24
    
  2. 为 Bastion 创建公共 IP

    $ az network public-ip create \
        --resource-group ASMOnAzureLab \
        --name asmBastionIP \
        --sku Standard
    
  3. 创建 Azure Bastion 资源。 部署资源大约需要 10 分钟的时间。

    $ az network bastion create \
        --resource-group ASMOnAzureLab \
        --name asmBastion \
        --public-ip-address asmBastionIP \
        --vnet-name asmVnet \
        --sku Standard \
        --enable-tunneling \
        --enable-ip-connect true
    

创建 X Server VM (asmXServer)

请替换密码并运行以下命令,以创建从中部署 X Server 的 Windows 工作站 VM。

$ az vm create \
    --resource-group ASMOnAzureLab \
    --name asmXServer \
    --image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
    --size Standard_DS1_v2  \
    --vnet-name asmVnet \
    --subnet asmSubnet1 \
    --public-ip-sku Standard \
    --nsg "" \
    --data-disk-delete-option Delete \
    --os-disk-delete-option Delete \
    --nic-delete-option Delete \
    --admin-username azureuser \
    --admin-password <ENTER_YOUR_PASSWORD_HERE>

连接到 asmXServer

使用 Bastion 连接到 asmXServer。

  1. 从 Azure 门户导航到 asmXServer。
  2. 转到左侧边栏选项卡中的“概述”
  3. 选择顶部菜单上的“连接”>“Bastion”
  4. 选择“Bastion”选项卡
  5. 单击“使用 Bastion”

准备 asmXServer 以运行 X Server

本实验室的后续步骤需要 X Server。 执行以下步骤以安装并启动 X Server。

  1. Xming X Server for Windows 下载到 ggXServer,并使用所有默认选项进行安装。

  2. 确保未在安装结束时选择“启动”

  3. 从“开始”菜单启动“XLAUNCH”应用程序。

  4. 选择“多个窗口”

    Screenshot of XLaunch wizard step 1.

  5. 选择“不启动客户端”

    Screenshot of XLaunch wizard step 2.

  6. 选择“无访问控制”

    Screenshot of XLaunch wizard step 3.

  7. 选择“允许访问”以允许 X Server 通过 Windows 防火墙

    Screenshot of XLaunch wizard step 4.

如果重启 asmXServer VM,请按照上述步骤 2-6 重启 X Server 应用程序。

创建 Oracle Database VM

在本实验室中,我们根据 Oracle Database 19c 映像创建虚拟机 asmVM。 运行以下命令以创建附加了多个数据磁盘的 asmVM。 如果默认密钥位置中不存在 SSH 密钥,则此命令还会创建这些密钥。 若要使用特定的一组密钥,请使用 --ssh-key-value 选项。 如果已在生成身份验证密钥部分创建了 SSH 密钥,则将使用这些密钥。

创建新虚拟机时,size 参数表示所创建的虚拟机的大小和类型。 根据你选择用于创建虚拟机的 Azure 区域和订阅设置,某些虚拟机大小和类型可能不可用。 以下命令使用此实验室 Standard_D4_v5 所需的大小下限。 如果要更改虚拟机的规格,请从“Azure VM 大小”中选择一个可用大小。 出于测试目的,可以从常规用途(D 系列)虚拟机类型中进行选择。 对于生产或试点部署,内存优化型(E 系列和 M 系列)更合适。

az vm create --resource-group ASMOnAzureLab \
   --name asmVM \
   --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
   --size Standard_D4_v5 \
   --generate-ssh-keys \
   --os-disk-size-gb 30 \
   --data-disk-sizes-gb 20 40 40 \
   --admin-username azureuser \
   --vnet-name asmVnet \
   --subnet asmSubnet1 \
   --public-ip-sku Basic \
   --nsg ""

连接到 asmVM

使用 Bastion 连接到 asmVM。

  1. 从 Azure 门户导航到 asmVM。
  2. 转到左侧边栏选项卡中的“概述”
  3. 选择顶部菜单上的“连接”>“Bastion”
  4. 选择“Bastion”选项卡
  5. 单击“使用 Bastion”

创建交换文件

此实验室需要实验室虚拟机上的交换文件。 完成以下步骤以创建交换文件。

准备磁盘和装入点

  1. 之前创建虚拟机 (asmVM) 时,我们添加了一个 20GB 的数据磁盘来放置交换文件。 运行以下命令,找出此 20GB 磁盘的名称。 大多数情况下,它是 /dev/sdb,但如果不是此名称,请确保记下 20G 磁盘的名称,以便在以下步骤中使用。 同样,我们稍后也会使用 40G 磁盘的名称(在以下输出中显示为 /dev/sdc 和 /dev/sdd)。

    $ sudo su -
    $ lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdd       8:48   0   40G  0 disk             ====> Data disk 2 (40GB)
    sdb       8:16   0   20G  0 disk             ====> Swap file disk (20GB)
    sr0      11:0    1  628K  0 rom
    fd0       2:0    1    4K  0 disk
    sdc       8:32   0   40G  0 disk             ====> Data disk 1 (40GB)
    sda       8:0    0   30G  0 disk
    ├─sda2    8:2    0   29G  0 part /
    ├─sda14   8:14   0    4M  0 part
    ├─sda15   8:15   0  495M  0 part /boot/efi
    └─sda1    8:1    0  500M  0 part /boot
    
  2. 运行以下命令在交换文件磁盘上创建分区,如有必要,修改磁盘名称 (/dev/sdb)。

    $ parted /dev/sdb --script mklabel gpt mkpart xfspart xfs 0% 100%
    
  3. 查看创建的分区的名称。 在下面,该名称为 sdb1

    $ lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdd       8:48   0   40G  0 disk
    sdb       8:16   0   20G  0 disk
    └─sdb1    8:17   0   20G  0 part             ====> Newly created partition
    sr0      11:0    1  628K  0 rom
    fd0       2:0    1    4K  0 disk
    sdc       8:32   0   40G  0 disk
    sda       8:0    0   30G  0 disk
    ├─sda2    8:2    0   29G  0 part /
    ├─sda14   8:14   0    4M  0 part
    ├─sda15   8:15   0  495M  0 part /boot/efi
    └─sda1    8:1    0  500M  0 part /boot
    
  4. 运行以下命令以初始化文件系统 (xfs),装载驱动器并命名为 /swap

    $ mkfs.xfs /dev/sdb1
    $ partprobe /dev/sdb1
    $ mkdir /swap
    $ mount /dev/sdb1 /swap
    
  5. 运行以下命令

    $ blkid
    

    在输出中,可以看到有一行用于表示交换磁盘分区 /dev/sdb1,记下 UUID。

    /dev/sdb1: UUID="00000000-0000-0000-0000-000000000000" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="...."
    
  6. 将上一步中的 UUID 粘贴到以下命令中,然后运行命令。 此命令可确保每次系统重启时都正确装载驱动器。

    $ echo "UUID=00000000-0000-0000-0000-000000000000   /swap   xfs   defaults,nofail   1   2" >> /etc/fstab
    

配置交换文件

  1. 创建并分配交换文件 (16GB)。 此命令需要几分钟时间才能运行。

    $ dd if=/dev/zero of=/swap/swapfile bs=1M count=16384
    
  2. 修改权限并分配交换文件

    $ chmod 600 /swap/swapfile
    $ mkswap /swap/swapfile
    $ swapon /swap/swapfile
    
  3. 验证是否已创建交换文件

    $ cat /proc/swaps
    
    Filename        Type    Size        Used    Priority
    /swap/swapfile  file    16777212    0        -2
    
  4. 确保在重启后保留交换文件设置

    $ echo "/swap/swapfile   none  swap  sw  0 0" >> /etc/fstab
    

安装 Oracle ASM

若要安装 Oracle ASM,请完成以下步骤。

有关安装 Oracle ASM 的详细信息,请参阅 适用于 Oracle Linux 7 的 Oracle ASMLib 下载内容

  1. 需要以 root 身份登录才能继续 ASM 安装(如果尚未登录)

    $ sudo su -
    
  2. 运行以下附加命令来安装 Oracle ASM 组件:

    $ yum list | grep oracleasm
    

    命令的输出类似于

    kmod-oracleasm.x86_64                    2.0.8-28.0.1.el7            ol7_latest
    oracleasm-support.x86_64                 2.1.11-2.el7                ol7_latest
    

    通过运行以下命令继续安装

    $ yum -y install kmod-oracleasm.x86_64
    $ yum -y install oracleasm-support.x86_64
    $ wget https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.15-1.el7.x86_64.rpm
    $ yum -y install oracleasmlib-2.0.15-1.el7.x86_64.rpm
    $ rm -f oracleasmlib-2.0.15-1.el7.x86_64.rpm
    
  3. 验证是否已安装 Oracle ASM:

    $ rpm -qa |grep oracleasm
    

    此命令的输出应列出以下组件:

    oracleasm-support-2.1.11-2.el7.x86_64
    oracleasmlib-2.0.15-1.el7.x86_64
    kmod-oracleasm-2.0.8-28.0.1.el7.x86_64
    
  4. ASM 需要特定的用户和角色才能正常工作。 以下命令创建必备的用户帐户和组。

    $ groupadd -g 54345 asmadmin
    $ groupadd -g 54346 asmdba
    $ groupadd -g 54347 asmoper
    $ usermod -a -g oinstall -G oinstall,dba,asmdba,asmadmin,asmoper oracle
    
  5. 验证是否正确创建了用户和组。

    $ grep oracle /etc/group
    

    此命令的输出应列出以下用户和组。

     oinstall:x:54321:oracle
     dba:x:54322:oracle
     oper:x:54323:oracle
     backupdba:x:54324:oracle
     dgdba:x:54325:oracle
     kmdba:x:54326:oracle
     racdba:x:54330:oracle
     asmadmin:x:54345:oracle
     asmdba:x:54346:oracle
     asmoper:x:54347:oracle
    
  6. 创建应用文件夹,更改所有者。

    $ mkdir /u01/app/grid
    $ chown oracle:oinstall /u01/app/grid
    

设置 Oracle ASM

在本教程中,默认用户为 oracle,默认组为 asmadmin。 请确保 oracle 用户属于 asmadmin 组。

$ groups oracle

命令的输出应类似于

oracle : oinstall dba oper backupdba dgdba kmdba racdba asmadmin asmdba asmoper

若要设置 Oracle ASM,请完成以下步骤:

  1. 使用以下命令设置 Oracle ASM 库驱动程序,然后在提示下提供以下答案。

    $ /usr/sbin/oracleasm configure -i
    

    此命令的输出应如下所示,出现待回答的提示时停止。

    Configuring the Oracle ASM library driver.
    
    This will configure the on-boot properties of the Oracle ASM library
    driver. The following questions will determine whether the driver is
    loaded on boot and what permissions it will have. The current values
    will be shown in brackets ('[]'). Hitting <ENTER> without typing an
    answer will keep that current value. Ctrl-C will abort.
    
    Default user to own the driver interface []: oracle
    Default group to own the driver interface []: asmadmin
    Start Oracle ASM library driver on boot (y/n) [n]: y
    Scan for Oracle ASM disks on boot (y/n) [y]: y
    Writing Oracle ASM library driver configuration: done
    

    注意

    /usr/sbin/oracleasm configure -i 命令要求默认拥有 ASM 驱动程序访问点的用户和组。 数据库将作为 oracle 用户和 asmadmin 组运行。 通过选择“在 boot = 'y' 时启动 Oracle ASM 库驱动程序”,系统将始终加载模块并在启动时装载文件系统。 通过选择“在 boot = 'y' 时扫描 Oracle ASM 磁盘”,系统将始终在启动时扫描 Oracle ASM 磁盘。 最后两个配置非常重要,设置不当会遇到磁盘重启问题。

  2. 查看磁盘配置:

    $ cat /proc/partitions
    

    此命令的输出应如下所示,其中列出了可用的磁盘

     major minor  #blocks  name
        8       16   20971520 sdb
        8       17   20969472 sdb1
        8       32   41943040 sdc
        8       48   41943040 sdd
        8        0   31457280 sda
        8        1     512000 sda1
        8        2   30431232 sda2
        8       14       4096 sda14
        8       15     506880 sda15
       11        0        628 sr0
        2        0          4 fd0
    
  3. 运行以下命令格式化磁盘 /dev/sdc,并使用以下值回答提示:

    1. n 表示新分区
    2. p 表示主分区
    3. 1 表示选择第一个分区
    4. 对默认的第一个扇区按 Enter 键
    5. 对默认的最后一个扇区按 Enter 键
    6. w 可将更改写入分区表
    $ fdisk /dev/sdc
    

    fdisk 命令的输出应类似于以下输出:

     Welcome to fdisk (util-linux 2.23.2).
    
     Changes will remain in memory only, until you decide to write them.
     Be careful before using the write command.
    
     Device does not contain a recognized partition table
     Building a new DOS disklabel with disk identifier 0x947f0a91.
    
     The device presents a logical sector size that is smaller than
     the physical sector size. Aligning to a physical sector (or optimal
     I/O) size boundary is recommended, or performance may be impacted.
    
     Command (m for help): n
     Partition type:
        p   primary (0 primary, 0 extended, 4 free)
        e   extended
     Select (default p): p
     Partition number (1-4, default 1): 1
     First sector (2048-104857599, default 2048):
     Using default value 2048
     Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
     Using default value 104857599
     Partition 1 of type Linux and of size 50 GiB is set
    
     Command (m for help): w
     The partition table has been altered!
    
     Calling ioctl() to re-read partition table.
     Syncing disks.
    
  4. 针对 /dev/sdd 重复上述 fdisk 命令。

    $ fdisk /dev/sdd
    
  5. 检查磁盘配置:

    $ cat /proc/partitions
    

    该命令的输出应类似于以下输出:

     major minor  #blocks  name
        8       16   20971520 sdb
        8       17   20969472 sdb1
        8       32   41943040 sdc
        8       33   41942016 sdc1
        8       48   41943040 sdd
        8       49   41942016 sdd1
        8        0   31457280 sda
        8        1     512000 sda1
        8        2   30431232 sda2
        8       14       4096 sda14
        8       15     506880 sda15
       11        0        628 sr0
        2        0          4 fd0
    

    备注

    请注意,在以下配置中,请使用本文档所示的确切命令。

  6. 检查 Oracle ASM 服务状态并启动 Oracle ASM 服务:

    $ oracleasm status
    
     Checking if ASM is loaded: no
     Checking if /dev/oracleasm is mounted: no
    
    $ oracleasm init
    
     Creating /dev/oracleasm mount point: /dev/oracleasm
     Loading module "oracleasm": oracleasm
     Configuring "oracleasm" to use device physical block size
     Mounting ASMlib driver filesystem: /dev/oracleasm
    
  7. 创建 Oracle ASM 磁盘

    1. 创建第一个磁盘

      $ oracleasm createdisk VOL1 /dev/sdc1
      
    2. 命令的输出应类似于

       Writing disk header: done
       Instantiating disk: done
      
    3. 创建剩余磁盘

      $ oracleasm createdisk VOL2  /dev/sdd1
      

    备注

    请使用 ASMLib 安装中所述的过程为 ASMLib 标记磁盘。 ASMLib 在称为磁盘扫描的过程中了解哪些磁盘已标记。 ASMLib 每次启动时都运行此扫描。 系统管理员还可以通过 oracleasm scandisks 命令强制进行扫描。 ASMLib 检查系统中的每个磁盘。 它会检查磁盘是否已针对 ASMLib 进行标记。 已标记的任何磁盘都将可供 ASMLib 使用。 有关详细信息,请访问以下文档:使用 Oracle ASMLIB 配置存储设备路径持久性在多路径磁盘上配置 Oracle ASMLib

  8. 列出 Oracle ASM 磁盘

    $ oracleasm scandisks
    $ oracleasm listdisks
    

    该命令的输出应列出以下 Oracle ASM 磁盘:

     VOL1
     VOL2
    
  9. 更改 root 和 oracle 用户的密码。 记下这些新密码,因为稍后在安装过程中需要用到。

    $ passwd oracle
    $ passwd root
    
  10. 更改文件夹权限

    $ chmod -R 775 /opt
    $ chown oracle:oinstall /opt
    $ chown oracle:oinstall /dev/sdc1
    $ chown oracle:oinstall /dev/sdd1
    $ chmod 600 /dev/sdc1
    $ chmod 600 /dev/sdd1
    

下载并准备 Oracle Grid Infrastructure

若要下载并准备 Oracle Grid Infrastructure 软件,请完成以下步骤:

  1. Oracle ASM 下载页下载 Oracle Grid Infrastructure。 下载位置应已安装 Azure CLI,因为我们会使用 Bastion 将这些文件复制到 asmVM。 由于它使用隧道,因此此步骤不适用于 Azure Cloud Shell,需要在工作站上运行。

    在标题为“Oracle Database 19c Grid Infrastructure (19.3) for Linux x86-64”的下载下面,下载 .zip 文件。

  2. 将 .zip 文件下载到客户端计算机后,可以使用安全复制协议 (SCP) 将文件复制到 VM。 确保 scp 命令指向 .zip 文件的正确路径。

    1. 登录并确保根据需要使用正确的订阅,如登录到 Azure 中所述

    2. 使用以下 PowerShell 命令打开连接到目标 VM 的隧道

      $asmVMid=$(az vm show --resource-group ASMOnAzureLab --name asmVM --query 'id' --output tsv)
      
      az network bastion tunnel --name asmBastion --resource-group ASMOnAzureLab --target-resource-id $asmVMid --resource-port 22 --port 57500
      
    3. 让第一个命令提示符保持运行状态,并打开第二个命令提示符,以通过隧道连接到目标 VM。 在此第二个命令提示符窗口中,你可以使用以下命令将文件从本地计算机上传到目标 VM。 请注意,用于访问 asmVM 的正确 id_rsa 密钥文件必须位于 .ssh 目录中,或者可以使用 scp 命令的 -i 参数指向其他密钥文件。

      scp -P 57500 "LINUX.X64_193000_grid_home.zip"  azureuser@127.0.0.1:.
      
  3. 上传完毕后,使用 Bastion 通过 SSH 连接回 Azure 中的 asmVM,以便将 .zip 文件移动到 /opt 文件夹并更改文件的所有者。

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    $ cd /opt
    $ chown oracle:oinstall LINUX.X64_193000_grid_home.zip
    
  4. 解压缩文件。 (如果尚未安装 Linux 解压缩工具,请安装。)

    $ yum install unzip
    $ unzip LINUX.X64_193000_grid_home.zip -d grid
    
  5. 更改权限

    $ chown -R oracle:oinstall /opt/grid
    
  6. 清理

    $ rm -f LINUX.X64_193000_grid_home.zip
    
  7. 退出根目录

    $ exit
    

安装 Oracle Grid Infrastructure

若要安装 Oracle Grid Infrastructure,请完成以下步骤:

  1. 以 oracle 身份登录。 (应该可以直接登录,系统不会提示输入密码。)

    注意

    在开始安装之前,请确保已启动 X Server

    $ sudo su - oracle
    $ export DISPLAY=10.0.0.4:0.0
    $ cd /opt/grid
    $ ./gridSetup.sh
    

    Oracle Grid Infrastructure 19c 安装程序将在 asmXServer VM 上打开。 (安装程序可能需要花费几分钟时间来启动。)

  2. 在“选择配置选项”页上,选择“配置适用于独立服务器的 Oracle Grid Infrastructure (Oracle 重启)”。

    Screenshot of the installer's Select Configuration Option page.

  3. 在“创建 ASM 磁盘组”页上:

    • 单击“更改发现路径”
    • 将发现路径更新为 /dev/oracleasm/disks/*
    • 为磁盘组 DATA 输入名称
    • 在“冗余”下面,选择“外部”。
    • 在“分配单元大小”下面,选择“4”。
    • 在“选择磁盘”下,选择“/dev/oracleasm/disks/VOL1”。
    • 单击“下一步”。

    Screenshot of the installer's Create ASM Disk Group page.

  4. 在“指定 ASM 密码”页上,选择“对这些帐户使用相同的密码”选项,并输入密码。

    Screenshot of the installer's Specify ASM Password page.

  5. 在“指定管理选项”页上,确保配置 EM 云控件的选项处于未选中状态。 单击“下一步”以继续。

    Screenshot of the installer's Specify Management Options page.

  6. 在“特权操作系统组”页上,请使用默认设置。 单击“下一步”以继续。

    Screenshot of the installer's Privileged Operating System Groups page.

  7. 在“指定安装位置”页上,请使用默认设置。 单击“下一步”以继续。

    Screenshot of the installer's Specify Installation Location page.

  8. 在“Root 脚本执行配置”页上,选中“自动运行配置脚本”复选框。 然后,选择“使用 "root" 用户凭据”选项,并输入 root 用户密码。

    Screenshot of the installer's Root script execution configuration page.

  9. 在“执行先决条件检查”页上,当前安装失败并出现几个错误。 选择“再次修复并检查”

  10. 在“修正脚本”对话框中,单击“确定”。

    Screenshot of the installer's Perform Prerequisite Checks page.

  11. 在“摘要”页上查看选定设置,单击 Install

    Screenshot of the installer's Summary page.

  12. 此时会出现警告对话框,告知需要以特权用户的身份运行配置脚本。 单击 “是” 继续操作。

    Screenshot of the installer's warning page.

  13. 在“完成”页上,单击“关闭”完成安装。

    Screenshot of the installer's Finish page.

设置 Oracle ASM

完成以下步骤以设置 Oracle ASM。

  1. 确保你仍以 oracle 的身份从 Bastion ssh 会话登录到 asmVM。

    运行以下命令以设置上下文。 如果仍从上一个命令打开 shell,则可以跳过此步骤。

    $ sudo su - oracle
    $ export DISPLAY=10.0.0.4:0.0
    

    启动 Oracle 自动存储管理配置助手

    $ cd /opt/grid/bin
    $ ./asmca
    

    几分钟后,Oracle ASM 配置助手窗口在 asmXServer VM 上打开。

  2. 在树中的“磁盘组”下选择“DATA”,然后单击底部的“创建”按钮。

    Screenshot of the ASM Configuration Assistant.

  3. 在“创建磁盘组”对话框中

    1. 输入磁盘组名称 FRA
    2. 对于“冗余”选项,选择“外部(无)”。
    3. 在“选择成员磁盘”下,选择“/dev/oracleasm/disks/VOL2”
    4. 在“分配单元大小”下面,选择“4”。
    5. 单击“确定”创建磁盘组。
    6. 单击“确定”关闭确认窗口。

    Screenshot of the Create Disk Group dialog box.

  4. 选择“退出”关闭 ASM 配置助手。

    Screenshot of the Configure ASM: Disk Groups dialog box with Exit button.

创建数据库

Oracle 数据库软件已安装在 Azure 市场映像中。 若要创建数据库,请完成以下步骤:

  1. 确保上下文设置为 oracle 用户

    • 运行以下命令以设置上下文。 如果仍从上一个命令打开 shell,则可能没有必要执行此操作。
    $ sudo su - oracle
    $ export DISPLAY=10.0.0.4:0.0
    

    运行数据库配置助手

    $ cd /u01/app/oracle/product/19.0.0/dbhome_1/bin
    $ ./dbca
    

    几秒钟后,“数据库配置助手”窗口在 asmXServer VM 上打开。

  2. 在“数据库操作”页上,单击“创建数据库”。

    Screenshot of the Database Operation page.

  3. 在“创建模式”页上:

    1. 确保已选择“典型配置”。
    2. 输入数据库的名称:asmdb
    3. 对于“存储类型”,请确保选择“自动存储管理(ASM)”。
    4. 对于“数据库文件位置”,请浏览并选择“DATA”位置。
    5. 对于“快速恢复区域”,请浏览并选择“FRA”位置。
    6. 键入“管理密码”和“确认密码”。
    7. 确保已选择“创建为容器数据库”。
    8. 键入“可插入数据库名称”值:pasmdb

    Screenshot of the Database Creation page.

  4. 在“摘要”页上,查看所选设置,然后单击“完成”以创建数据库。 数据库创建可能需要 10 分钟以上。

    Screenshot of the Summary page.

  5. 数据库已创建。 在“完成”页上,可以选择解锁其他帐户以使用此数据库并更改密码。 如果想要这样做,请选择“密码管理”- 否则请单击“关闭”。

删除 asmXServer VM

asmXServer VM 仅在安装期间使用。 完成此实验室文档后,可以安全地将其删除,但 Azure 实验室设置上的 ASM 将保持不变。

$ az vm delete --resource-group ASMOnAzureLab --name asmXServer --force-deletion yes

$ az network public-ip delete --resource-group ASMOnAzureLab --name asmXServerPublicIP

删除 Azure 实验室设置上的 ASM

现已在 Azure 市场中的 Oracle DB 映像上成功配置 Oracle 自动存储管理。 如果不再需要此环境,可以使用以下命令删除资源组和所有相关的资源:

$ az group delete --name ASMOnAzureLab

后续步骤

教程:配置 Oracle DataGuard

教程:配置 Oracle GoldenGate

查看设计 Oracle DB