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

Oracle RAC 在 Linux 上部署全流程:用戶配置、內核調優、OCFS2 存儲與集群驗證

     編輯:Oracle 資料庫基礎

環境規劃(雙節點示例)

項目節點 1 (rac1)節點 2 (rac2)
公網 IP192.168.116.121192.168.116.129
私網 IP (Interconnect)10.10.10.110.10.10.2
VIP192.168.116.122192.168.116.130
SCAN IP192.168.116.200/201/202 (DNS 輪詢)
共享存儲/dev/sdb (OCFS2 格式化)

1. 作業系統預配置

用戶/組

groupadd -g 54321 oinstall
groupadd -g 54322 dba
useradd -u 54321 -g oinstall -G dba -d /home/oracle oracle
passwd oracle

內核參數 (/etc/sysctl.conf)

kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
sysctl -p

用戶資源限制 (/etc/security/limits.conf)

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

/etc/pam.d/login 添加 session required /lib/security/pam_limits.so。

SSH 互信 (oracle 用戶)

su - oracle
mkdir ~/.ssh; chmod 700 ~/.ssh
ssh-keygen -t rsa  # 三次回車
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/
chmod 600 ~/.ssh/authorized_keys
# 雙向測試
ssh rac1 date
ssh rac2 date

2. 共享存儲配置:OCFS2

安裝包 (與內核版本強綁定)

ocfs2-tools-*.rpm
ocfs2console-*.rpm
kernel-ocfs2-$(uname -r)-*.rpm

安裝順序:tools → 內核模塊 → console。

分區與格式化

fdisk /dev/sdb  # 建兩個分區:sdb1 (CRS/Home), sdb2 (Data)
mkfs.ocfs2 /dev/sdb1  # 標準簇大小
mkfs.ocfs2 -L "ORADATA" /dev/sdb2  # 數據卷標簽

掛載配置 (/etc/fstab)

/dev/sdb1  /orac/orahome  ocfs2  _netdev,nointr  0 0
/dev/sdb2  /orac/oradata  ocfs2  _netdev,datavolume,nointr  0 0

雙節點同步執行:/etc/init.d/o2cb online → mount -a → mounted.ocfs2 -f 驗證。

目錄權限

chown root:oinstall /orac/crs
chown oracle:oinstall /orac/orahome /orac/oradata
chmod -R 775 /orac/crs /orac/orahome /orac/oradata

3. 安裝 Grid Infrastructure (CRS)

su - oracle
export DISPLAY=<本地IP>:0.0
cd 
./runInstaller
  • 選「安裝並配置 Grid Infrastructure for Cluster」→ 典型安裝。
  • 指定 SCAN 名稱、VIP、私網介面、OCR/Voting Disk 放 OCFS2 (/orac/crs)。
  • Root 腳本雙節點依次執行:/orac/crs/root.sh。

4. 安裝 Database 軟件

  • 同 oracle 用戶運行 ./runInstaller,選「僅安裝數據庫軟件」→ 企業版 → 安裝路徑 /orac/orahome。
  • 無需創建數據庫,稍後 DBCA 創建。

5. DBCA 創建 RAC 數據庫

  • dbca 圖形界面或靜默模式響應文件。
  • 選「管理員管理式」→ 全局數據庫名 oratest.sinobest.com → SID 前綴 oratest。
  • 存儲類型 OCFS2,數據文件 /orac/oradata,恢復區同路徑。
  • 字符集 **AL32UTF8**,樣本模式「一般用途」。

6. 客戶端驗證

tnsnames.ora (含負載均衡與故障轉移)

ORATEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL=TCP)(HOST=192.168.116.121)(PORT=1521))
      (ADDRESS = (PROTOCOL=TCP)(HOST=192.168.116.129)(PORT=1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME=oratest.sinobest.com)
    )
  )

SQL*Plus 測試

SQLPLUS /NOLOG
CONN SYS/ORACLE@ORATEST AS SYSDBA
SELECT INSTANCE_NAME, HOST_NAME, STATUS FROM GV$INSTANCE;

預期輸出兩行,分別顯示 rac1/rac2 實例 READY,確認 RAC 叢集正常運行。

關鍵驗證點清單

  • crsctl check cluster -all 所有資源 ONLINE。
  • srvctl status database -d oratest 兩個實例 OPEN。
  • srvctl status scan SCAN Listener 正常。
  • 手動殺死一個實例進程,驗證 VIP 漂移、服務自動遷移、客戶端無感重連(FAN/FCF)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved