在 RHEL3 上將單一例項資料庫轉換為 Oracle RAC 10g (轉載)

paulyibinyi發表於2008-12-09

作者:Vincent Chan  轉載:

對於那些具有有限操作經驗的使用者而言,實施 Oracle RAC 10g 的前景令人生畏。但事情並不一定如此。

本指南將提供明確的步驟,引導您在 RHEL3 上將單一例項 Oracle 10g 資料庫轉換為 Oracle RAC。我將 Oracle 自動儲存管理 (ASM)(一個構建到 Oracle 資料庫核心中的整合檔案系統和卷管理解決方案)用於 RAC 資料庫儲存,因為它不但提供了儲存可靠性和高效能,還簡化了資料庫儲存管理。

總的說來,有多種方法可以將資料庫轉換為 RAC。如果資料庫比較小,則可以考慮在 ASM 上安裝一個新的 RAC 資料庫,並將當前資料庫中的資料匯出/匯入到 RAC 資料庫。對於較大的資料庫,首選的方法是使用 RMAN 將資料庫檔案移植到 ASM。這裡所要說明的方法是一個分為兩個階段的方法:首先,將資料移植到 ASM,然後將單一例項資料庫轉換為 RAC。如果您是對 ASM 不瞭解,建議您採用此移植方法,先熟悉 ASM,然後再進一步運用 ASM 和 RAC。(有關 Oracle ASM 的更多資訊,請訪問 或參考。)

本指南要求您對 RAC 體系結構有一個基本瞭解,對 Oracle 資料庫和 Red Hat Enterprise Linux 的管理較為熟悉。有關詳細資訊,請參考。


概述

RAC 叢集由兩臺執行 RHEL3(核心 2.4.21-27)的 Intel x86 伺服器組成。每個節點都可以訪問共享儲存器並可以連線到公共網路和專用網路。

本指南分為以下步驟:

  1. 準備安裝
  2. 將資料庫移植到 ASM
  3. 安裝 Oracle 叢集就緒服務 (CRS) 軟體
  4. 安裝 Oracle RAC 軟體
  5. 後續安裝
  6. 測試透明應用程式故障切換 (TAF)
除非另行指定,否則應在兩個節點上執行所有步驟。

以下是在轉換到 RAC 之前的單一例項資料庫環境的情況介紹:

主機名
例項名
資料庫名
$ORACLE_BASE
資料庫檔案儲存
salmon1 prod1 prod1 /u01/app/oracle ext3

和 RAC 資料庫環境情況介紹:

主機名
例項名
資料庫名
$ORACLE_BASE
資料庫檔案儲存
OCR 和 CRS Voting Disk
salmon1 prod1a prod1 /u01/app/oracle ASM 原始
salmon2 prod1b prod1 /u01/app/oracle ASM 原始

您將在每個節點上安裝 Oracle Home 以實現冗餘。ASM 和 RAC 例項在每個節點上共享同一 Oracle Home。

第 1 步:準備安裝

1a.檢驗軟體程式包版本。

安裝所需的程式包。其他資訊可以從中獲得。

[root@salmon1]# rpm -qa | grep -i compat
compat-libstdc++-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
compat-db-4.0.14-5
compat-glibc-7.x-2.2.4.32.6
compat-slang-1.4.5-5
compat-gcc-7.3-2.96.128
compat-pwdb-0.62-3
[root@salmon1]# 
[root@salmon1]# rpm -qa | grep openmotif
openmotif-2.2.3-3.RHEL3
[root@salmon1]# 
[root@salmon1]# rpm -qa | grep -i gcc
gcc-gnat-3.2.3-42
gcc-c++-ssa-3.5ssa-0.20030801.48
compat-gcc-c++-7.3-2.96.128
libgcc-ssa-3.5ssa-0.20030801.48
gcc-3.2.3-42
gcc-g77-3.2.3-42
gcc-java-3.2.3-42
gcc-ssa-3.5ssa-0.20030801.48
gcc-g77-ssa-3.5ssa-0.20030801.48
gcc-objc-ssa-3.5ssa-0.20030801.48
libgcc-3.2.3-42
gcc-c++-3.2.3-42
gcc-objc-3.2.3-42
gcc-java-ssa-3.5ssa-0.20030801.48
compat-gcc-7.3-2.96.128

1b.檢驗核心引數。

檢驗以下核心引數。其他資訊可以從中獲得。

[root@salmon1]# sysctl -a | grep shm
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648
[root@salmon1]# sysctl -a | grep sem
kernel.sem = 250        32000   100     128
[root@salmon1]# sysctl -a | grep -i ip_local
net.ipv4.ip_local_port_range = 1024     65000
[root@salmon1]# sysctl -a | grep -i file-max
fs.file-max = 65536
1c.建立 Oracle Base 目錄、oracle 使用者和組。

在第一個節點上使用下面的資訊,在第二個節點上建立 oracle 使用者以及 oinstall 和 dba 組。

[oracle@salmon1]$ hostname
salmon1.dbsconsult.com
[oracle@salmon1]$ 
[oracle@salmon1]$ id
uid=500(oracle) gid=500(dba) groups=500(dba),501(oinstall)
[oracle@salmon1]$ 
[oracle@salmon1]$ echo $ORACLE_BASE
/u01/app/oracle
1d.編輯 oracle 使用者環境檔案。
[oracle@salmon1]$ more .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

export PATH=$PATH:$HOME/bin
export ORACLE_SID=prod1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
1e.配置 oracle 使用者 shell 限制。
[root@salmon1]# more /etc/security/limits.conf
*                soft    nproc           2047
*                hard   nproc           16384
*                soft    nofile           1024
*                hard   nofile           65536
[root@salmon1]# grep pam_limits /etc/pam.d/login
session    required     /lib/security/pam_limits.so				 
1f.配置公共網路和專用網路。

使用下面的資訊對網路介面裝置 eth0(公共)和 eth1(專用)進行必需的更改。

[root@salmon1]# redhat-config-network
主機名
IP 地址
型別
salmon1.dbsconsult.com 192.168.0.184 公共 (eth0)
salmon2.dbsconsult.com 192.168.0.185 公共 (eth0)
salmon1.dbsconsult.com 10.10.10.84 專用 (eth1)
salmon2.dbsconsult.com 10.10.10.85 專用 (eth1)
salmon1-vip.dbsconsult.com 192.168.0.186 虛擬
salmon2-vip.dbsconsult.com 192.168.0.187 虛擬

1g.編輯 the /etc/hosts 檔案。

127.0.0.1        localhost.localdomain   localhost
10.10.10.84     sallocal1.dbsconsult.com         sallocal1
10.10.10.85     sallocal2.dbsconsult.com         sallocal2
192.168.0.184   salmon1.dbsconsult.com           salmon1
192.168.0.185   salmon2.dbsconsult.com           salmon2
192.168.0.186   salmon1-vip.dbsconsult.com       salmon1-vip
192.168.0.187   salmon2-vip.dbsconsult.com       salmon2-vip
驗證主機名和配置的網路介面裝置。
[root@salmon1]# hostname
salmon1.dbsconsult.com
[root@salmon1]# /sbin/ifconfig

1h.使用 SSH 建立使用者等效性。

在叢集就緒服務 (CRS) 和 RAC 安裝過程中,Oracle Universal Installer (OUI) 必須能夠以 oracle 的身份將軟體複製到所有 RAC 節點,而不提示輸入口令。在 Oracle 10g 中,可以使用 ssh 代替 rsh 完成此操作。

要建立使用者等效性,請在兩個節點上以 oracle 使用者的身份生成使用者的公鑰和私鑰。

[oracle@salmon1]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Created directory '/home/oracle/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
5d:8c:42:97:eb:42:ae:52:52:e9:59:20:2a:d3:6f:59 oracle@salmon1.dbsconsult.com
在每個節點上測試連線。驗證當您再次執行以下命令時,系統是否不提示您輸入口令。
ssh salmon1 date
ssh salmon2 date 
ssh sallocal1 date
ssh sallocal2 date
ssh salmon1.dbsconsult.com date
ssh salmon2.dbsconsult.com date
ssh sallocal1.dbsconsult.com date
ssh sallocal2.dbsconsult.com date
1i.配置 hangcheck timer 核心模組。

hangcheck timer 核心模組監控系統的執行情況,並重新啟動出現故障的 RAC 節點。它使用兩個引數,即 hangcheck_tick(定義系統檢查頻率)和 hangcheck_margin(定義在重置 RAC 節點前的最大掛起延時)來確定節點是否出現故障。

在 /etc/rc.d/rc.local 中新增以下行以自動載入 hangcheck 模組。

[root@salmon1]# grep insmod /etc/rc.d/rc.local 
insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
1j.重新建立資料庫控制檔案。

在轉換到 RAC 之前,確保在控制檔案中正確調整以下項的大小。如果需要,請使用正確的設定重新建立資料庫控制檔案。

MAXLOGFILES
MAXLOGMEMBERS
MAXDATAFILES
MAXINSTANCES
MAXLOGHISTORY
1k.調整資料庫緩衝區快取記憶體。

從單一例項資料庫轉換到 RAC 時,資料庫緩衝區快取記憶體需要額外的記憶體。在 RAC 中,為每個塊緩衝區快取記憶體中的全域性快取記憶體服務 (GCS) 分配空間。所需的額外記憶體量取決於應用程式訪問資料的方式,即同一個塊是否快取記憶體到多個例項中。

在演示實驗中,我觀察到緩衝區快取記憶體的使用率增加了大約 8%。使用緩衝區快取記憶體顧問確定最佳的緩衝區快取記憶體大小,或切換到 Oracle 自動共享記憶體管理 (ASMM) 讓 Oracle 進行控制。


第 2 步:將資料庫移植到 ASM

ASM 例項與資料庫例項之間的同步需要 Oracle 叢集同步服務 (CSS) 後臺程式。要啟動 ASM 例項,必須啟動 CSS 後臺程式。安裝或升級到 Oracle 資料庫 10g 時,應該已經為單節點版本配置了 CSS,並且 CSS 應在系統重新啟動時自動啟動。

 
[root@salmon1]# ps a
                                                    

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-509582/,如需轉載,請註明出處,否則將追究法律責任。

相關文章