首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

單機模擬 Oracle 10g RAC 集群實戰:White Box Linux + OCFS2 + ASM 全棧部署指南

     編輯:Oracle 資料庫基礎

一、 實驗背景與目標

在無雙機硬件條件下,利用單台 PC + 虛擬 IP + 共享磁盤模擬構建 Oracle 10g RAC 環境,驗證核心特性:

  • 故障轉移: 實例故障時服務自動遷移
  • 負載均衡: 多實例分擔查詢/事務負載
  • 可擴展性: 共享存儲架構支援水平擴展

核心挑戰: 單機缺乏物理共享存儲與私有網絡,需通過 OCFS2 文件系統模擬共享存儲、回環網卡模擬私有互連。

二、 硬體與軟體基線

維度配置詳情
硬體 Celeron 1.8GHz / 1GB DDR333 / 40GB IDE 磁盤 / Realtek 8139C 網卡
作業系統 White Box Enterprise Linux 3 (兼容 RHEL 3,免費商用)
集群軟體 Oracle 10g R1 (10.1.0.2) Clusterware (CRS) + Database
共享文件系統 OCFS2 1.0.14 (ocfs, ocfs-support, ocfs-tools RPM)
ASM 驅動 ASMLib 1.0.3 (oracleasm, oracleasm-support, oracleasmlib RPM)

三、 存儲佈局規劃(關鍵)

單磁盤模擬共享存儲,通過分區隔離:

用途掛載點分區文件系統大小建議
Oracle Base / 軟體 /home/oracle /dev/hdaX ext3 10GB+
CRS 儲存 (OCR + Voting Disk) /u01/orcl/orcfile, /u01/orcl/cssfile /dev/hda8 OCFS2 2GB+
ASM 磁盤組 (數據/閃回) ASM 直接管理 /dev/hda9, /dev/hda10 ASM (Raw) 各 4GB+

四、 關鍵部署步驟精要

1. 內核參數與用戶/組預備

# /etc/sysctl.conf 關鍵項
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

# 用戶組
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
useradd -u 501 -g oinstall -G dba,oper,asmadmin oracle
passwd oracle

2. OCFS2 集群配置

# 1. 安裝 RPM
rpm -ivh ocfs-*.rpm ocfs-support-*.rpm ocfs-tools-*.rpm

# 2. 配置集群 /etc/ocfs2/cluster.conf
cluster:
  node_count = 2
  name = rac_cluster

node:
  ip_port = 7777
  ip_address = 192.168.1.101  # Node1 公網/虛擬IP
  number = 1
  name = node1
  cluster = rac_cluster

node:
  ip_port = 7777
  ip_address = 192.168.1.102  # Node2 虛擬IP (同機器不同IP)
  number = 2
  name = node2
  cluster = rac_cluster

# 3. 格式化 OCR/Voting 分區
mkfs.ocfs2 -L "OCR_VOTE" /dev/hda8

# 4. 掛載 (所有節點)
mount -t ocfs2 /dev/hda8 /u01

3. ASMLib 與 ASM 磁盤準備

# 安裝 ASMLib RPM (同上文)
/etc/init.d/oracleasm configure
# user: oracle, group: asmadmin, boot: y, fix perms: y

# 創建 ASM 磁盤 (標記原始分區)
/etc/init.d/oracleasm createdisk DATA1 /dev/hda9
/etc/init.d/oracleasm createdisk FRA1  /dev/hda10
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks

4. 私有網絡模擬(單機雙 IP)

# 配置回環別名作為私有互連
ifconfig lo:1 192.168.99.1 netmask 255.255.255.0 up  # Node1 私有IP
ifconfig lo:2 192.168.99.2 netmask 255.255.255.0 up  # Node2 私有IP

# /etc/hosts 解析
192.168.1.101   node1-vip  node1
192.168.1.102   node2-vip  node2
192.168.99.1    node1-priv
192.168.99.2    node2-priv

5. CRS 安裝與 Database 創建(OUI 圖形化/靜默)

  • 運行 `runInstaller` 先安裝 Clusterware (CRS) 至 `/u01/crs`,指定 OCR/Voting 位於 `/u01/orcl/orcfile`、`/u01/orcl/cssfile`。
  • 再安裝 Database 軟體至 `/home/oracle/product/10.1.0/db_1`,選擇「Cluster Installation」,勾選兩節點。
  • DBCA 創建 RAC 數據庫:全局名 `orcl`,實例 `orcl1`/`orcl2`,存儲選 ASM(DATA/FRA 磁盤組)。

五、 驗證與測試

# CRS 狀態
$CRS_HOME/bin/crs_stat -t
# 應見:ora.node1.vip, ora.node2.vip, ora.orcl.db, ora.orcl.orcl1.inst, ora.orcl.orcl2.inst 皆為 ONLINE

# SQL*Plus 連接驗證負載均衡
sqlplus scott/tiger@orcl
SELECT instance_name FROM v$instance; -- 執行多次應輪詢 orcl1/orcl2

# 故障轉移測試
# Node1 終端殺死 PMON: kill -9 
# 觀察 Node2 實例自動恢復 Node1 的事務,服務漂移至 Node2

六、 遺留已知限制與生產環境差異

  1. 單點存儲風險: 真實生產必須使用外部共享存儲陣列(SAN/NAS/iSCSI)+ 多路徑。
  2. 私有網絡性能: 回環設備無延遲/帶寬壓力測試能力,生產需專用千兆/萬兆私有交換機。
  3. OCFS2 版本老舊: 10g 時代產物,現代 RAC (12c+) 強制要求 Grid Infrastructure 管理共享存儲,OCFS2 已非主流選項(可用但罕見)。
  4. ASM 替代性: 現代部署首選 ASM 直接管理裸設備/多路徑,無需 OCFS2 承載 OCR/Voting。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved