使用VirtualBox Linux環境中的Oracle RAC 數據庫


文章來自:Lab128

本文介紹了Oracle 數據庫 11gR2 RAC(11.2 64位)在VirtualBox(4.1.14+) Linux(Oracle Linux 6.3 64 位)環境中的安裝和使用。

簡介

如果你想要通過 Oracle RAC 安裝的所有步驟,您的便攜式計算機或台式計算機應該有 8 GB 或更多的內存,這樣按本文中所示的內容使用 Oracle VirtualBox是完全可行的。您可以得到一個正常運行的 RAC 系統並創建一個小的測試數據庫。這個系統並不能考慮用在生產環境中。它只能用來熟悉安裝和使用 RAC 和測試各種數據庫管理操作。本文還介紹如何保存 RAC的鏡像以便於在幾分鍾之內恢復您的環境。這樣即使您的測試系統出了問題也很容易恢復。

本文使用 Oracle Linux 6.3 和 Oracle 11g 版本 2,11.2.0.3 的 64 位版本。使用 VirtualBox 您可以在單個服務器上運行多個虛擬機 (Vm),允許您在一台機器上運行兩個 RAC 節點。此外,它允許您設置共享的虛擬磁盤。配置完成的系統包括兩個Guest操作系統、 Oracle Grid(Clusterware + ASM) 和兩個數據庫實例。所需的磁盤空間約 32 GB,如果您想要保存RAC的鏡像則需要另外 12 GB 的磁盤空間。

這篇文章最初是Tim Hall在他的博客中發表的內容 "Oracle Database 11g Release 2 RAC On Linux Using VirtualBox"所啟發的。然后經過幾乎完全的訂正和返工,現在這篇文章與原文幾乎沒什么相似之處了。

注意:在本文撰寫時,Oracle 數據庫 11gR2 (11.2.0.3)  Linux 64位是通過 Oracle Support網站向正式用戶提供的。像以往一樣,甲骨文公司很快會向一般公眾發布。所以我想目前使用最新和最好的版本是最佳的選擇,因為他們修正了許多 bug。但現在是 2012年年底 11.2.0.3 對一般公眾仍然是不可用的,但是此版本確實比任何舊版本來說都要好。對此造成的不便表示歉意,並建議尋找任何可能的方式來獲取此版本。花費時間和精力對付那些已經修正的bug實在沒有任何意義

到目前為止,11.2.0.3 已經可以在 Oracle Support網站上下載,在"修補程序和更新",然后選擇最新 “Patchsets"、"Oracle 數據庫",然后選擇"Linux x 86-64",然后選擇選擇"11.2.0.3.0"。此修補程序集的編號是 10404530,你可能要跳轉到下載頁面使用此編號。此修補程序集是完整的 Oracle 數據庫軟件的安裝包。這意味着您不需要安裝 Oracle 數據庫 11gR2 (11.2.0.3) 之前的版本。對於安裝 RAC 數據庫,您將只需要 3 個文件:

Oracle Database (includes Oracle Database and Oracle RAC), part 1:	
p10404530_112030_Linux-x86-64_1of7.zip 1.3G

Oracle Database (includes Oracle Database and Oracle RAC), part 2:
p10404530_112030_Linux-x86-64_2of7.zip 1.1G

Oracle Grid Infrastructure (includes Oracle ASM, Oracle Clusterware):
p10404530_112030_Linux-x86-64_3of7.zip 933M

系統要求

  • 8 GB 的 RAM ;
  • 32 GB 的可用硬盤空間 ;
  • 此過程是在 64 位 Windows 7 上進行測試。使用 VirtualBox 上的其他主機操作系統應該也沒有問題。請讓我知道在其他操作系統上是否成功或有任何問題 ;

下載軟件

下載以下軟件。

虛擬機安裝設置

在本練習中,我們使用 64 位 Windows 7 上的VirtualBox。

現在,我們必須定義兩個虛擬 RAC 節點。我們可以通過定義一個 VM,然后克隆以節省安裝時間。

啟動 VirtualBox,然后單擊工具欄上的"新建"按鈕。單擊虛擬機向導的第一頁上的"下一步"按鈕。

輸入名稱"rac1","Linux"操作系統和版本"Oracle (64 位)",,然后單擊"下一步"按鈕:

Create New VM - VM Name and OS Type

如果您的主機系統中有16GB的內存,Base Memory設置為3072MB,否則按如下屏幕快照所示使用2048MB,然后單擊"下一步"按鈕:

Create New VM - Memory

接受默認的選項來創建新的虛擬硬盤,單擊"下一步"按鈕:

Create New VM - Virtual Hard Disk

在虛擬磁盤創建向導的歡迎屏幕上接受默認的 VDI 類型並單擊"下一步"按鈕:

New Virtual Hard Disk - VDI type

通過單擊"下一步"按鈕,接受默認的"動態分配"選項:

New Virtual Hard Disk - Dynamically allocated

接受默認位置並設置大小為"16 G"並單擊"下一步"按鈕:

New Virtual Hard Disk - Virtual Disk Location And Size

在創建新虛擬磁盤摘要屏幕上按"創建"按鈕:

New Virtual Hard Disk - Summary

在創建新虛擬機摘要屏幕上按"創建"按鈕:

Create New VM - Summary

"Rac1"VM 將出現在左側窗格中。單擊右側的"網絡"鏈接:

VM Manager - rac 1

請確保啟用"適配器 1",附加到"橋接適配器"

Network - Adapter 1

然后單擊"適配器 2",確保"適配器 2"已啟用,並附加到"內部網絡"選項卡上。然后按"確定"按鈕:

Network Adapter 2

(可選) 您可以禁用"音頻"鏈接的音頻卡。這可能會節省一定數量的空間,避免潛在的與音頻相關的設置問題。此外如果您的系統具有 4 個 CPU 內核或更多,可以考慮將 2 個 Cpu 分配給虛擬機。您可以在"系統"設置中更改。

現在虛擬機已經配置好了,我們可以開始Guest操作系統安裝。

Guest操作系統安裝

請注意在安裝過程中鼠標指針會一直保持在 VM 區域內。若要退出,請按鍵盤上的右控制鍵。

將 Oracle Linux 6.3 (或更高版本) DVD 放在 DVD 驅動器中,並跳下兩個屏幕截圖。如果您沒有 DVD、 下載.iso 映像並將它放在虛擬 DVD中。選擇 VirtualBox 管理器屏幕的右手窗格上的"存儲"鏈接。然后選擇"存儲樹"一節中的 DVD 驅動器:

Select DVD Drive

在"屬性"一節中的 DVD 磁盤圖標上單擊,然后選擇 DVD.iso 文件。請注意在存儲樹中所示的文件稱。然后按“確定":

Select DVD Drive file

通過單擊工具欄上的"開始"按鈕啟動虛擬機。由此產生的控制台窗口將包含 Oracle Linux 啟動屏幕。選擇"安裝或升級現有系統":

Oracle Linux Boot

不要執行媒體測試。選擇"跳過"按鈕:

通過單擊工具欄上的"開始"按鈕啟動虛擬機。由此產生的控制台窗口將包含 Oracle Linux 啟動屏幕。

Oracle Linux Boot

繼續通過 Oracle Linux 安裝所需的正常步驟。在隨后的三個屏幕上選擇語言,鍵盤和基本存儲設備類型。確認要丟棄任何數據。

設置"主機名"為 rac1.localdomain,按"配置網絡":

Linux set hotsname

在網絡連接屏幕中選擇"系統 eth0"界面,按"編輯":

Linux network setup

選中"自動連接"復選框。選擇"IPv4 設置"選項卡以確保方法設置為"自動 (DHCP)"。選擇"IPv6 設置"選項卡以確保該方法設置為"忽略"。按下"應用"按鈕:

Linux network setup

關閉網絡連接屏幕並繼續到下一個安裝程序屏幕。選擇時區 ;root密碼: oracle ;

選擇"使用所有空間"類型的安裝並選中"審查和修改分區布局":

Linux network eth1 setup

編輯lv_swap 設備的大小為1500 MB然后編輯 lv_root為 14380 MB。按"下一步":

Linux partitions setup

通過警告確認並創建分區。在啟動加載程序屏幕中保持默認設置。

在軟件類型安裝屏幕中選擇"數據庫服務器",現在選中"自定義"按鈕。按下一步:

Linux software type

在自定義屏幕中,選擇數據庫,然后取消選中所有項目 ;請選擇台式機並選中"桌面"和"圖形化管理工具";然后按下一步,並完成安裝。重新啟動。

當它啟動后,會有更多的設置要完成。不要創建 oracle 帳戶,這將在以后完成。祝賀你 !已安裝完成 Linux。

檢查互聯網訪問權限

我們將需要訪問 Internet,因為要在線安裝附加的軟件包。打開終端並嘗試 ping 任何互聯網網站,例如:

ping yahoo.com

如果 ping 不工作,解決該問題,使用 'ifconfig' 命令,並且在網絡連接中進行更改 (Linux 桌面主菜單 |系統 |首選項 |網絡連接)。如果您在網絡連接中進行更改,重新啟動界面,通過重新啟動 VM 或運行這兩個命令:

# ifdown eth0
# ifup eth0

然后再次檢查 ping。

Oracle Clusterware安裝的前提條件。第 1 部分

這一節中的所有操作必須由 root 用戶執行。

通過安裝 'oracle-rdbms-server-11gR2-preinstall' 包運行自動安裝程序。此包執行先決條件,包括內核參數變化和 Linux oracle 帳戶的創建:

# yum install oracle-rdbms-server-11gR2-preinstall

注意。也許你現在不能粘貼並復制此命令。所以您將必須手動鍵入它。我們會稍后通過安裝Guest補丁修復此問題。現在只需鍵入這些命令。

安裝 ASMLib:

# yum install oracleasm
# yum install oracleasm-support

運行此命令配置 ASMLib ,並回答問題:

# oracleasm configure -i
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 <ENTER> 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 []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
#

安裝Guest補丁

Guest補丁是可選的但是強烈建議。Guest補丁允許鼠標更好地集成,支持和剪貼板雙向復制。另一個重要功能是使主機操作系統中的共享文件夾可以被Guest訪問。本文檔的其余假定Guest補丁已經安裝了。

若要安裝Guest補丁,重新啟動剛剛創建的虛擬機,以 root 用戶身份登錄。然后在窗口菜單中選擇設備 |安裝Guest補丁。選擇下載直到您看到 DVD 自動運行屏幕:

VirtualBox guest additions

按"確定",然后"運行"以開始安裝。

注意。安裝可能會因為缺少kernel-uek-devel開發包而失敗,其提供 'yum' 命令來安裝此程序包運行此命令-這就是為什么我們需要互聯網接入。此外安裝另一個程序包: 'yum install gcc'。然后重新安裝Guest補丁:通過雙擊桌面上的 VBOXADDITIONS DVD 圖標並單擊"打開自動運行提示"按鈕,。

重新啟動機器。現在您應該覺得VirtualBox 更好用了 !

Oracle Clusterware安裝的前提條件。第 2 部分

創建 Oracle 軟件的安裝目錄。

mkdir -p  /u01
chown -R oracle:oinstall /u01
chmod -R 775 /u01/

將Oracle 帳戶添加到 dba 和 vboxsf 組。Vboxsf 組由 VirtualBox Guest 補丁創建將允許 oracle 用戶訪問在主機操作系統中的文件夾:

# usermod -G dba,vboxsf oracle

重置oracle 用戶密碼為oracle:

# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
#

通過編輯"/etc/selinux/config"的文件,確保 SELINUX 標志如下所示設置,禁用 linux 的安全。

SELINUX=disabled

配置NTP,或者確保不對其進行配置,以便 Oracle Clusterware時間同步服務 (ctssd) 可以同步RAC 節點的時間。在以下的例子中,我們將取消配置 NTP。

# service ntpd stop
Shutting down ntpd: [FAILED]
# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.orig
# rm /var/run/ntpd.pid

清理YUM資料庫:

# yum clean all

檢查文件系統的使用情況,已使用約2.8 GB空間:

# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_rac1-lv_root
14493616 2865472 10891888 21% /
tmpfs 1027556 272 1027284 1% /dev/shm
/dev/sda1 495844 77056 393188 17% /boot
#

網絡設置

這一節中的所有操作必須由 root 用戶執行。

下面是 TCP公共和私有網絡中使用的地址。如果您需要使用另一個地址,請作出相應的調整,記住這些調整要與整個文章的其余部分保持一致。請注意 192.168.56.0 的子網是由 VirtualBox 用作主機內的主機操作系統和虛擬機網絡連接的的默認配置。VirtualBox 也在此子網地址上運行 DHCP 服務器,保留范圍 100-254 。所以使用低於 100 的靜態地址是安全的。您可以驗證這些設置: 主菜單 |文件 |首選項 |網絡,然后檢查主機網絡的屬性。我們使用此子網作為 RAC 的公共網絡。

編輯"/etc/hosts"文件,追加以下信息:

# Private
192.168.10.1 rac1-priv.localdomain rac1-priv
192.168.10.2 rac2-priv.localdomain rac2-priv

# Public
192.168.56.71 rac1.localdomain rac1
192.168.56.72 rac2.localdomain rac2

# Virtual
192.168.56.81 rac1-vip.localdomain rac1-vip
192.168.56.82 rac2-vip.localdomain rac2-vip

# SCAN
192.168.56.91 rac-scan.localdomain rac-scan
192.168.56.92 rac-scan.localdomain rac-scan
192.168.56.93 rac-scan.localdomain rac-scan

注意。掃描地址不應真的在主機文件中定義。而是應該使用 DNS 循環獲取以上3個地址。此安裝中我們做一些妥協,使用主機文件。如果您使用 DNS,需要注釋掉以上3個地址。

打開網絡連接工具: Linux 桌面主菜單 |系統 |首選項 |網絡連接。選擇"系統 eth0"接口,它將用於公共網絡,並按"編輯":

Linux network setup

請確保"自動連接"被選中。"IPv6 設置"選項卡中,確保該方法設置為"忽略"。選擇"IPv4 設置"選項卡 ;方法更改為"手動";按"添加"並填寫地址: 192.168.56.71 ;子網掩碼: 255.255.255.0 ;網關: 0.0.0.0。按下"應用",然后完成:

Linux network eth0 setup

在網絡連接屏幕選擇"系統 eth1"界面,這將用於私有網絡,請按"編輯"。然后選中復選框"自動連接"。"IPv6 設置"選項卡中,確保該方法設置為"忽略"。選擇"IPv4 設置"選項卡 ;方法更改為"手動";按"添加"並填寫地址: 192.168.10.1 ;子網掩碼: 255.255.255.0 ;網關: 0.0.0.0。按下"應用",然后完成:

Linux network eth1 setup

禁用防火牆: Linux 主菜單 |系統 |管理 |防火牆。單擊"禁用"的圖標,然后"應用"。

Linux disable firewall

下載Oracle安裝文件

有兩個選項來處理 Oracle 下載文件:

  • 下載或將文件傳輸到 VM 並解壓縮 ;
  • 下載並解壓縮在主機 OS 中,然后使文件夾共享以便虛擬機訪問 ;

顯然第二個選項好得多,因為它不使用Guest虛擬機的虛擬磁盤,並將導致較小的最終鏡像。此外可以在另一個安裝練習中容易地重用安裝文件。在本節中,我們要去安裝 VirtualBox 共享文件夾。

假定您已經下載 oracle 安裝文件並解壓縮到"grid"和"database"文件夾。在我們的示例中,這個文件夾是"C:\TEMP\oracle_sw"。

C:\TEMP\oracle_sw>dir -l
total 0
drwx------+ 1 sromanenko Domain Users 0 Aug 5 18:10 database
drwx------+ 1 sromanenko Domain Users 0 Aug 5 03:08 grid

關閉虛擬機。在 VirtualBox 管理器單擊右側窗格中的"共享文件夾"鏈接上。按下添加共享的文件夾"加號"圖標。然后選擇路徑位置 oracle_sw,並選中"只讀"和"自動裝載":

VirtualBox Shared Folders

按"確定"以保存此設置。現在共享文件夾應如以下所示:

VirtualBox Shared Folders

作為 oracle 用戶,重新啟動 VM 並登錄。將目錄更改到"/media/sf_oracle_sw"-這是 VirtualBox 映射主機操作系統共享文件夾的位置。請注意 VirtualBox 的文件夾名稱添加前綴"sf_"。列出 ls 文件夾的內容:

$ cd /media/sf_oracle_sw
$ ls
database grid
$

有一個包 'cvuqdisk' 應在安裝之前安裝。在Oracle grid/rpm 目錄作為 root 用戶執行:

$ su root
Password:
# cd /media/sf_oracle_sw/grid/rpm
# rpm -Uvh cvuqdisk*

克隆虛擬機

關閉虛擬機。

在 VirtualBox 中的管理器,網絡適配器 1,將附加到它的網絡類型"橋接適配器"更改到"僅主機適配器"
注意。如果您不需要從主機 OS訪問 RAC 數據庫,您可以使用"內部網絡"類型的適配器。這兩個案件中所有其他虛擬機都可以訪問RAC。(可選) 如果您在將來需要 Internet 訪問則可以在 RAC 安裝之后添加,請參閱添加互聯網訪問有關網絡適配器類型的的詳細信息,請參閱 VirtualBox 的文檔中"虛擬網絡"一章。

VirtualBox 管理器窗口中啟動克隆向導: 主菜單 |機器 |克隆。為新機的名稱鍵入"rac2"。請確保未選中"重新初始化所有網卡的 MAC 地址"。然后按"下一步":

VirtualBox clone name

保持默認的"完全復制"選項處於選定狀態,然后按"克隆":

VirtualBox clone type

作為 root 用戶啟動克隆的 VM rac2 並登錄。然后通過編輯文件來更改主機名"/etc/sysconfig/network",主機名參數:

HOSTNAME=rac2.localdomain

啟動"網絡連接"工具 (主菜單 |系統 |首選項 |網絡連接)。編輯接口 eth0 和 eth1 並相應地設置 IPv4 地址 192.168.56.72 和 192.168.10.2 。

重新啟動系統。

現在我們需要更改這兩個接口的 MAC 地址。MAC 地址必須唯一。我們需要選擇兩個未使用地址,並將它們設置為 eth0 和 eth1。最簡單的方法是更改地址的最后兩個字符。我們要使用 '00' 對應eth0 和 ' 01'對應 eth1。請確保這些地址不會撞到 rac1 的 MAC 地址。編輯"有線"選項卡中的 MAC 地址。下面的屏幕快照顯示了設置 MAC 地址的位置。別忘了更改這兩個接口的 MAC 地址。請注意您的安裝程序將有一組不同的 MAC 地址,因為它們是VirtualBox隨機生成的 。

VirtualBox network MAC address change

寫下這兩個接口的新 MAC 地址。保存新的設置,按下"應用"按鈕,然后關閉機器。關機后,返回到 VirtualBox 管理器中,選擇 rac2 VM 並編輯"網絡"設置。對 MAC 地址進行相同的更改。別忘了更改兩個適配器的 MAC 地址。

VirtualBox adapter MAC address change

啟動這兩個虛擬機,並檢查他們可以使用公用和專用網絡 ping 對方。例如,在 rac1:

$ ping rac2
$ ping rac2-priv

如果您有問題,請使用 'ifconfig' 命令來檢查配置,然后使用"網絡連接"工具更正此問題。

創建共享磁盤

關閉這兩個虛擬機。我們需要創建一個新的虛擬磁盤,將其屬性更改為 Shareable,並添加到這兩個虛擬機。在當前版本的 VirtualBox,在 GUI 中創建新的磁盤的唯一方法是通過虛擬機設置中的"存儲"頁。在 rac1 或 rac2 中點擊”存儲"鏈接,選擇"SATA 控制器",然后單擊"添加硬盤"圖標。如果不確定使用哪個圖標,則可以通過彈出式菜單完成這個動作,"SATA 控制器"上單擊鼠標右鍵並選擇"添加硬盤"。

VirtualBox Storage - SATA Controller

按"創建新的磁盤":

VirtualBox create Hard Disk question

在虛擬磁盤創建向導的歡迎屏幕上接受默認的 VDI 類型並單擊"下一步"按鈕:

New Virtual Hard Disk - VDI type

選擇"固定大小"選項,按"下一步"按鈕:

New Virtual Hard Disk - Fixed size

更改名稱和此磁盤的位置。您可以保留此文件的默認位置-一個選定的虛擬機的文件夾。因為此磁盤是共享的所以最好把它放到父目錄中。因此,將其放置在"...\VirtualBox VMs",而不是"...\VirtualBox VMs\rac1"目錄。設置為"2400 MB"大小-當所有安裝完成時將產生約 400 MB 的 ASM可用空間。如果您需要更多的空間,您可以選擇更大的大小。不管怎樣在所有安裝結束后您可以向 ASM 組中添加更多的共享磁盤。

New Virtual Hard Disk - Location And Size

創建新的磁盤,該磁盤應該已經連接到虛擬機。

選擇此新磁盤。您將看到該磁盤的類型是"正常"的信息。您看不到以前的對話框窗口中的創建新的磁盤為"共享"的選項。一旦掛載不能更改此屬性,這是圖形用戶界面的限制。所以我們要使用變通方法: 單擊"刪除附件"圖標。這樣 VM 返回到以前的存儲配置。關閉"存儲"頁。

