暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文]使用 VirtualBox 和 Vagrant 在 Oracle Linux 7 上运行 Oracle Database 21c RAC

原创 小小亮 2021-08-16
1299

本文介绍了使用 VirtualBox 和 Vagrant 在 Oracle Linux 7 上“不干涉”安装 Oracle Database 21c RAC,无需额外的共享磁盘设备。

如果您想知道为什么此安装没有 GUI 版本,请阅读为什么不再有 GUI 安装?

目录

TL;DR

如果您对 VirtualBox、Vagrant 和 RAC 感到满意,您可能希望直接跳转到 GitHub 存储库并使用此处的基本说明。

介绍

阻止人们设置测试 RAC 环境的最大障碍之一是对共享存储的需求。在生产环境中,共享存储通常由 SAN 或高端 NAS 设备提供,但是当您只想获得一些安装和使用 RAC 的经验时,这两种选择都非常昂贵。更便宜的替代方法是使用虚拟化来伪造共享存储。

使用 VirtualBox,您可以在单个服务器上运行多个虚拟机 (VM),从而允许您在一台机器上运行两个 RAC 节点。此外,它还允许您设置共享虚拟磁盘,克服昂贵的共享存储的障碍。

图片.png

在以前的版本中,我介绍了手动安装,但这实际上没有意义,因为您不应再以这种方式安装任何东西,因此我将讨论静默安装。我将描述 Vagrant 构建的内容,因此将在 GitHub 上提供指向实际脚本的链接,而不是在此处重复它们。

在开始此安装之前,需要考虑以下几点。

  • 完成的系统包括主机操作系统、三个客户操作系统、两套Oracle Grid Infrastructure(Clusterware + ASM)和两个数据库实例,都在一台机器上。可以想象,这需要大量的磁盘空间、CPU 和内存。
  • 从最后一点开始,RAC 节点虚拟机每个都需要至少 6G 的 RAM,但是您会看到我为每个使用了 10G,而且速度仍然很慢。不要假设您可以在小型 PC 或笔记本电脑上运行它。你不会。
  • 此过程提供了一个基本的安装来使 RAC 正常工作。Grid Infrastructure 安装或 ASM 安装中没有冗余。要添加此功能,只需创建双倍数量的共享磁盘,并在提供时选择“正常”冗余选项。当然,这会占用更多的磁盘空间。
  • 这不是,也不应该被视为生产就绪系统的说明。它只是让您了解安装 RAC 需要什么,并为您提供一个系统进行试验。
  • DNS 需要支持扫描侦听器。在以前的版本中,我建议在主机服务器上运行 DNS,但这更容易。
  • 本文使用 64 位版本的 Oracle Linux 和 Oracle 21c。
  • 在我的服务器上进行此安装时,我将虚拟磁盘拆分到不同的物理磁盘上。这不是必需的,但会使事情运行得更快一些。
  • 这可能需要三个多小时才能完成。如果您有严重的内存或磁盘速度限制,可能会更长。

所需软件

在您的 PC 上下载并安装以下软件。如果您无法弄清楚这一步,您可能不应该考虑安装 RAC。

  • VirtualBox
  • Vagrant
  • 用于您 PC 的 Git 客户端,因此您可以克隆 vagrant 存储库。

您还需要下载 21c grid和数据库软件

克隆库

在您的 PC 文件系统上选择一个区域作为此 git 存储库的基础并发出以下命令。

git clone https://github.com/oraclebase/vagrant.git
复制

将Oracle软件复制到“…/software/”目录下。从“rac/ol7_21”子目录,结构应该是这样的。

