SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 产品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 服务器集群简单化
  • 成功案例
  • 联系我们
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

在 AWS 中创建 HA Oracle 数据库服务器集群

Date: 1月 5, 2023

在 AWS 中创建 HA Oracle 数据库服务器集群

在 AWS 中创建 HA Oracle 数据库服务器集群

介绍作为一名负责为需要 Oracle 高可用性 (HA) 实例的关键业务应用程序创建 POC 的开发人员,我需要在 AWS EC2 中设置一个 Oracle EC2 HA 集群。你从哪里开始?如果您像我们大多数人一样,您将花费无尽的时间在谷歌上搜索您的下一个任务、阅读文章、安装指南、文档和关于堆栈溢出的问题。 您会发现很多几乎正确的答案,但它们永远不会完全适合您的版本或环境。 更糟糕的是,您掉进了一个兔子洞,最终浪费了数天时间来构建一个无法正常工作的环境。

我将构建一系列博客,这些博客专注于设置 HA 环境以使用各种SIOS HA 解决方案例如:DataKeeper、LifeKeeper 和 SIOS Protection Suite。 如果您有我尚未涵盖的即时需求,请告诉我,我会将您的配置移到我的待办事项列表中。

谢谢您阅读此篇。我希望它能让你的生活更轻松。 我在下面有一个任务列表,如果您已经熟悉如何完成这些任务,您可以直接完成这些任务。 下面是执行每项任务的分步指南。

AWS HA Oracle 数据库 SIOS Protection Suite for Linux

  1. 在 Linux 上启动 2 个 Oracle 实例
  2. 让 Xwindows 工作
  3. 连接到实例并安装额外的磁盘
  4. 安装 AWS 命令行工具包
  5. 配置安全/访问
  6. 为虚拟 IP 创建路由条目
  7. 禁用 ENI 的源/目标检查
  8. 编辑/etc/hosts
  9. 使用 VIP 主机名配置侦听器
  10. 禁用 SELinux
  11. 安装适用于 Linux 的 SIOS 保护套件
  12. 启动 LifeKeeper
  13. 连接到第二台服务器
  14. 建立沟通路径
  15. 创建 DataKeeper 资源
  16. 使用虚拟 IP 资源创建层次结构
  17. 创建 Oracle 侦听器资源
  18. 使用 Oracle 数据库创建层次结构
  19. 使用 EC2 创建层次结构
  20. 更改关机行为
  21. 测试故障转移

1. 在 Linux 上启动 2 个 Oracle 实例

在第一篇博客中,我们将使用 SIOS LifeKeeper for Linux 在 AWS 中为 Oracle 集群设置 HA 环境。这意味着排除所有先决条件。 我将在 Oracle Linux 8 AMI 上使用 aws-marketplace/Oracle 数据库 19.8.0 企业版。这些经常变化,很难找到适合您需要的正确的。这个 AMI 是我的第 3 次尝试,因为由于存储库、许可、注册和安全问题,在云中安装任何东西,尤其是 Oracle 之类的东西都非常困难。这个 AMI 实际上可以工作,因为 Oracle 已经安装在映像上。确保操作系统版本和 Oracle DB 版本受 SIOS 支持。可以检查这里.

我的实例有:

  1. 单一专有网络
  2. 单一区域
  3. 每个服务器的不同可用区
  4. 用于数据库存储的附加驱动器
  5. 2 不同子网中每个实例的网络接口
  6. 创建 2 个弹性 IP 地址并为每个服务器附加一个

我将一个额外的磁盘附加到数据库实例,并为冗余通信路径附加一个 NIC。确保两个 NIC 位于不同的子网上。这也意味着您必须手动创建和分配弹性 IP 地址才能连接到实例。

连接到实例并安装附加磁盘。 我正在使用 Putty 和 Xming 连接我的实例。如果使用 Xming,请确保在尝试建立连接之前运行 Xlaunch。

启动实例后,您需要对新磁盘进行分区。最容易找到[ ls /dev/disk/by-path ]:

现在你需要分区磁盘磁盘:

接下来在新分区上创建文件系统mkfs.xfs :

我们现在将挂载文件系统山:

最后,我们将在 fstab 中添加自动挂载磁盘的条目:

请务必注意,您不需要为 Oracle 运行安装。AMI 已经做到了这一点,并为您创建了一个数据库。我删除了使用此 AMI 预先配置的数据库,并使用 DBCA 在 /data 磁盘上创建了一个新数据库。我启动了数据库并创建了一个模式并使用 SQLPLUS 添加了数据。这一切都需要您让 Xwindows 正常工作。

2. 让 Xwindows 工作

可以使用 Xming for Windows 设置使用 Putty 的 Xdisplay。先安装Xming。然后确保开启了X11转发,在x显示位置输入localhost:0.0,在x权限文件中输入路径和xming.exe可执行文件进行本地显示:

这解决了 Windows 方面的问题,但您仍然需要修复 Linux 方面。首先编辑 /etc/ssh/sshd_config 并取消注释“X11Forwarding yes”。接下来是查找正确的密钥并将其添加到 Xauthority。如果您进行了任何用户切换,您可能必须开始一个新会话。以 ec2-user 身份登录后运行xauth列表这将为您提供您需要添加到 Xauthority 文件中的十六进制密钥。切换到oracle用户:苏 – 甲骨文。然后运行xauth 添加 $DISPLAY 。 <从 xauth 列表复制的 hexkey> 。这会将信息存储到 /home/oracle/.Xauthority 文件中。出口回到 ec2-user。

3.连接到实例并挂载额外的磁盘

我正在使用 Putty 和 Xming 连接我的实例。如果使用 Xming,请确保在尝试建立连接之前运行 Xlaunch。

启动实例后,您需要对新磁盘进行分区。最容易找到[ ls /dev/disk/by-path ]:

现在你需要分区磁盘磁盘:

接下来我们在新分区上创建文件系统mkfs.xfs :

此时我们想将 /u01 重命名为 /oracle 目录,以便我们可以将新文件系统挂载到 /u01 上,这是我们使用 AMI 构建的服务器上 Oracle 所在的位置。

使用 mkdir /u01 创建安装点并使用 mount 安装卷。使用 mv /oracle /u01 将文件移动到新磁盘。这将需要一些时间,因为它大约是 11GB 的数据。

最后,我们将在 fstab 中添加自动挂载磁盘的条目:

请务必注意,您不需要为 Oracle 运行安装。AMI 已经做到了这一点,并为您创建了一个数据库。我启动了数据库,创建了一个模式,并使用 SQLPLUS 添加了数据。

4. 安装 AWS cli 工具包

我们需要 awscli 套件;所以,当我们是 root 下载文件时卷曲“https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip”-o“awscliv2.zip”

解压文件解压 awscliv2.zip

安装应用程序须藤./aws/安装

接下来通过单击控制台右上角的帐户在 AWS 中设置访问密钥,然后选择安全凭证

单击创建访问密钥:

然后单击下载 .csv 文件:

将此文件传输到您的服务器上,并使用您的 csv 文件中的密钥 ID 和访问密钥配置 AWS aws配置命令:

测试它是否正在使用类似的东西: aws –no-paginate –no-cli-pager ec2 描述实例

5.配置安全/访问

首先,我将 Oracle 用户添加到 root 和 wheel 组,赋予它伪特权( Usermod -aG wheel oracle) .这将使 Oracle 帐户成为 lkadmin 帐户,使生活变得轻松。我将 sps.img 和许可证文件下载到两台服务器上。

在安装软件之前,还需要完成一些先决条件步骤。首先为服务器配置安全组,使它们可以通过开放TCP端口5900-59010进行通信。同时打开 TCP 端口 81 和 82。 还要确保端口已为虚拟 IP 打开。

6.为虚拟IP创建路由条目

路由表需要更新才能使集群的虚拟 IP 正常工作。在此多子网集群配置中,虚拟 IP 需要位于分配给您的 VPC 的 CIDR 范围之外。定义一个新路由,将流量定向到集群的虚拟 IP (172.30.0.101) 到主集群节点 (Oracle1) 从 VPC 仪表板中,选择路由表,单击编辑。添加“172.30.0.101/32”的路由,目标是主服务器上的主弹性网络接口 (ENI):

7. 禁用 ENI 的源/目标检查

在 Network Interfaces 下,一次选择一个接口,然后在 Actions 下选择 change source/dest。

只要您没有收到身份验证错误,就说明它已正确安装和配置。

取消勾选使能够盒子:

对所有接口重复。

8.编辑/etc/hosts