現在有什么不同-有一個注冊到 VirtualBox 的新磁盤。我們將使用虛擬介質管理器 (主菜單 |文件 |虛擬介質管理器) 更改其屬性。在虛擬介質管理器中選擇此新的磁盤:

VB - Shared Disk is Detached in Media Manager

單擊"修改"圖標並選擇"Shareable":

New Virtual Hard Disk - Location And Size

使用"存儲"頁將此現有磁盤附加到每個 VM 。別忘了附加磁盤之前選擇正確的控制器,並使用"選擇現有的磁盤"選項。

兩個虛擬機在"存儲"部分的末尾看起來應該是這樣:

Attached Hard Disks

啟動任一虛擬機,以 root 用戶身份登錄。通過發出以下命令可以看到當前的磁盤。

# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
#

使用"fdisk"命令對新磁盤"sdb"進行分區。

# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xd724aa83.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-305, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-305, default 305):
Using default value 305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#

答案依次是"n","p","1","返回"、"回歸"和"w"。

一旦新的磁盤已經分區,可以通過重復前面的"ls"命令看到結果。

# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1
#

在ASMLib標記新的共享磁盤,如下所示。

# oracleasm createdisk DISK1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
#

運行"scandisks"命令來刷新 ASMLib 磁盤配置。

# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
#

使用"listdisks"命令我們可以看到該磁盤現在對ASM是可見的。

# oracleasm listdisks
DISK1
#

啟動另一個虛擬機,以 root 用戶身份登錄。使用"listdisks"命令檢查共享磁盤對ASM是可見的

# oracleasm listdisks
DISK1
#

虛擬機和共享磁盤現在已經配置完成 !

安裝的網格基礎設施

請確保"rac1"和"rac2"虛擬機啟動,然后登錄到"rac1"並切換到 oracle 用戶,啟動 Oracle 安裝程序。

$ cd /media/sf_oracle_sw/grid
$ ./runInstaller

選擇"跳過軟件更新"選項,按"下一步":

Grid - software updates

選擇"安裝和配置網格基礎設施為集群"選項,然后按"下一步"按鈕。

Grid - Select Installation Option

選擇"高級安裝"選項,然后單擊"下一步"按鈕。

Grid - Select Installation Type

在"網格插信息"屏幕上,集群名稱更改為"rac-cluster",SCAN Name改為"rac-scan.localdomain",請取消選中"配置 GNS"框,然后按"下一步"按鈕。

Grid - names

在"集群節點配置"屏幕上,單擊"添加"按鈕。

Grid - Cluster Node Configuration

在集群中,輸入第二個節點的詳細信息,然后單擊"確定"按鈕。

Grid - Add Cluster Node Information

單擊"SSH 連接..."按鈕,輸入"oracle"用戶名和密碼。單擊"設置"按鈕配置 SSH 連接,完成之后單擊"測試"按鈕。然后按"下一步"。

Grid - SSH Connectivity

在"指定網絡接口"屏幕正確指定公共和私有網絡。按"下一步"按鈕。

Grid - Network Interfaces

"存儲選項信息"屏幕上保持 Oracle ASM 選項處於選定狀態,然后按"下一步"。

Grid - Storage Options

在"創建 ASM 磁盤組"屏幕上"更改發現路徑"按鈕單擊:

Grid - Create ASM Group

然后輸入"/dev/oracleasm/disks",然后按"確定":

Grid - ASM Discovery Path

保持"磁盤組名稱"不變。選擇"外部"冗余選項。在"添加磁盤"部分選中"/dev/oracleasm/disks/DISK1"。完成后,按"下一步"。

Grid - Create ASM Group

在"指定 ASM 密碼"屏幕上選擇"為這些帳戶使用相同的密碼"選項並鍵入"oracle"為密碼,然后按"下一步"。忽略有關密碼弱點警告

Grid - ASM Passwords

"故障隔離支持"保持默認值,然后按"下一步"。

Grid - Failure Isolation Support

"特權操作系統組"保留默認設置,然后按"下一步"。

Grid - Privileged Operating System Groups

保持"指定安裝位置"建議的路徑不變並按下"下一步"按鈕。

Grid - Specify Installation Location

保持"創建庫存"建議的路徑不變並按下"下一步"按鈕。

Grid - Create Inventory

在下一個屏幕上會顯示先決條件檢查的結果。您應該看到兩個警告,一次失敗。無法查找 DNS 中SCAN的失敗是正常的。選中"全部忽略"框並按"下一步"。

Grid - Prerequisite Check Results

在摘要屏幕上,按下"安裝"。

Grid - Create Inventory

安裝程序運行中,請稍候...

Grid - Setup

出現提示時,在每個節點上運行配置腳本。

Grid - Execute Configuration Scripts

作為root用戶執行腳本,首先在節點 rac1,然后在 rac2。

# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/11.2.0/grid/root.sh
#

運行 root.sh時您將被要求輸入bin 目錄的位置,在響應中按 enter 鍵。Root.sh正確的輸出應該是這樣"Configure Oracle Grid Infrastructure for a Cluster ... succeeded"。如果腳本失敗,糾正問題,並重新啟動它。

一旦腳本已完成,返回到"執行配置腳本"屏幕, 單擊"確定"按鈕,等待配置助手完成。

驗證階段有關SCAN的錯誤是正常的:

Grid - Configuration Assistants

下面是日志文件中的部分內容:

