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: 5 1 月, 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