除非您已经设置了 DNS 服务器,否则您需要在两台服务器上创建主机文件条目,以便它们可以正确地按名称相互解析。

9. 使用 VIP 主机名配置监听器

编辑或创建 $ORACLE_HOME/network/admin/listener.ora 文件以指向 oracle-vip:

10. 禁用 SELinux

编辑 /etc/sysconfig/selinux 文件并设置“SELINUX=disabled”

重新启动服务器。如果此时服务器没有恢复,则可能是您将 SELINUX 设置保留为允许并将 SELINUXTYPE 设置为禁用,这将使实例变砖。只需取消 AWS 中的卷与您的实例的关联并将其挂载到mount -o rw, nouuid {设备} {挂载目录}命令到新的或现有的工作实例。编辑/{挂载目录]/etc/sysconfig/selinux文件,修改错误。保存文件,卸载并取消卷与此实例的关联,然后将其重新附加到旧实例。

11. 为 Linux 安装 SIOS 保护套件

接下来,我以 root 身份通过安装映像文件来安装 SIOS 保护套件mount /home/ec2-user/sps.img /mnt/ -t iso9660 -o loop . 运行安装程序/mnt/设置:

在 LifeKeeper 身份验证下,我向下滚动到 lkadmin 组,按回车键并将 oracle 添加到“lkadmin”组:

选择“确定”,然后选择“完成”并按回车键。下一步滚动到安装许可证密钥文件并按回车键:

从这里输入您的许可证文件的位置和名称:

接下来,我选择 Recovery Kit Selection Menu 并按下回车键:

这里我选择网络:

按空格键选择 LifeKeeper Recovery Kit for EC2。 Tab 到 Done 并回车。接下来我选择数据库菜单,向下滚动并在 LifeKeeper Oracle RDBMS 恢复工具包上点击空格键:

Tab 到 Done 或按 D 并向下滚动到 Storage 并按 Enter。接下来我按下空格键并选择 DataKeeper for Linux:

Tab 到 Done 并按回车键或按 d 退出恢复工具包选择,然后按 Tab 键到 Done 或按 D 退出 Main Configuration 菜单:

确保 LifeKeeper Startup After Install 被选中,然后最后一个选项卡完成或点击 d,我们会看到安装确认屏幕:

在这里按 enter 或 y,安装将开始。

12.启动LifeKeeper

使用以下命令启动 LifeKeeper GUI /opt/LifeKeeper/bin/lkGUIapp如果失败,可能是因为您没有登录 .Xauthority 文件的帐户的幻数。我以 oracle 身份登录,然后做了一个须藤-我扎根。因此,如果我的 gui 未加载,我会将 /home/oracle/.Xauthority 文件复制到 /root :

在这里我以 oracle 身份登录:

13.连接到第二个服务器

然后单击 Cluster Connect 按钮

以 oracle 身份登录:

14.建立沟通渠道

单击“创建通信路径”按钮:

如果出现故障,请确保禁用防火墙和 iptables。下一步:

下一步:

选择您的第一个 IP 地址并点击下一步:

选择远程IP:

下一步:

点击创建:

下一步:

现在点击完成:接下来我们需要通过使用辅助地址重复步骤 14 来创建第二个通信路径。

成功建立两条路径后,服务器应变为绿色。

15. 创建 DataKeeper 资源

单击“创建资源层次结构”按钮:

选择数据复制并点击下一步:

点击下一步(智能意味着在故障转移后您需要手动故障回复):

下一步:

选择您的主服务器并点击下一步:

选择复制现有文件系统并点击下一步:

选择现有的挂载点并点击下一步:

创建一个数据复制资源标签并点击下一步:

选择一个文件系统资源标签并点击下一步:[1]

为获得最佳性能,位图文件应放置在临时卷上。 出于测试目的,可以将位图放置在 OS 磁盘上,如上所示。 选择位图文件位置并点击下一步:

为启用异步复制选择否,然后单击下一步:

选择目标服务器并点击下一步:

选择 Switchback 类型并点击下一步:

选择模板优先级并点击下一步:

选择目标优先级并点击下一步:

下一步:

选择目标磁盘并点击下一步:

下一步:

下一步:

选择要用于复制的网络端点并点击下一步:

选择挂载点,点击下一步:

选择资源标签并点击下一步:

点击完成:

点击完成:

如果您单击 /u01,您将看到音量同步:

16. 使用虚拟 IP 资源创建层次结构

单击创建资源按钮:

选择IP并点击下一步:

选择 Switchback 类型并点击下一步:

选择主服务器并点击下一步:

输入第 6 步中的虚拟 IP 地址,然后点击下一步:

输入 VIP 的子网掩码并点击下一步:

进入网络界面,点击下一步

输入资源标签并点击下一步:

创建成功后点击下一步:

选择目标服务器并点击下一步:

选择 switchback 类型并点击下一步:

选择优先级并点击下一步:

选择优先级并点击下一步:

完成后点击下一步:

下一步:

选择适当的网络掩码并点击下一步:

选择接口并点击下一步:

选择资源标签并点击扩展:

成功完成后点击完成:

验证后点击完成。

17. 创建 Oracle Listener 资源

在尝试在 LifeKeeper 中配置这些资源之前,请确保数据库和侦听器正在运行。单击创建资源按钮:

选择 Oracle Database Listener 并点击下一步:

选择主服务器并点击下一步:

输入监听器配置文件路径和文件名,然后点击下一步:

下一步:

输入侦听器可执行文件的路径并点击下一步:

选择保护级别并点击下一步:

选择恢复级别并点击下一步:

如果需要,选择与侦听器关联的 IP 地址,然后点击下一步:

输入侦听器标签名称并点击创建:

下一步:

点击接受默认值以在第二台服务器上构建资源:

点击完成:

单击完成并展开 LSNR 和 /u01:

18. 使用 Oracle 数据库创建层次结构

单击“创建资源层次结构”按钮:

选择 Oracle 数据库并点击下一步:

选择 Switchback 类型并点击下一步:

选择服务器并点击下一步:

选择数据库名称并点击下一步(如果出现无法找到主目录的错误,请确保数据库正在运行):

输入 sysdba 用户名并点击下一步:

输入该帐户的密码,然后点击下一步:

选择 Oracle 监听器并点击下一步:

点击创建:

创建成功后选择下一步:

选择接受默认值:

选择完成:

点击完成:扩展树以查看所有资源:

19. 使用 EC2 创建层次结构

单击“创建资源层次结构”按钮:

选择 Amazon EC2 并点击 Next>

选择智能并点击下一步>

选择您的主服务器并点击 Next>

选择 EC2 资源类型(我们在此示例中使用后端集群)并点击 Next>

选择 IP 资源并选择 Next>

选择 EC2 资源标签名称并点击创建

成功创建资源后,点击 Next> 几秒钟后,预扩展向导将弹出。点击接受默认值:

检查成功完成后,再次点击接受默认值:

点击完成,验证后点击完成:

配置完成。现在我们可以测试故障转移。

20. 改变关机行为

默认情况下,LifeKeeper 不会故障转移如果您只是关闭或重新启动服务器,则资源不足。 如果您想在关闭服务器之前移动工作负载,您应该在关闭活动节点之前手动将资源移动到备用服务器。 但是,您可能希望更改默认行为以方便测试。 这是通过更改关机策略来控制的,如下所示。

右键单击您的主服务器并选择属性:

在 General 选项卡下,将 Shutdown Strategy 更改为 Switchover Resources,然后点击 Apply:

接下来从服务器下拉菜单中选择辅助服务器并验证设置更改:点击确定:

21. 测试故障转移

我正在从辅助服务器运行 lkGUIapp。如果您在主服务器上,退出 LifeKeeper GUI 并从辅助服务器运行它。

展开所有资源层次结构并打开与主服务器的 SSH 会话。

我也在运行 ping -i 5 到 oracle-vip:

关闭主服务器:

在我的案例中,您可以看到 IP 停止响应的时间 < 25 秒。我以 5 秒的间隔错过了 4 次 20-23 次。现在一切都在备份服务器上处于活动状态。因为我们的主节点仍然关闭,所以我们在层次结构上收到警告。

如果您将切回切换为智能,一旦启动主服务器,您将必须手动在主服务器上启动该服务。在尝试将其投入使用之前,请确保主服务器处于 InSync 状态:

右键单击 cdb1 的 StandBy 按钮并选择 In Service…

点击服务

点击完成。

磁盘重新同步需要几分钟时间,但最终会完成。

恢复所有内容后,我们现在在 AWS 中拥有一个可用于开发的高可用性 Oracle 数据库。

经许可转载自信息系统

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in