INFO: Checking Single Client Access Name (SCAN)...
INFO: Checking TCP connectivity to SCAN Listeners...
INFO: TCP connectivity to SCAN Listeners exists on all cluster nodes
INFO: Checking name resolution setup for "rac-scan.localdomain"...
INFO: ERROR:
INFO: PRVG-1101 : SCAN name "rac-scan.localdomain" failed to resolve
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.56.71) failed
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.56.72) failed
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.56.73) failed
INFO: ERROR:
INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "rac-scan.localdomain"
INFO: Verification of SCAN VIP and Listener setup failed

如果這是唯一的錯誤,則可以安全地忽略這個問題,並通過單擊"下一步"按鈕繼續。在下一個屏幕上關閉配置助手。

檢查運行集群的狀態。在節點 rac1 上作為 root 用戶執行:

# . oraenv
ORACLE_SID = [oracle] ? +ASM1
The Oracle base has been set to /u01/app/oracle

# crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.LISTENER.lsnr
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.asm
ONLINE ONLINE rac1 Started
ONLINE ONLINE rac2 Started
ora.gsd
OFFLINE OFFLINE rac1
OFFLINE OFFLINE rac2
ora.net1.network
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.ons
ONLINE ONLINE rac1
ONLINE ONLINE rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac1
ora.cvu
1 ONLINE ONLINE rac1
ora.oc4j
1 ONLINE ONLINE rac1
ora.rac1.vip
1 ONLINE ONLINE rac1
ora.rac2.vip
1 ONLINE ONLINE rac2
ora.scan1.vip
1 ONLINE ONLINE rac2
ora.scan2.vip
1 ONLINE ONLINE rac1
ora.scan3.vip
1 ONLINE ONLINE rac1
#

您應該看到兩個節點上運行的各種集群組件。網格基礎設施安裝現已完成 !

檢查文件系統的使用,大約 6.5 GB:

$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_rac1-lv_root
14493616 6462704 7294656 47% /
tmpfs 1027552 204708 822844 20% /dev/shm
/dev/sda1 495844 77056 393188 17% /boot
$

安裝數據庫軟件

請確保"rac1"和"rac2"的虛擬機啟動,然后登錄到"rac1"並切換到 oracle 用戶,啟動 Oracle 安裝程序。

$ cd /media/sf_oracle_sw/database
$ ./runInstaller

取消選中"我希望接收安全更新......"復選框,並按"下一步"按鈕:

DB - Configure Security Updates

選中"跳過軟件更新"復選框,然后按"下一步"按鈕:

DB - Skip Software Updates

接受"創建和配置數據庫"選項,然后按"下一步"按鈕:

DB - Select Installation Option

接受"服務器類"選項,然后按"下一步"按鈕:

DB - System Class

請確保選擇"Oracle 真正應用程序集群數據庫安裝"並選定兩個節點,然后按"下一步"按鈕。

DB - Node Selection

選擇"高級安裝"選項,然后按"下一步"按鈕:

DB - Select Istall Type

下一個屏幕上選擇語言,然后按"下一步"按鈕。

接受"企業版"選項,然后按"下一步"按鈕:

DB - Select Database Edition

接受默認安裝位置,按"下一步"按鈕:

DB - Specify Installation Location

接受"一般用途/事務處理"選項,然后按"下一步"按鈕:

DB - Specify Installation Location

您可以保留默認"orcl"數據庫名稱或自己定義。我們使用"ractp":

DB - Specify Database Identifier

在"配置選項"屏幕上減少已分配的內存量為 750 MB-這將避免過多的內存交換,並使運行更順暢。您可以自由地瀏覽其他選項卡並根據您的需要設置。

DB - Specify Configuration Options

接受默認管理選項,然后按"下一步"按鈕:

DB - Specify Management Options

接受"Oracle 自動存儲管理"選項並輸入"oracle"密碼,然后按"下一步"按鈕:

DB - Specify Storage Options

接受默認"不啟用自動的備份"選項,然后按"下一步"按鈕:

DB - Specify Recovery Options

查看數據庫使用的 ASM 磁盤組的名稱,然后按"下一步"按鈕:

DB - Select ASM Disk Group

選擇"所有帳戶使用相同的密碼"選項,鍵入"oracle"作為密碼,然后按"下一步"按鈕:

DB - Specify Schema Passwords

選擇"oinstall"組作為數據庫管理員和數據庫操作員組,然后按"下一步"按鈕:

DB - Privileged OS Groups

等待先決條件檢查完成。如果有任何問題,或者修復它們,或選中"全部忽略"復選框並單擊"下一步"按鈕。

DB - Perform Prerequisite Checks

查看摘要信息是否正確,單擊"安裝"按鈕。

DB - Summary

安裝進行中。

DB - Install Product

軟件安裝完成后將自動啟動數據庫配置助手 (DBCA)。

DB - DBCA

一旦數據庫配置助手 (DBCA) 完成,單擊"確定"按鈕。

DB - DBCA Complete

出現提示時,在每個節點上運行配置腳本。當已在每個節點上運行腳本后,請單擊"確定"按鈕。

DB - Execute Configuration Scripts

在兩個節點以root用戶的身份執行腳本:

# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
#

單擊"關閉"按鈕退出安裝程序。

DB - Finish

RAC 數據庫創建現已完成 !

檢查 RAC 的狀態

有幾種方法來檢查 RAC 的狀態。srvctl實用程序顯示當前配置和 RAC 數據庫的狀態。

$ . oraenv
ORACLE_SID = [oracle] ? ractp
The Oracle base has been set to /u01/app/oracle

$ srvctl config database -d ractp
Database unique name: ractp
Database name: ractp
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/ractp/spfileractp.ora
Domain: localdomain
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: ractp
Database instances: ractp1,ractp2
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Database is administrator managed

$ srvctl status database -d ractp
Instance ractp1 is running on node rac1
Instance ractp2 is running on node rac2
$

V$ACTIVE_INSTANCES視圖還可以顯示實例的當前狀態。

$ export ORACLE_SID=ractp1
[oracle@rac1 Desktop]$ sqlplus / as sysdba
SELECT inst_name FROM v$active_instances;

INST_NAME
--------------------------------------------------------------------------------
rac1.localdomain:ractp1
rac2.localdomain:ractp2

exit
$

創建RAC數據庫的鏡像

我們可以在任何時間保存虛擬機的鏡像,並在需要的時候還原。在這里我們要保存新創建的 Oracle RAC 系統以便我們可以在同一系統甚至另外一個系統在短短的幾分鍾內還原他們 !

 VM 導出是一個簡單的過程,如果不處理共享磁盤保存 RAC 鏡像將是一項容易的任務。我認為最簡單的方法是從這兩個節點卸載共享磁盤並分別考慮這三個部分 (兩個獨立的虛擬機和一個共享磁盤)。最終我們會有三個文件: 為虛擬機使用的兩個文件和代表共享磁盤的文件。這三個文件,可以進一步由您最喜歡的歸檔工具存儲並壓縮成一個文件。完成導出后,共享磁盤可以輕松地掛載回節點。VM導入回 VirtualBox 以及共享磁盤的導入也同樣如此 — — 作為一個額外的步驟附加到導入的虛擬機。讓我們來執行所有這些操作。

RAC的干凈關閉

但是首先,我們需要完整的關閉服務器,因為我們想保存它們的工作狀態。去關閉數據庫,作為 oracle 用戶在任何節點上執行:

$ . oraenv
ORACLE_SID = [oracle] ? ractp
The Oracle base has been set to /u01/app/oracle

$ srvctl stop database -d ractp
$

關閉第一個節點上的集群。作為 root 用戶執行:

# . oraenv
ORACLE_SID = [ractp1] ? +ASM1
The Oracle base remains unchanged with value /u01/app/oracle

# crsctl stop crs
...
CRS-4133: Oracle High Availability Services has been stopped.
#

關閉第二個節點上的集群。作為 root 用戶執行:

# . oraenv
ORACLE_SID = [ractp1] ? +ASM2
The Oracle base remains unchanged with value /u01/app/oracle

# crsctl stop crs
...
CRS-4133: Oracle High Availability Services has been stopped.
#

關閉這兩個虛擬機。等待,直到所有虛擬機窗口關閉。

卸載共享磁盤並制作一份拷貝

在 VirtualBox 管理器中打開虛擬介質管理器: 主菜單 |文件 |虛擬介質管理器。然后選擇 RAC (rac_shared_disk1.vdi) 所用的磁盤。請注意此磁盤顯示為附加到虛擬機 rac1 和 rac2 :

VB - Detach Shared Disk in Media Manager

單擊"釋放"圖標,然后在彈出的窗口中確認。注意此磁盤現在顯示為"未連接"。單擊"復制"以啟動磁盤復制向導。

VB - Shared Disk is Detached in Media Manager

接受虛擬磁盤復制,然后按"下一步"。

VB - Detach Shared Disk in Media Manager

接受 VDI 虛擬磁盤的文件類型,然后按"下一步"。

VB - Copying, Target File Type

選擇"固定大小",然后按"下一步"。

VB - Copying, Target File Storage Details

在下一個屏幕上,您可以設置新文件的位置和名稱。完成后,按"下一步"。

VB - Copying, Target File Storage Details

摘要屏幕上查看詳細信息,並按"復制"以完成復制。復制完成后,請關閉介質管理器。
注意。不要試圖復制.vdi 文件,因為該副本將保留相同磁盤的 UID 而VirtualBox 將拒絕使用它,因為已經有這個磁盤存在。當通過虛擬介質管理器復制時將自動分配新的 UID。

導出虛擬機

VirtualBox 管理器中選擇虛擬機,然后調用導出向導: 主菜單 |文件 |導出裝置。導出過程像一般保存文件一樣簡單。導出這兩個虛擬機。

現在您應該有可以進一步壓縮到約 12 GB 大小單個文件的 3 個文件。

將共享磁盤重新連接到原始 RAC 安裝

通過"存儲"頁重新連接共享磁盤到 rac1 和 rac2 VM 以還原我們當前的工作 RAC 設置。別忘了附加磁盤之前選擇正確的控制器:

VirtualBox Storage - SATA Controller

按"添加硬盤"圖標並使用"選擇現有磁盤"rac_shared_disk1.vdi一旦共享磁盤連接到兩個 Vm,RAC 就准備好運行了。

從已保存的文件還原 RAC

在這一節我們將通過導入已保存的文件創建第二個 RAC 系統。不要同時運行兩個 RAC,因為它們將具有相同網絡屬性。

打開裝置導入向導: 主菜單 |文件 |導入裝置。選擇該文件,按"下一步":

VB - Appliance Import Wizard

導入設置中我們可以更改新 VM 的不同屬性。我們這里要保持設置不變。這里我們注意到,磁盤將要 以不同於原始的VDI 格式的VMDK 格式導入。

VB - Appliance Import Settings

等待,直到 VM 導入:

VB - Appliance Import Settings

導入這兩個虛擬機並將共享磁盤rac_shared_disk1_copy.vdi文件復制到父目錄 (虛擬 Vm)。此磁盤可以連接到兩台計算機,但不幸的是當前版本 (4.1.18) 的 VirtualBox 不保留制作副本的磁盤類型。將此磁盤附加到任一導入虛擬機,然后選擇它並查看磁盤信息:

VB - attached disk type

在4.1.18 VirtualBox,復制的磁盤是"正常"類型。如果您有更新的版本並且類型是"Shareable"那么此 bug 已經修復,您可以繼續操作另一個虛擬機。如果不是,de-attach 磁盤,然后轉到虛擬介質管理器並把磁盤類型更改為"Shareable",然后返回到虛擬機並掛載共享磁盤。

啟動新的虛擬機。集群件應自動啟動。您將需要啟動數據庫。作為 oracle 用戶登錄並執行:

$ . oraenv
ORACLE_SID = [oracle] ? ractp
The Oracle base has been set to /u01/app/oracle

$ srvctl start database -d ractp
$

RAC 現在應該已經運行 !

安裝后的優化 (可選)

系統運行一段時間后, ologgerd進程可能消耗過多的 CPU 資源。可以通過啟動top檢查,然后按 c 鍵 (cmd 名稱/行):

 

ologgerd process consumes CPU

Ologgerd 是 Oracle 集群健康監視器的一部分,由 Oracle 支持作為 RAC 問題調試的工具。如果 ologgerd 進程占用大量的 CPU,您可以停止它,在兩個節點上執行:

# crsctl stop resource ora.crf -init

如果你想要永久禁用 ologgerd,那么執行:

# crsctl delete resource ora.crf -init

.

添加互聯網訪問 (可選)

關閉虛擬機。在設置的網絡部分中,選擇適配器 3,請確保它已啟用並附加到"橋接適配器"。重新啟動 VM,並檢查您可以在終端窗口中 ping 外面的站點:

ping yahoo.com

在另一個節點重復所有這些動作。

請注意,使用橋接適配器使您的虛擬機在同一局域網絡內可以被訪問因此網絡配置規則同樣適用於虛擬機。默認情況下,虛擬機將使用您的本地網絡 DHCP 獲取 IP 地址。(可選) 您可以指定靜態地址。即使您的 Vm 將可以訪問 LAN 上的任何計算機,Oracle 偵聽器未對這些 IP 地址進行偵聽如果需要,可以添加這些 IPs到偵聽器,但這是超出了本文的范圍。

集群組件和數據庫監測

您可以通過發出此命令檢查集群的狀態:

# crsctl status resource -t

但是使用工具更容易,在預定義的時間間隔上運行相同的命令,將輸出組織到表格式窗體。為此,我們要使用Lab128 免費軟件免費工具。安裝很簡單: 將文件解壓縮到一個文件夾中,然后運行 lab128fw.exe 可執行文件。

因為我們將在主機操作系統 (Windows) 中運行監測工具,RAC 應該可以訪問主機操作系統。如果你已經如上文所述完成配置,您應該在兩個 Vm 上都將"適配器 1“附加到"僅主機適配器”並且您應該能夠 ping 這兩個節點:

ping 192.168.56.71
ping 192.168.56.72

將這些 IP 地址添加到 %SystemRoot%\System32\drivers\etc\hosts 文件也會有幫助:

#ORACLE SCAN LISTENER
192.168.56.91 rac-scan.localdomain rac-scan
192.168.56.92 rac-scan.localdomain rac-scan
192.168.56.93 rac-scan.localdomain rac-scan

#rac1 node
192.168.56.71 rac1
192.168.56.72 rac2

啟動 Lab128,然后通過 SSH 連接到一個節點: 主菜單 |集群組件 |集群組件命令,然后輸入用戶: oracle ;密碼: oracle ;主機名/IP: 192.168.56.71.(可選) 給此連接的"別名名稱",按"存儲"按鈕保存它。然后按"連接"。

SSH Login to Clusterware Commander

集群組件命令窗口在表格視圖中提供集群組件的狀態。左邊的一些列有組件/資源類型、 名稱、 目標和聯機的節點數。其余的列向右代表集群中的節點上組件的狀態,在該節點上的值。此視圖中可以根據定義的速率自動刷新。可以篩選出不重要的組件以自定義表格格式查看內容。如果您需要有關此窗口的詳細信息,請按 F1 鍵。

Clusterware Commander Window

表格視圖可通過彈出式菜單管理組件。在節點區域的單元格上單擊鼠標右鍵。根據所選的組件和節點的上下文,菜單中將提供各種不同的命令,請參閱上面的圖片。

此外,您可以針對特定的數據庫實例啟動 Lab128 監視器,許多連接詳細信息會自動補全。登錄窗口的示例如下所示。只需在用戶輸入: sys ;密碼: oracle。建議在"別名名稱"框中保存此監視器 (我們命名為它 RACTP1)的名稱。這會在下一次連接到同一實例時節省我們的時間。然后按"連接"按鈕,打開 Lab128 監視器:

Lab128 monitor login

你可以通過此鏈接閱讀更多有關數據庫監測與 Lab128 使用的內容Lab128 世界歡迎您.

就是這個 !請發送您的反饋給: sergei AT lab128.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM