在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(10)

jinqibingl發表於2012-10-04

在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(10)  

在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(10)
(2007-10-16 17:57:35)
在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(10) - 軒轅劍 - 摸索著前進總比原地踏步好轉載
var $tag=''; var $tag_code='7988af85098d516677e3affac7eca2bb'; var $r_quote_bligid='4cbd76e501000b3b'; var $worldcup='0'; var $worldcupball='0'; 分類: oracle_rac


 

格式化 OCFS2 檔案系統

注:與本節中其他任務不同,只能在 RAC 叢集中的一個節點上建立 OCFS2 檔案系統。我將只從 linux1 執行本節中的所有命令。

現在,我們開始使用“”一節中針對 OCFS2 分割槽的 iSCSI 卷。

注意:需要格外重點注意的是,此時在本文中,在對 iSCSI 捲進行分割槽以用於 OCFS2(如 /dev/sdb1)後,您可能已經重新引導 linux1 若干次。這意味著從 Openfiler 發現的 iSCSI 目標名對映可能與 linux1 上的本地 SCSI 裝置名不同。請重複“”一節中所述的過程,以確定重新引導之後是否發現 iSCSI 目標名與 linux1 上的本地 SCSI 裝置名不同。

例如,在要用於 OCFS2 的 iSCSI 捲上建立主分割槽時,我指定 iSCSI 目標名“iqn.2006-01.com.openfiler:rac1.crs”對映到本地 SCSI 裝置名 /dev/sdb。然後,在本節前面部分,我必須在禁用 SELinux 後重新引導兩個節點。執行完“”一節中所述的過程後,我確定“iqn.2006-01.com.openfiler:rac1.crs”現已對映到本地 SCSI 裝置名 /dev/sdd。這意味著我將在本節中在分割槽 /dev/sdd1 上建立 OCFS2 檔案系統!請注意,您計算機上的本地 SCSI 裝置名很有可能不同。

如果 O2CB 叢集處於離線狀態,則啟動它。格式化操作要求叢集處於聯機狀態,這是因為它需要確保在叢集的某個節點上未掛載該卷。

在本文件的前面部分中,我們在一節中建立了目錄 /u02/oradata/orcl。本節包含用於建立和安裝叢集管理器 使用的檔案系統 (/u02/oradata/orcl) 的命令。

注意,可以使用 GUI 工具 ocfs2console 或命令列工具 mkfs.ocfs2 建立和安裝 OCFS2 檔案系統。在 ocfs2console 實用程式中,使用選單 [Tasks] - [Format]

參見下面有關如何使用命令列工具 mkfs.ocfs2 建立 OCFS2 檔案系統的說明。

為建立檔案系統,我們使用 Oracle 可執行檔案 mkfs.ocfs2。考慮到本示例的目的,我使用對映到 crs 的 iSCSI 卷 /dev/sdd1 的本地 iSCSI 裝置名,以 root 使用者帳戶僅從 linux1 執行以下命令。另請注意,我還指定了一個名為“oracrsfiles”的標籤,可在掛載或取消掛載卷時引用:

$ su - # mkfs.ocfs2 -b 4K -C 32K -N 4 -L oracrsfiles /dev/sdd1 mkfs.ocfs2 1.2.4 Filesystem label=oracrsfiles Block size=4096 (bits=12) Cluster size=32768 (bits=15) Volume size=2145943552 (65489 clusters) (523912 blocks) 3 cluster groups (tail covers 977 clusters, rest cover 32256 clusters) Journal size=67108864 Initial number of node slots: 4 Creating bitmaps:done Initializing superblock:done Writing system files:done Writing superblock:done Writing backup superblock:1 block(s) Formatting Journals:done Writing lost+found:done mkfs.ocfs2 successful

掛載 OCFS2 檔案系統

現在已經建立了此檔案系統,接下來我們便可以載入它了。首先,使用命令列進行掛載,然後我將介紹如何將它包含在 /etc/fstab 中以在每次引導時掛載它。

注:需要使用 OCFS2 標籤 oracrsfilesroot 使用者帳戶在 Oracle RAC 叢集中的兩個節點上執行檔案系統掛載!

首先,此處介紹瞭如何從命令列手動掛載 OCFS2 檔案。注意,需要以 root 使用者帳戶執行該操作:

$ su -
# mount -t ocfs2 -o datavolume,nointr -L "oracrsfiles" /u02/oradata/orcl

如果掛載成功,您將只是獲得提示。但我們應執行以下檢查來確保檔案系統掛載正確。

首先,使用 mount 命令確保成功掛載了新檔案系統。應在 RAC 叢集的兩個節點上執行該操作:

# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbfs on /proc/bus/usb type usbfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) cartman:SHARE2 on /cartman type nfs (rw,addr=192.168.1.120) configfs on /config type configfs (rw) ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw) /dev/sdd1 on /u02/oradata/orcl type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local) 

注:請記下我掛載新檔案系統所使用的 datavolume 選項。Oracle 資料庫使用者必須使用 datavolume 掛載選項安裝任何將包含表決磁碟檔案、叢集登錄檔 (OCR)、資料檔案、重做日誌、歸檔日誌以及控制檔案的卷,以確保 Oracle 程式開啟包含 O_DIRECT 標誌的檔案。nointr 選項確保 I/O 不會由於訊號而中斷。

不應使用該掛載選項掛載任何其他型別的卷,其中包括 Oracle 主目錄(本指南未使用它)。

為什麼掛載卷需要花費這麼長的時間?掛載一個卷大約需要 5 秒鐘。它這樣做是為了使心跳執行緒保持穩定。在以後的版本中,Oracle 計劃增加對全域性心跳(這將使大多數掛載瞬間完成)的支援。

將 OCFS2 配置為在啟動時自動掛載

讓我們瞭解一下到目前為止已經執行的操作。您下載並安裝了 OCFS2,它將用於儲存叢集管理器 檔案所需的檔案。安裝後,您將 OCFS2 模組載入到核心中,然後對叢集檔案系統進行了格式化。最後,您使用 OCFS2 標籤“oracrsfiles”掛載了新建的檔案系統。本節將逐步完成在每次使用 OCFS2 標籤引導計算機時負責掛載新 OCFS2 檔案系統的步驟。

首先將以下行新增到叢集中兩個 Oracle RAC 節點上的 /etc/fstab 檔案中:

LABEL=oracrsfiles /u02/oradata/orcl ocfs2 _netdev,datavolume,nointr 0 0 

注意用於掛載此檔案系統的“_netdev”選項。OCFS2 卷必須使用 _netdev 掛載選項。該掛載選項指示將在網路啟動後掛載該卷,在關閉網路前解除安裝該卷。

現在,讓我們確保已經載入了 ocfs2.ko 核心模組,並確保將在引導過程中安裝檔案系統。

如果您遵循了本指南中的示例,則應已經啟用了用於載入核心模組並安裝 OCFS2 檔案系統的操作。但您將仍以 root 使用者帳戶在叢集的兩個 Oracle RAC 節點上執行以下命令來檢查這些選項:

$ su -
# chkconfig --list o2cb
o2cb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
應把我以粗體標記的標誌設定為“on”。

檢查新 OCFS2 檔案系統的許可權

使用 ls 命令檢查所有權。應把許可權設定為 0775,並將所有者設定為“oracle”、將組設定為“dba”。

我們來先檢查許可權:

# ls -ld /u02/oradata/orcl drwxr-xr-x 3 root root 4096 Jun 27 17:44 /u02/oradata/orcl
正如在以上列表中所看到的,oracle 使用者帳戶(以及 dba 組)將無法寫入此目錄。我們來解決此問題:
# chown oracle.dba /u02/oradata/orcl # chmod 775 /u02/oradata/orcl 
我們回過頭來再次檢查叢集中兩個 Oracle RAC 節點的許可權是否正確:
# ls -ld /u02/oradata/orcl drwxrwxr-x 3 oracle dba 4096 Jun 27 17:44 /u02/oradata/orcl

重新引導兩個節點

開始介紹下一節之前,最好在此時重新引導 RAC 叢集的兩個節點。當計算機啟動時,確保載入了叢集堆疊服務並安裝了新的 OCFS2 檔案系統:

# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbfs on /proc/bus/usb type usbfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) cartman:SHARE2 on /cartman type nfs (rw,addr=192.168.1.120) configfs on /config type configfs (rw) ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw) /dev/sdd1 on /u02/oradata/orcl type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local) 

如果修改了 O2CB 心跳閾值,則應驗證其是否設定正確:

# cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold
61

如何確定 OCFS2 版本

要確定正在執行的 OCFS2 版本,使用:

# cat /proc/fs/ocfs2/version OCFS2 1.2.5 WedMay  2 16:16:08 PDT 2007 (build 0f745576f5282c9408787369d99ba880)  

 


17. 安裝和配置自動儲存管理 (ASMLib 2.0)

應在叢集中的兩個 Oracle RAC 節點上執行大多數安裝和配置過程!但建立 ASM 磁碟將只需在叢集中的單個節點上執行。

在本節中,我們將配置自動儲存管理 (ASM),以將其用作所有 Oracle 物理資料庫檔案(資料、聯機重做日誌、控制檔案、歸檔重做日誌)以及閃回恢復區的檔案系統/卷管理器。

Oracle10g 第 1 版中引入了 ASM,用於使管理員不必再管理單個檔案和驅動器。ASM 內建在 Oracle 核心中。透過它,DBA 可以全天候管理 Oracle 叢集例項的單個例項以叢集例項的數千個磁碟驅動器。將把所有要用於 Oracle 的檔案和目錄包含在磁碟組 中。ASM 跨所有可用磁碟驅動器並行執行負載平衡,以防止熱點並最大限度地提高效能(甚至對於快速更改資料使用模式也是如此)。

有兩個不同方法可在 Linux 上配置 ASM:


使用 ASMLib I/O 的 ASM:此方法使用 ASMLib 呼叫在由 ASM 管理的原始塊裝置 上建立所有 Oracle 資料庫檔案。由於 ASMLib 使用塊裝置,因此該方法不需要原始裝置。
使用標準 Linux I/O 的 ASM:此方法使用標準 Linux I/O 系統呼叫在 ASM 管理的原始字元裝置 上建立所有 Oracle 資料庫檔案。您將需要為 ASM 使用的所有磁碟分割槽建立原始裝置。

在本文中,我將使用“使用 ASMLib I/O 的 ASM”方法。Oracle 指出(在Metalink 說明 275315.1 中)“提供的 ASMLib 支援 ASM I/O 用於 Linux 磁碟,無需考慮標準 UNIX I/O API 的限制”。我計劃將來執行幾個測試以確定使用 ASMLib 會獲得的效能增益。這些效能度量和測試細節超出了本文的範圍,因此將不予討論。

如果要了解有關 Oracle ASMLib 2.0 的詳細資訊,請訪問

安裝 ASMLib 2.0 程式包

在本文以前的版本中,此時您需要從 下載 ASMLib 2.0 軟體。 ASMLib 2.0 軟體包括以下的程式包:


ASMLib 核心驅動程式
oracleasm-x.x.x-xx.EL-x.x.x-x.i686.rpm —(適用於單處理器)
oracleasm-x.x.x-xx.ELsmp-x.x.x-x.i686.rpm —(適用於多處理器)
oracleasm-x.x.x-xx.ELhugemem-x.x.x-x.i686.rpm —(適用於 hugemem)
使用者空間庫
oracleasmlib-x.x.x-x.i386.rpm
驅動程式支援檔案
oracleasm-support-x.x.x-x.i386.rpm

然而,現在不需要下載 ASMLib 軟體了,因為它已包括在 Enterprise Linux 中(使用者空間庫除外,因為它是一個單獨的下載)。如果您遵循我所提供的 Enterprise Linux 安裝指導,則已經安裝了所有內容,這時您將擁有所有 ASMLib 必需的 RPM 程式包(同樣,使用者空間庫除外)。但如果您執行了其他安裝型別(即,高階伺服器),則可能缺少 ASMLib 程式包並需要安裝它們。ASMLib 所需的所有 RPM 都包括在 Enterprise Linux 的 Disk 3 上。為了確定系統上是否安裝了 ASMLib,可以在 Oracle RAC 叢集的兩個節點執行以下命令:

# rpm -qa | grep oracleasm | sort oracleasm-2.6.9-55.0.0.0.2.EL-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELhugemem-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELsmp-2.0.3-2 oracleasm-support-2.00.3-2

注意,上面的清單包括適用於三種架構型別(單處理器、hugemem 和多處理器)的 ASMLib 核心驅動程式。預設情況下,Enterprise Linux 與 hugemem 核心一起安裝,這意味著只需要 oracleasm-2.6.9-55.0.0.0.2.ELhugemem-2.0.3-2。然而,安裝了其他兩個 ASMLib 核心驅動程式對配置也沒有影響。

如果您缺少 ASMLib 程式包並需要安裝它們,載入 Enterprise Linux 的 Disk 3 並以 root 使用者賬戶執行以下命令。確保在叢集的兩個 Oracle RAC 節點上執行該操作。

$ su - # mount -r /media/cdrom # cd /media/cdrom/Enterprise/RPMS # rpm -Uvh oracleasm* warning:oracleasm-2.6.9-55.0.0.0.2.EL-2.0.3-2.i686.rpm:V3 DSA signature:NOKEY, key ID b38a8516 Preparing... ########################################### [100%] 1:oracleasm-support ########################################### [ 25%] 2:oracleasm-2.6.9-55.0.0.########################################### [ 50%] 3:oracleasm-2.6.9-55.0.0.########################################### [ 75%] 4:oracleasm-2.6.9-55.0.0.########################################### [ 100%] # rpm -qa | grep oracleasm | sort oracleasm-2.6.9-55.0.0.0.2.EL-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELhugemem-2.0.3-2 oracleasm-2.6.9-55.0.0.0.2.ELsmp-2.0.3-2 oracleasm-support-2.00.3-2

獲取 Oracle ASMLib

正如前一節提到的那樣,除了使用者空間庫(即 ASMLib 支援庫)以外,,ASMLib 2.0 軟體都包括在 Enterprise Linux 中。使用者空間庫是必需的,可以在下面的網站上免費下載:



將使用者空間庫下載到叢集的兩個 Oracle RAC 節點上,然後使用以下命令進行安裝:

# rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm Preparing... ########################################### [100%] 1:oracleasmlib ########################################### [100%]

有關透過堅不可摧的 Linux 網路(並非本文的必需)獲取 ASMLib 支援庫的資訊,請訪問。

配置和載入 ASMLib 2.0 程式包

既然您已經安裝了用於 Linux 的 ASMLib 程式包,接下來您需要配置並載入 ASM 核心模組。需要在兩個 Oracle RAC 節點上以 root 執行此任務:

$ su - # /etc/init.d/oracleasm configure Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver.The following questions will determine whether the driver is loaded on boot and what permissions it will have.The current values will be shown in brackets ('[]').Hitting  without typing an answer will keep that current value.Ctrl-C will abort. Default user to own the driver interface []:oracle Default group to own the driver interface []:dba Start Oracle ASM library driver on boot (y/n) [n]:y Fix permissions of Oracle ASM disks on boot (y/n) [y]:y Writing Oracle ASM library driver configuration:[OK ] Creating /dev/oracleasm mount point:[OK ] Loading module "oracleasm":[OK ] Mounting ASMlib driver filesystem:[OK ] Scanning system for ASM disks:[OK ]

為 Oracle 建立 ASM 磁碟

建立 ASM 磁碟只需要在 RAC 叢集中的一個節點上以 root 使用者帳戶執行。我將在 linux1 上執行這些命令。在另一個 Oracle RAC 節點上,您將需要執行 scandisk 以識別新卷。該操作完成時,應在兩個 Oracle RAC 節點上執行 oracleasm listdisks 命令以驗證是否建立了所有 ASM 磁碟以及它們是否可用。

在“”一節中,我們對 ASM 要使用的四個 iSCSI 捲進行了配置(分割槽)。ASM 將用於儲存 Oracle 資料庫檔案,如聯機重做日誌、資料庫檔案、控制檔案、歸檔重做日誌以及閃回恢復區。

注意:需要格外重點注意的是,此時在本文中,在對 iSCSI 捲進行分割槽以用於 ASM(如 /dev/sda/dev/sdb/dev/sdc/dev/sde)後,您可能已經重新引導 linux1 若干次。這意味著從 Openfiler 發現的 iSCSI 目標名對映可能與 linux1 上的本地 SCSI 裝置名不同。請重複“”一節中所述的過程,以確定重新引導之後是否發現所有四個 ASM 卷的 iSCSI 目標名與 linux1 上的本地 SCSI 裝置名不同。

例如,我在配置了 OCFS2 後(前一部分)重新引導了兩個 Oracle RAC 節點。我適用於 linux1 的 ASM iSCSI 目標名對映發生了變化,如下所示:

iSCSI 目標名到本地 SCSI 裝置名 — (ASM)
iSCSI 目標名稱 主機/SCSI ID SCSI 裝置名稱
iqn.2006-01.com.openfiler:rac1.asm4 0 /dev/sda
iqn.2006-01.com.openfiler:rac1.asm3 1 /dev/sde
iqn.2006-01.com.openfiler:rac1.asm2 2 /dev/sdb
iqn.2006-01.com.openfiler:rac1.asm1 3 /dev/sdc

使用上述 iSCSI 目標名對映建立 ASM 磁碟時要使用的本地 SCSI 裝置名。


注:如果使用相同硬體(實際上是相同的共享邏輯驅動器)重複本文,則在嘗試建立 ASM 磁碟時可能會出現故障。如果確實遇到故障,則嘗試使用以下命令列出所有 ASM 磁碟:
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
您可以看到,結果表明我定義了四個 ASM 卷。如果您在之前的執行中已經定義了四個卷,那麼使用以下命令將其刪除。刪除之前建立的卷後,使用“oracleasm createdisk”命令(如下所示)建立新卷。
# /etc/init.d/oracleasm deletedisk VOL1 Removing ASM disk "VOL1" [ OK ] # /etc/init.d/oracleasm deletedisk VOL2 Removing ASM disk "VOL2" [ OK ] # /etc/init.d/oracleasm deletedisk VOL3 Removing ASM disk "VOL3" [ OK ] # /etc/init.d/oracleasm deletedisk VOL4 Removing ASM disk "VOL4" [ OK ]

要使用 iSCSI 目標名到 SCSI 本地裝置名對映(如上所述)建立 ASM 磁碟,鍵入以下內容:

$ su - # /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1 Marking disk "/dev/sdc1" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL2 /dev/sdb1 Marking disk "/dev/sdb1" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL3 /dev/sde1 Marking disk "/dev/sde1" as an ASM disk [ OK ] # /etc/init.d/oracleasm createdisk VOL4 /dev/sda1 Marking disk "/dev/sda1" as an ASM disk [ OK ]

在 RAC 叢集中的所有其他節點上,您必須執行磁碟掃描程式 以識別新卷:

# /etc/init.d/oracleasm scandisks Scanning system for ASM disks [ OK ]

現在,我們可以使用以下命令在 RAC 叢集中的兩個節點上以 root 使用者帳戶的身份測試是否成功建立了 ASM 磁碟:

# /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 VOL4

 


18. 下載 Oracle RAC 10g 軟體

只需要在叢集中的一個節點上執行以下下載過程!

下一個邏輯步驟是安裝 Oracle 叢集件第 2 版 (10.2.0.1.0)、Oracle 資料庫 10g 第 2 版 (10.2.0.1.0) 以及最終用於 Linux x86 軟體的 Oracle 資料庫 10g 隨附 CD 第 2 版 (10.2.0.1.0)。但我們必須先從 Oracle 技術網 (OTN) 下載並提取所需的 Oracle 軟體程式包。

您將從 Oracle 下載所需的軟體並將其提取到叢集的一個 Linux 節點(即 linux1)上。您將從此計算機執行所有安裝。Oracle 安裝程式將把所需的軟體程式包複製到我們在(為遠端訪問配置 RAC 節點)中用遠端訪問方法設定的 RAC 配置中的所有其他節點上。

登入到您將從其中以“oracle”使用者帳戶執行所有 Oracle 安裝的節點 (linux1)。在該示例中,您將把所需的 Oracle 軟體下載到 linux1 並將其儲存到 /u01/app/oracle/orainstall

下載並提取軟體

首先, Oracle 叢集件第 2 版 (10.2.0.1.0)、Oracle 資料庫 10g 第 2 版 (10.2.0.1.0) 以及用於 Linux x86 的 Oracle 資料庫 10g 隨附 CD 第 2 版 (10.2.0.1.0) 軟體。所有下載均在同一頁面中提供。

oracle 使用者帳戶將下載的三個程式包提取到臨時目錄。在該示例中,我將使用 /u01/app/oracle/orainstall

按如下所示提取 Oracle 叢集件程式包:

# su - oracle
$ cd ~oracle/orainstall
$ unzip 10201_clusterware_linux32.zip
然後提取 Oracle 資料庫軟體:
$ cd ~oracle/orainstall
$ unzip 10201_database_linux32.zip
最後,提取 Oracle 隨附 CD 軟體:
$ cd ~oracle/orainstall
$ unzip 10201_companion_linux32.zip

 

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

相關文章