確保所有集群節點(至少2臺)安裝Ubuntu 22.04 LTS及以上版本(需滿足Oracle 19C/21C/23C的最低兼容要求),并完成系統更新:
sudo apt update && sudo apt upgrade -y
/etc/hosts文件,添加節點名稱與IP的映射(如node1 192.168.1.101、node2 192.168.1.102),確保節點間可通過主機名互相訪問。ping命令驗證節點間網絡延遲≤1ms、帶寬≥1Gbps。blkid命令查看),并修改/etc/fstab實現開機自動掛載。在所有節點上安裝Oracle安裝所需的依賴包:
sudo apt install -y automake autotools-dev binutils bzip2 elfutils expat gawk gcc gcc-multilib g++-multilib libaio1 libaio-dev libelf-dev libltdl-dev libssl-dev unixodbc unixodbc-dev sysstat ksh libtool lsof
Grid Infrastructure是Oracle RAC的核心管理組件,負責集群節點協調、資源監控及故障恢復。
將Oracle Grid Infrastructure安裝介質(如linux.x64_19c_grid_1of2.zip、linux.x64_19c_grid_2of2.zip)上傳至主節點的/soft目錄,解壓并合并文件:
unzip linux.x64_19c_grid_1of2.zip -d /soft/grid
unzip linux.x64_19c_grid_2of2.zip -d /soft/grid
進入安裝目錄,運行runInstaller啟動圖形化安裝向導:
cd /soft/grid
./runInstaller
node1、node2);racdb.example.com),Oracle會自動創建DNS記錄(需提前配置DNS服務器);192.168.1.103對應node1-vip,192.168.1.104對應node2-vip);按照向導完成安裝,安裝完成后,執行root.sh腳本(在每個節點上執行):
sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/19.0.0/grid/root.sh
使用crsctl命令啟動集群,驗證節點狀態:
crsctl start crs # 啟動集群
crsctl status crs # 查看集群狀態(所有節點應顯示“Online”)
Grid Infrastructure安裝完成后,在主節點上安裝Oracle Database軟件(RAC模式)。
將Oracle Database安裝介質(如linux.x64_21c_database_1of2.zip、linux.x64_21c_database_2of2.zip)上傳至/soft目錄,解壓:
unzip linux.x64_21c_database_1of2.zip -d /soft/db
unzip linux.x64_21c_database_2of2.zip -d /soft/db
進入安裝目錄,運行runInstaller:
cd /soft/db
./runInstaller
orcl)、字符集(如AL32UTF8)、密碼(SYS、SYSTEM用戶);/u01/app/19.0.0/grid)。按照向導完成安裝,安裝完成后,執行root.sh腳本(在每個節點上執行):
sudo /u01/app/oracle/product/21.0.0/dbhome_1/root.sh
使用dbca(Database Configuration Assistant)創建RAC數據庫,確保選擇“RAC模式”。
dbca
orcl.example.com)、SID(如orcl);orcl1對應node1,orcl2對應node2)、內存參數(如SGA_TARGET、PGA_AGGREGATE_TARGET);點擊“完成”,等待數據庫創建完成。創建成功后,可使用sqlplus連接到數據庫,驗證RAC狀態:
sqlplus / as sysdba
SELECT INSTANCE_NAME, STATUS FROM GV$INSTANCE; -- 查看所有節點實例狀態(應均為“OPEN”)
停用某個節點(如node1)的服務,觀察VIP是否自動漂移至另一個節點(node2),數據庫服務是否持續可用:
# 在node1上停用Oracle服務
systemctl stop oracle-rac
# 在node2上查看VIP狀態
crsctl status resource -t | grep -i vip
# 在node2上連接數據庫,驗證服務可用性
sqlplus sys/password@node2-vip:1521/orcl as sysdba
通過多個客戶端同時連接數據庫,驗證連接是否均勻分布在各節點(可通過GV$SESSION視圖查看會話分布):
SELECT INST_ID, COUNT(*) AS SESSION_COUNT FROM GV$SESSION GROUP BY INST_ID;
ocrconfig命令備份OCR,rman備份數據庫);crsctl命令監控集群狀態,及時處理節點故障;以上步驟為Ubuntu環境下Oracle RAC集群搭建的基本流程,實際操作中需根據具體環境(如網絡拓撲、存儲設備)調整配置參數。建議在測試環境中充分驗證后再應用于生產環境。