$ tree
.
+--- config
|   +--- install.env
|   +--- vagrant.yml
+--- dns
|   +--- scripts
|   |   +--- root_setup.sh
|   |   +--- setup.sh
|   +--- Vagrantfile
+--- node1
|   +--- scripts
|   |   +--- oracle_create_database.sh
|   |   +--- oracle_db_software_installation.sh
|   |   +--- oracle_grid_software_config.sh
|   |   +--- oracle_grid_software_installation.sh
|   |   +--- oracle_user_environment_setup.sh
|   |   +--- root_setup.sh
|   |   +--- setup.sh
|   +--- Vagrantfile
+--- node2
|   +--- scripts
|   |   +--- oracle_user_environment_setup.sh
|   |   +--- root_setup.sh
|   |   +--- setup.sh
|   +--- Vagrantfile
+--- README.md
+--- shared_scripts
|   +--- configure_chrony.sh
|   +--- configure_hostname.sh
|   +--- configure_hosts_base.sh
|   +--- configure_hosts_scan.sh
|   +--- configure_shared_disks.sh
|   +--- install_os_packages.sh
|   +--- prepare_u01_disk.sh
+--- software
|   +--- LINUX.X64_213000_db_home.zip
|   +--- LINUX.X64_213000_grid_home.zip
|   +--- put_software_here.txt


复制

在 Windows 上克隆存储库时,维护行终止符很重要。所有“.sh”脚本都在 Linux VM 内运行,因此它们需要 UNIX 样式的行终止符。如果您的 Git 客户端设置为在克隆/拉取时将所有文件转换为 Windows 样式的行终止符,那么当从 Linux 调用这些脚本时,您将遇到问题。

修改文件路径

“config”目录包含一个“install.env”和一个“vagrant.yml”文件。这两个文件的组合包含用于此构建的所有配置。您可以在此处更改构建的配置,但请记住确保两者的组合保持一致。

您至少需要修改“vagrant.yml”文件中的以下路径,为您的 PC 上的共享磁盘提供合适的路径。

  asm_crs_disk_1: /u05/VirtualBox/shared/ol7_21_rac/asm_crs_disk_1.vdi
  asm_crs_disk_2: /u05/VirtualBox/shared/ol7_21_rac/asm_crs_disk_2.vdi
  asm_crs_disk_3: /u05/VirtualBox/shared/ol7_21_rac/asm_crs_disk_3.vdi
  asm_crs_disk_size: 2
  asm_data_disk_1: /u05/VirtualBox/shared/ol7_21_rac/asm_data_disk_1.vdi
  asm_data_disk_size: 40
  asm_reco_disk_1: /u05/VirtualBox/shared/ol7_21_rac/asm_reco_disk_1.vdi
  asm_reco_disk_size: 20
复制

例如,如果您在 Windows PC 上工作,您可以创建一个名为“C:\VirtualBox\shared\ol7_21_rac”的路径并使用以下设置。

  asm_crs_disk_1: C:\VirtualBox\shared\ol7_21_rac\asm_crs_disk_1.vdi
  asm_crs_disk_2: C:\VirtualBox\shared\ol7_21_rac\asm_crs_disk_2.vdi
  asm_crs_disk_3: C:\VirtualBox\shared\ol7_21_rac\asm_crs_disk_3.vdi
  asm_crs_disk_size: 2
  asm_data_disk_1: C:\VirtualBox\shared\ol7_21_rac\asm_data_disk_1.vdi
  asm_data_disk_size: 40
  asm_reco_disk_1: C:\VirtualBox\shared\ol7_21_rac\asm_reco_disk_1.vdi
  asm_reco_disk_size: 20
复制

如果您不更改它们,它们将被写入“C:\u05\VirtualBox\shared\ol7_21_rac”。

构建 RAC

以下命令将为您提供一个正常运行的 RAC 安装。

启动 DNS 服务器。

cd dns
vagrant up
复制

启动集群的第二个节点。这必须在您启动第一个节点之前运行。

cd ../node2
vagrant up
复制

忽略最后的“默认:主机密钥验证失败”。最后留言。没关系。

启动集群的第一个节点。这将执行所有安装操作。根据主机系统的规格,这可能需要很长时间。在我的一台服务器上,大约需要 3.5 小时才能完成。

cd ../node1
vagrant up
复制

关闭 RAC

执行以下操作以干净地关闭 RAC。

cd node2
vagrant halt

cd ../node1
vagrant halt

cd ../dns
vagrant halt
复制

删除整个 RAC

以下命令将销毁所有 VM 和相关文件,因此您可以再次运行该过程。

cd node2
vagrant destroy -f

cd ../node1
vagrant destroy -f

cd ../dns
vagrant destroy -f
复制

构建描述

从这里开始,我们将描述构建过程中的各个部分。请记住,所有参数都来自以下两个文件。

DNS 服务器构建

DNS 服务器构建非常简单。您可以在此处查看我收到的 vagrant 输出示例。构建这个虚拟机大约需要 5 分钟。

Vagrantfile包含的VirtualBox虚拟机的定义,将建成,使用从参数vagrant.yml文件。默认值生成具有以下特征的 VM。

  • 操作系统:Oracle Linux 7
  • 虚拟机名称:ol7_21_dns
  • CPU : 1
  • 内存:1G
  • 网卡 1:NAT 网络
  • NIC 2 : 192.168.56.100 - 集群节点使用的“公共”网络上的 IP。
  • 盘1:预装操作系统的盒盘。

VM 的最后阶段构建它以运行setup.sh脚本,该脚本仅运行root_setup.sh脚本。

root_setup.sh脚本执行下列操作。

  • 获取install.env文件以确保构建的所有环境变量都存在。
  • 获取最新的 Yum 存储库文件。
  • 为每个 RAC 节点的公共、私有和虚拟 IP 地址以及 SCAN IP 地址添加条目到 VM 中的“/etc/hosts”文件。这些是使用环境变量构建的。
  • 安装并启用 Dnsmasq。这将“/etc/hosts”文件的内容呈现为 DNS 服务器,这是使用 BIND 进行 DNS 设置的更简单的替代方法。它不会对每个 DNS 解决方案都完美无缺,但它确实非常适合这种解决方案。

一旦vagrant up命令完成,你将留下准备好与你的RAC使用一个正常运作的DNS服务器。

如果 DNS 构建有任何问题,请在修复它们之前不要继续使用 RAC 节点。

RAC 节点 2 构建

RAC 节点的 OS 基本设置非常相似,但节点 2 不执行任何安装操作,因此我们需要在启动节点 1 之前就位。您可以在此处查看我收到的 vagrant 输出示例。构建这个 VM 大约需要 5-10 分钟。

Vagrantfile包含的VirtualBox虚拟机的定义,将建成,使用从参数vagrant.yml文件。默认值生成具有以下特征的 VM。

  • 操作系统:Oracle Linux 7
  • 虚拟机名称:ol7_21_rac2
  • CPU : 4
  • 内存:6144
  • 网卡 1:NAT 网络
  • NIC 2 : 192.168.56.102 - 集群节点使用的“公共”网络上的 IP。
  • NIC 3 : 192.168.1.102 - 集群节点使用的“专用”网络上的 IP。
  • 盘1:预装操作系统的盒盘。
  • 磁盘 2:虚拟机本地的磁盘,用于“/u01”挂载点。
  • 磁盘 3:CRS 磁盘 1。
  • 磁盘 4:CRS 磁盘 2。
  • 磁盘 5:CRS 磁盘 3。
  • 磁盘 6:数据磁盘。
  • 磁盘 7:RECO 磁盘。

VM 的最后阶段构建它以运行setup.sh脚本,该脚本仅运行root_setup.sh

root_setup.sh脚本执行下列操作。

  • 获取install.env文件以确保构建的所有环境变量都存在。
  • 运行prepare_u01_disk.sh对“/dev/sdb”本地磁盘进行分区,在生成的“/dev/sdb1”分区上创建一个文件系统,在“/etc/fstab”中添加一个条目,以便将来自动挂载,以及第一次手动挂载。
  • 运行install_os_packages.sh以配置 Yum 存储库并安装 RAC 节点所需的操作系统包。这包括“oracle-database-preinstall-19c”包,它为我们做了一些操作系统设置。它还包括文档中列出的所有软件包,即使预安装软件包已经安装了一些软件包。包含一些额外的包只是因为安装自动化需要它们。
  • 为“root”和“oracle”用户设置密码。这很愚蠢,但我们需要它来使整个过程保持沉默。
  • 运行configure_hosts_base.sh将公共、私有和虚拟地址添加到“/etc/hosts”文件中。我们不需要 SCAN 地址,因为它们是由 DNS 提供的。我们也可以使用 DNS 来提供本地 IP 地址,但我更喜欢在这里也有这些。
  • 将“/etc/resolv.conf”配置为指向 DNS 服务器 VM。
  • 运行configure_chrony.sh来配置 Chrony,所以我们在安装过程中不会收到 NTP 错误。
  • 运行configure_shared_disks.sh配置 ASM 使用的共享磁盘。如果 ASM 磁盘尚未分区,则会对它们进行分区。然后它会配置 UDEV,因此每次重新启动后,磁盘都会正确安装在此 VM 中。
  • 运行oracle_user_environment_setup.sh为“oracle”用户创建环境脚本,创建GRID_HOMEDB_HOME目录,并为“oracle”用户部分准备无密码认证(用户等效)。此过程将由节点 1 完成。
  • 获取上一个脚本创建的“/home/oracle/scripts/setEnv.sh”脚本。
  • 运行configure_hostname.sh以配置此 VM 的主机名。
  • 为“root”用户部分准备无密码身份验证(用户等效)。此过程将由节点 1 完成。这对于 RAC 运行不是必需的,但对于此安装的自动化是必需的。

一旦vagrant up命令完成,你会留下一个准备RAC节点2。

如果节点 2 构建有任何问题,请在修复它们之前不要继续节点 1 构建。

RAC 节点 1 构建

RAC 节点操作系统的基本设置非常相似,但与节点 2 不同的是,节点 1 设置还包括软件安装和配置操作。请记住,在启动此节点之前,DNS 和节点 2 虚拟机应该正在运行。您可以在此处查看我收到的 vagrant 输出示例。构建此 VM 大约需要1 小时

Vagrantfile包含的VirtualBox虚拟机的定义,将建成,使用从参数vagrant.yml文件。默认值生成具有以下特征的 VM。

  • 操作系统:Oracle Linux 7
  • 虚拟机名称:ol7_21_rac1
  • CPU : 4
  • 内存:7168M
  • 网卡 1:NAT 网络
  • NIC 2 : 192.168.56.101 - 集群节点使用的“公共”网络上的 IP。
  • NIC 3 : 192.168.1.101 - 集群节点使用的“专用”网络上的 IP。
  • 盘1:预装操作系统的盒盘。
  • 磁盘 2:虚拟机本地的磁盘,用于“/u01”挂载点。
  • 磁盘 3:CRS 磁盘 1。
  • 磁盘 4:CRS 磁盘 2。
  • 磁盘 5:CRS 磁盘 3。
  • 磁盘 6:数据磁盘。
  • 磁盘 7:RECO 磁盘。

VM 的最后阶段构建它以运行setup.sh脚本,该脚本仅运行root_setup.sh

所述root_setup.sh脚本执行上述所有相同的操作的节点2构建描述的,但它也包括在安装和配置步骤。我们将只关注此处的差异,而不是重复对常见步骤的解释。

  • 除了从节点 2 为“oracle”和“root”用户重复无密码身份验证(用户等效)步骤之外,节点 1 root_setup.sh脚本使用sshpassssh-copy-id完成无密码身份验证。
  • 在节点 1 和节点 2 上安装“cvuqdisk”包。
  • 运行oracle_grid_software_installation.sh以执行 Grid Infrastructure 软件的静默安装。
  • 在节点 1 和节点 2 上运行“orainstRoot.sh”。
  • 在节点 1 上运行“root.sh”,然后在节点 2 上运行。
  • 运行oracle_grid_software_config.sh以执行 Grid Infrastructure 的静默配置,然后显示集群状态。
  • 运行oracle_db_software_installation.sh以执行数据库软件的静默安装。
  • 在节点 1 上运行“root.sh”,然后在节点 2 上运行。
  • 运行oracle_create_database.sh以使用 DBCA 执行数据库的静默创建。完成后,它会显示已安装服务的状态。

一旦vagrant up命令完成,你将留下一个完全配置和运行2节点RAC。

有关更多信息,请参阅:

希望这可以帮助你。

回到顶部。

文章来源:https://oracle-base.com/articles/21c/oracle-db-21c-rac-installation-on-oracle-linux-7-using-virtualbox

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

目录
  • TL;DR
  • 介绍
  • 所需软件
  • 克隆库
  • 修改文件路径
  • 构建 RAC
  • 关闭 RAC
  • 删除整个 RAC
  • 构建描述
    • DNS 服务器构建
    • RAC 节点 2 构建
    • RAC 节点 1 构建