亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

VMware下RedHat安裝Oracle 9i RAC全攻略

系統 3797 0

??? 摘要:大家都知道, oracle 9i RAC(以下簡稱RAC)是oracle里相對比較復雜的部分,很大一部分原因是由于RAC的環境搭建相對不如單實例方便。通常典型的 配置 是兩臺主機加一臺存儲,但是平常我們個人如果想在家研究測試RAC的話,很少會去購買這么多設備來做測試的。幸好,我們有 VMware  GSX Server (以下簡稱VMware),通過使用這款非常好的 虛擬機 模擬工具,我們可以在一臺PC電腦上模擬出多臺主機加存儲的這樣一個RAC環境。

??? 本文首先簡要介紹了RAC的原理,隨后著重詳細敘述了如何在一臺PC電腦上,使用VMware構建兩臺 RedHat Linux ?AS3(以下簡稱AS3),并虛擬一個共享存儲,創建裸設備,最后在實現RAC的搭建。

??? 1.RAC簡介

??? 簡單來說,RAC就是位于多個主機(通常都稱為節點)上的多個oracle實例同時管理一個 數據庫 。數據庫必須放在共享存儲設備上,包括數據文件、控制文件、聯機日志以及spfile都必須放在共享存儲上,這樣每個節點才能同時訪問存儲設備。每個節點之間通過高速光纖互相連接,并同步內存數據。oracle在管理不同實例里的內存里的 數據結構 ,同時要最大程度的降低I/O,引入了全局緩沖服務(GCS:Global Cache Service),同時還引入了全局鎖定服務(GES:Global Enqueue Service)用來在不同節點之間通訊時進行同步管理。這些服務都是通過一組特殊的后臺 進程 完成的,這些后臺進程主要包括:

??? (1)global cache service processes(LMSn):n從0到9,具體由信息傳輸的數量決定。用來控制信息到其他實例的流向,同時還管理對全局數據塊的訪問。LMSn進程同 樣在不同實例的數據塊緩存(buffer cache)里傳遞數據庫鏡像(block image)。該進程是Cache Fusion特性的一部分。

?(2)global enqueue service monitor(LMON):監控全局鎖定(global enqueues)及其資源,并提供global enqueues資源的恢復操作。enqueues是用來進行串行化行更新的共享的內存結構。

??? (3)global enqueue service daemon(LMD):管理對全局鎖定(global enqueues)以及全局資源的訪問。在每個實例中,LMD進程對傳入當前實例的對其他資源的訪問請求進行管理。

??? (4)lock process(LCK)管理non-Cache Fusion資源的請求,比如library cache或row cache的請求。

??? (5)diagnosability daemon(DIAG):獲得實例中有關進程失敗的診斷信息。該daemon的操作是自動的,并且它會更新alert<SID>.log文件,以記錄它所做的動作。

??? 注意:cache fusion表示一種在RAC里的非磁盤交互方式的內存同步機制。該機制使得獲得block的實例能夠將block直接從內存轉移到需要該block的實 例的SGA里去。這樣,由于減少了磁盤交互,所以將block從一個實例轉移到另一個實例的性能提高很多。而且管理也更加簡便。

??? RAC能夠對客戶端的連接請求進行 負載均衡 , 把所有客戶的連接盡可能的平均分布在不同的實例上。同時,RAC還提供failover的功能,也就是說如果其中一個節點發生意外,只要這個時候連在該損 壞節點上的session沒有正在進行事務運行,則該session不需要退出后重新登錄,oracle會自動將該session連接到一個可用的節點 上,從而保證了7×24應用的安全性和穩定性。

??? 不過,RAC不提供容災的功能,也就是說如果共享存儲損壞,仍然會導致整個應用崩潰。所以,需要采用其他容災方案結合使用,比如RAC+DataGuard等。

??? 2.準備工作

??? VMware GSX Server:筆者測試所使用的是3.2版本,建議使用3.2及以上的版本。
??? Linux:筆者使用的是RedHat Linux AS3。請使用AS2.1以上版本的linux。因為AS2.1以下的版本如果要
??? 支持RAC需要進行很多額外的配置,比如watchdog之類的,到了AS2.1以后缺省都不使用了,而是使用hangcheck,如果要使用watchdog,需要進行很多不必要的配置。安裝介質可以是光盤,也可以是ISO文件。筆者使用的是ISO文件。
??? Oracle:筆者使用的是oracle 9204 for linux,可以直接從oracle的官方網站上下載。筆者是從oracle官方網站上下載下來的三個壓縮包。

??? 主要的準備工作就是這些,當然安裝過程中可能還會需要其他的一些軟件,比如plainmaker等。在需要的時候,筆者也會說明如何使用這些軟件的。

?

? 3.安裝虛擬節點

??? 3.1 創建虛擬節點

??? VMware 安裝好以后,進入主界面,我們就可以創建兩個虛擬節點。點擊File->New Virtual Machine…,在打開的窗口中,在選擇所安裝的 操作系統 時,我們選擇 RedHat Enterprise Linux 3,其他都選擇缺省值,點擊next,一直到讓你輸入disk size時,缺省事4G,我們改成8G,最后點擊finish。這樣就創建好了一個虛擬節點,取名為linux1。同樣的方法,我們創建第二個虛擬節點,取名為linux2。

??? 3.2安裝linux

??? 創建完兩個虛擬節點以后,我們要開始安裝linux了。在窗口的左邊的Inventory框里,右鍵節點linux1,選擇virtual machine settings…,在彈出的框中,我們選中CD-ROM,然后選擇Use ISO Image,并輸入相應的linux安裝介質的第一個ISO文件的位置,如下圖所示。選擇ok以后,點擊Power->Power On,相當于為節點
???
VMware下RedHat安裝Oracle 9i RAC全攻略(圖一) 點擊查看大圖

?加電,剩下的工作與在單PC機器上安裝linux過程一樣。這里提一點,就是在給 磁盤分區 時, 如果不使用LVM,那么在分區時,/boot給120M,/swap給256M,/給2900M,然后再創建一個/oracle,把剩下的空間都給 /oracle。在安裝過程中,當提示需要換另外一張盤時,你只要再次進入圖一所示界面,更改ISO文件并確定以后,再進入 虛擬機 ,選擇提示中的ok即可。同樣的方法,我們可以安裝好另外一臺虛擬機上的linux。

??? RAC里每個節點都需要兩塊網卡并使用固定ip,一塊作為兩個節點互相內部 通信 用, 另外一塊作為外部連接用。我們同樣的,選擇linux1,進入圖一界面,選擇add按鈕,然后選擇Ethernet Adapter,然后都選擇缺省值并點擊next直到結束。這樣就為linux1添加了第二塊網卡。同樣的方法為linux2添加第二塊網卡。分別啟動兩 個節點以后,我們在linux為網卡配置 ip地址 。筆者的配置是linux1的內部通信ip為:134.251.0.140,外部通信ip為:134.251.114.141。而linux2的內部通信ip為:134.251.0.141,外部通信ip為:134.251.114.140。

??? 4.安裝共享磁盤

??? 4.1 創建共享磁盤

?在VMware里,共享磁盤需要使用plainmaker.exe這個工具來創建。可以到VMware GSX Server 的安裝目錄下找該工具是否存在。如果不存在,則可以到 google 上搜索。很多站點提供該工具的下載。進入命令提示符,輸入下面的命令來創建共享磁盤。

??? C:\>plainmaker D:\virtualos\sharedisk.pln 2048m

??? 該命令運行以后,就會在D:\virtualos目錄下創建一個名位sharedisk.pln的共享磁盤,大小為2G。

??? 4.2 添加共享磁盤

??? 共享磁盤安裝好以后,我們需要把它加入到前面安裝好的兩臺linux虛擬機里。選擇linux1,仍然進入到圖一所示的界面里,選擇左邊的add按鈕,在彈出的框中,選擇Hard Disk,并點擊next,選擇方式如下面圖二

VMware下RedHat安裝Oracle 9i RAC全攻略(圖二) ???

??? 所示,并點擊next,輸入我們剛才創建的共享磁盤名:D:\virtualos\sharedisk.pln,然后不要點擊finish,要點擊 advanced,選擇磁盤為SCSI 1:0。如下圖三所示。最后點擊finish。這樣,我們就為linux1節點添加了共享存儲。隨后,我們用同樣的方法為linux2節點也添加該共享存 儲。
???
VMware下RedHat安裝Oracle 9i RAC全攻略(圖三)

?

?? 4.3 配置 共享磁盤

?把共享存儲添加到兩個節點以后,還不算完,必須修改兩個 虛擬機 配置文件 。在每個節點所在目錄下都存在一個后綴名為vmx的文件,這就是虛擬機的配置文件了,用notepad打開,把下面三行記錄添加進去。注意,這三行中的每一行都不能重復,所以仔細檢查一下vmx文件,確保這三行記錄唯一。每個節點的配置文件都必須添加這三行記錄。

??? disk.locking = FALSE
??? scsi1.sharedBus = "virtual"
??? scsi1:0.mode = "persistent"

??? 到這里,我們才算是為兩個節點都配置好了共享存儲。分別啟動兩個 linux 節點以后,進入linux,我們可以使用如下命令來確定兩個節點是否都能夠找到該存儲了。如果提示出有設備,則表示能夠識別共享存儲。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) fdisk –l /dev/sdb

??? 5.設置兩個節點的互相信任機制

??? 由于RAC的節點之間需要完全無障礙的訪問,因此需要設定主機名互相訪問以及互相信任機制。注意:以下所有步驟都必須在兩臺節點上各自完成。

??? 5.1 設置主機名

??? 首先,RAC之間互相不能通過ip來訪問,而必須使用主機名來訪問,因此需要設定hosts內容。筆者設定的是節點linux1的內部訪問主機名為 linux1-prv,而外部訪問節點名為linux1;節點linux2的內部訪問主機名為linux2-prv,而外部訪問節點名為linux2。需 要將這些信息添加到/etc/hosts文件里去,如下所示。注意,要將127.0.0.1原來所對應的linux1改名為localhost。

??? # Do not remove the following line, or various programs
??? # that require network functionality will fail.
??? 127.0.0.1localhostlocalhost.localdomainlocalhost
??? 134.251.114.140 linux1
??? 134.251.114.141 linux2
??? 134.251.0.140linux1-prv
??? 134.251.0.141linux2-prv

??? 同樣的,修改linux2的/etc/hosts文件,也要將127.0.0.1原來所對應的linux2改名為localhost。其他設置與 linux1節點一樣。設置好以后,在linux1上ping linux2,在linux2上也ping linux1,如果都通的話,說明設置無誤。

??? 5.2 設置 telnet 訪問

??? (1)通常缺省都會安裝telnet-client。主要確定是否安裝了telnet-server軟件。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# rpm –qa | grep telnet

??? (2)如果沒有安裝,則從AS3安裝介質上找到該rpm包,并進行安裝。

?(3)安裝好以后,需要啟動telnet服務。輸入以下命令,并從彈出的框中選中telnet后確認。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# ntsysv

??? (4)激活telnet服務

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# service xinetd restart

??? (5)設置允許root進行telnet登錄

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# vi /etc/pam.d/login

??? 將authrequiredpam_securetty.so這一行開頭添加#,從而注釋該行。

?

??? 5.3 設置rlogin、rsh

??? 由于在第一個節點上安裝 oracle 軟件時,oracle會自動將第一個節點上安裝完畢的文件拷貝到第二個節點上,因此需要配置rlogin和rsh以及rcp等。

??? (1)確定是否安裝了rsh-server軟件。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)
<script type="text/javascript"><!--mce:0--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"><!--mce:1--></script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"><!--mce:2--></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"><!--mce:3--></script><script><!--mce:4--></script>
[root@linux1 root]# rpm –qa | grep rsh

??? (2)如果沒有安裝,則從AS3安裝介質上找到該rpm包,并進行安裝。

?(3)安裝好以后,需要啟動rsh、rlogin、rexec服務。輸入以下命令,并從彈出的框中選中rsh、rlogin、rexec后確認。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# ntsysv

??? (4)激活rsh、rlongin服務

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# service xinetd restart

??? (5)修改/etc/securetty

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# echo "rexec" >> /etc/securetty;echo "rlogin" VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) >> /etc/securetty;echo "rsh" >> /etc/securetty

??? (6)設置允許root進行rsh、rlogin

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# vi /etc/pam.d/rlogin

??? 將authrequiredpam_securetty.so這一行開頭添加#,從而注釋該行。

??? (7)在/etc目錄下建立hosts.equiv文件,表示兩臺linux節點互相信任。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# vi /etc/hosts.equiv

??? 在該文件里添加如下內容:

??? linux1
??? linux2
??? linux1-prv
??? linux2-prv

??? (8)在root的$HOME目錄下,建立.rhosts文件。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# vi .rhosts

??? 在該文件里添加如下內容。這樣,root用戶就可以直接rlogin、rsh而不用輸入密碼。

??? linux1 root
??? linux2 root
??? linux1-prv root
??? linux2-prv root

??? (9)配置完以后,我們可以測試一下是否成功。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# rlogin linux2 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# rsh –l root linux2 cat /etc/hosts VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# rcp /tmp/testlinux2:/tmp

?? 6.修改 linux內核 參數以及其他相應配置

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# vi /etc/sysctl.conf

??? 在該文件末尾添加如下內容:
??? kernel.shmmax = 2147483648
??? kernel.shmmni = 4096
??? kernel.shmall = 2097152
??? kernel.sem = 250 32000 100 128
??? fs.file-max = 65536
??? 這里,對每個參數值做個簡要的解釋和說明。

??? (1)shmmax:該參數定義了 共享內存 段的最大尺寸(以字節為單位)。缺省為32M,對于oracle來說,該缺省值太低了,通常將其設置為2G。
??? (2)shmmni:這個內核參數用于設置系統范圍內共享內存段的最大數量。該參數的默認值是 4096 。通常不需要更改。
??? (3)shmall:該參數表示系統一次可以使用的共享內存總量(以頁為單位)。缺省值就是2097152,通常不需要修改。
??? (4)sem:該參數表示設置的信號量。
??? (5)file-max:該參數表示文件句柄的最大數量。文件句柄設置表示在 linux系統 中可以打開的文件數量。

??? 修改好內核以后,執行下面的命令使新的配置生效。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# /sbin/sysctl -p

??? 通常,出于性能上的考慮,還需要進行如下的設定,以便改進Oracle用戶的有關 nofile(可打開的文件描述符的最大數)和nproc(單個用戶可用的最大 進程 數量)。方法如下:

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# vi /etc/security/limits.conf

??? 在該文件里添加如下內容:

??? oracle soft nofile 65536
??? oracle hard nofile 65536
??? oracle soft nproc 16384
??? oracle hard nproc 16384

?? 7.配置 hangcheck-timer 內核模塊

??? Oracle9202以前,都是使用watchdog來檢查系統是否掛起。從9202以后,oracle使用hangcheck-timer模塊。 hangcheck-timer模塊被加載到內核中,能夠定時檢查系統是否掛起。有個可配置的參數用來表示多少時間以后系統沒響應就認為是掛起。該模塊在 AS3中是自帶的。

??? 使用如下命令檢查該模塊是否存在:

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# find /lib/modules -name "hangcheck-timer.o"

??? 使用相應的參數加載該模塊:

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# /sbin/insmod hangcheck-timer hangcheck_tick=30 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) hangcheck_margin=180

??? 這里解釋一下兩個參數的含義:

??? hangcheck_tick:該參數定義了模塊啟動的間隔時段。其默認值為 60 秒。 Oracle建議將其設置為 30 秒。
??? hangcheck_margin:該參數定義了多少時間以后系統沒響應就認為是掛起。以秒為單位。其默認值為 180秒。Oracle 建議將其設置為 180 秒。

??? 檢查該模塊是否被成功加載:

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# grep Hangcheck /var/log/messages

??? 為了在linux重啟以后,自動加載該模塊,可以將加載模塊的命令添加到/etc/modules.conf中

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# echo "options hangcheck-timer hangcheck_tick=30 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) hangcheck_margin=180" >> /etc/modules.conf VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)

?? 8.創建oracle用戶和dba組

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# groupadd dba VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# useradd –g dba oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# passwd oracle

??? 創建安裝oracle所需要的目錄。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# mkdir –p /oracle/ora9/product/9.2 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# chown –R oracle.dba /oracle/ora9

???? 為oracle用戶配置.bashrc文件。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# su – oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ vi .bashrc

??? 將以下內容添加到.bashrc文件里。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export LD_ASSUME_KERNEL=2.4.1 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export ORACLE_BASE=/oracle/ora9 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export ORACLE_HOME=/oracle/ora9/product/9.2 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export ORACLE_OWNER=oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export ORACLE_SID = rac9i1 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export ORACLE_TERM=vt100 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib: VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) /usr/local/lib:$LD_LIBRARY_PATH VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)

??? 以上步驟必須在兩個節點上分別完成。

??? 注意: 紅色部分,在節點linux1上ORACLE_SID=rac9i1,而在節點linux2上則為ORACLE_SID=rac9i2。而藍色部分,很多 資料上只是說LD_LIBRARY_PATH=$ORACLE_HOME/lib即可。但是經過筆者測試,只寫這些是不夠的,在下面srvconfig –init時會報錯。必須按照上面藍色部分的內容進行配置。

?

??? 9.為共享設備劃分裸設備

??? 通常,對于RAC,我們都會使用裸設備來存放數據文件等需要共享的 數據庫 文件。這就需要我們對共享存儲劃分出若干的裸設備,每個裸設備對應一個文件。

??? 9.1 磁盤分區

??? 我們要對共享存儲進行分區,該步驟只需要在其中一個節點上完成即可。筆者劃分了3個主分區(primary)和一個包含11個分區的擴展分區(extend)。注意, linux 上最多只能劃分15個分區。超過的部分,linux是無法識別的。對每個分區的規劃如下所示:

??? 分區名尺寸存放的文件
??? /dev/sdb110M用于存放 Cluster Manager Quorum文件
??? /dev/sdb2350M回滾段表空間1:Undotbs1
??? /dev/sdb3350M回滾段表空間1:Undotbs2
??? /dev/sdb5500M系統表空間:system
??? /dev/sdb610MSpfile
??? /dev/sdb7300M臨時表空間:temp
??? /dev/sdb8300M用戶表空間:user和indx,也可以不設置該分區
??? /dev/sdb910M控制文件:control file
??? /dev/sdb1010M控制文件:control file
??? /dev/sdb1120M第一個節點的第一組聯機日志文件
??? /dev/sdb1220M第一個節點的第二組聯機日志文件
??? /dev/sdb1320M第二個節點的第一組聯機日志文件
??? /dev/sdb1420M第二個節點的第二組聯機日志文件
??? /dev/sdb15100MSrvconfig模塊所需要的Shared Configuration文件

??? 規劃好以后,我們可以開始實際創建這些分區了。進入linux,執行如下命令進入分區界面。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# fdisk /dev/sdb

??? 首先輸入n,然后輸入p,再輸入1,回車接受缺省值,再輸入+10M,這樣我們就創建了/dev/sdb1。同樣的方法,我們可以創建sdb2和 sdb3。再次輸入n,然后輸入e,回車接受缺省值,再回車接受缺省值,這樣,我們就創建了擴展分區sdb4,同時把剩下的空間全都給了sdb4。接下 來,我們輸入n,然后回車接受缺省值,再輸入+500M,這樣,我們就創建了sdb5。同樣的方法,我們可以把剩下的所有分區都創建出來。

?創建完畢以后,輸入p,顯示我們剛才所創建的所有分區,確認無誤以后,輸入w,從而保存我們所創建的分區,并更新分區表。

??? 9.2 掛載裸設備

??? 該步驟需要在兩個節點分別進行。對裸設備的規劃如下:

??? 裸設備文件名掛載的分區存放的文件
??? /dev/raw/raw1/dev/sdb1Cluster Manager Quorum
??? /dev/raw/raw2/dev/sdb2Undotbs1
??? /dev/raw/raw3/dev/sdb3Undotbs2
??? /dev/raw/raw4/dev/sdb5system
??? /dev/raw/raw5/dev/sdb6Spfile
??? /dev/raw/raw6/dev/sdb7temp
??? /dev/raw/raw7/dev/sdb8user和indx
??? /dev/raw/raw8/dev/sdb9control file
??? /dev/raw/raw9/dev/sdb10control file
??? /dev/raw/raw10/dev/sdb11Log1-thread1
??? /dev/raw/raw11/dev/sdb12Log2-thread1
??? /dev/raw/raw12/dev/sdb13Log3-thread2
??? /dev/raw/raw13/dev/sdb14Log4-thread2
??? /dev/raw/raw14/dev/sdb15Shared Configuration

??? 確定了裸設備的規劃以后,將以下內容添加到/etc/rc.local文件。
??? raw /dev/raw/raw1 /dev/sdb1# Cluster Manager Quorum
??? raw /dev/raw/raw2 /dev/sdb2#undotbs1
??? raw /dev/raw/raw3 /dev/sdb3#undotbs2
??? raw /dev/raw/raw4 /dev/sdb5#sys01
??? raw /dev/raw/raw5 /dev/sdb6#spfile
??? raw /dev/raw/raw6 /dev/sdb7#temp01
??? raw /dev/raw/raw7 /dev/sdb8#user01&indx01
??? raw /dev/raw/raw8 /dev/sdb9#ctl1
??? raw /dev/raw/raw9 /dev/sdb10#ctl2
??? raw /dev/raw/raw10 /dev/sdb11#log1-thread1
??? raw /dev/raw/raw11 /dev/sdb12#log2-thread1
??? raw /dev/raw/raw12 /dev/sdb13#log3-thread2
??? raw /dev/raw/raw13 /dev/sdb14#log4-thread2
??? raw /dev/raw/raw14 /dev/sdb15#share configuration file

??? 檢查無誤后,修改/dev/raw1、/dev/raw/raw2一直到/dev/raw/raw15這15個裸設備文件的宿主為oracle。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# chown oracle.dba /dev/raw/raw1 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# chown oracle.dba /dev/raw/raw2 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) 。。。。。。。 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# chown oracle.dba /dev/raw/raw15

??? 分別重新啟動兩個節點。啟動完畢以后,運行如下命令確定裸設備的 配置 情況。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# raw -aq

??? 10.檢查安裝oracle所需要的linux模塊以及補丁

??? 在兩個節點上分別確定以下這些rpm包是否都存在。

??? make-3.79
??? binutils-2.11
??? openmotif-2.2.2-16
??? setarch-1.3-1 compat-gcc-c++-7.3-2.96.122
??? compat-libstdc++-7.3-2.96.122
??? compat-gcc-7.3-2.96.122
??? compat-db-4.0.14-5
??? compat-libstdc++-devel-7.3-2.96.122

??? 如果沒有,則從AS3的安裝介質上找到這些包并加以安裝。安裝好上面這些模塊以后,需要打補丁,補丁號為:3006854。可以到oracle官方網站下載該補丁,發送到兩個節點上以后,執行:
??? [root @linux1 /root]# sh rhel3_pre_install.sh

?

??? 11.安裝 Oracle Cluster Manager

??? 11.1 生成OCM管理文件

?該OCM管理文件必須位于共享存儲上,按照我們的規劃,應該放在/dev/raw/raw1上。該步驟只需要在其中一個節點上執行即可。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# su - oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=1024

??? 11.2 安裝OCM

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ su - root VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# mv /usr/bin/gcc /usr/bin/gcc323 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# ln -s /usr/bin/gcc296 /usr/bin/gcc VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# mv /usr/bin/g++ /usr/bin/g++323 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# ln -s /usr/bin/g++296 /usr/bin/g++

??? 檢驗一下gcc和g++的版本。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# gcc -v VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) Reading specs from /usr/lib/gcc-lib/i386-redhat-linux7/2.96/specs VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-122) VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root@linux1 root]# g++ -v VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) Reading specs from /usr/lib/gcc-lib/i386-redhat-linux7/2.96/specs VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)
<script type="text/javascript"><!--mce:5--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"><!--mce:6--></script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"><!--mce:7--></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"><!--mce:8--></script><script><!--mce:9--></script>
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-122)

??? 將下載下來的 oracle安裝 介質(筆者下載的是ship_9204_linux_disk1.cpio.gz、ship_9204_linux_disk2.cpio.gz和ship_9204_linux_disk3.cpio.gz)拷貝到其中一個節點上。可以通過 ftp 拷貝也可以通過 samba 服務來拷貝。筆者個人傾向samba,很方便。拷貝完畢以后,使用如下命令解壓。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# gunzip ship_9204_linux_disk1.cpio.gz VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# gunzip ship_9204_linux_disk2.cpio.gz VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# gunzip ship_9204_linux_disk3.cpio.gz VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# cpio -idmv < ship_9204_linux_disk1.cpio VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# rm –f ship_9204_linux_disk1.cpio VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# cpio -idmv < ship_9204_linux_disk2.cpio VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# rm –f ship_9204_linux_disk2.cpio VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# cpio -idmv < ship_9204_linux_disk3.cpio VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# rm –f ship_9204_linux_disk3.cpio

??? 解壓完畢,在當前目錄下有三個目錄:Disk1、Disk2、Disk3。修改宿主信息。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# chown –R oracle.dba Disk1 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# chown –R oracle.dba Disk2 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# chown –R oracle.dba Disk3

???? 設置xhost +

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# xhost +

??? 開始安裝OCM

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /setup]# su - oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ /oracle/setup/Disk1/runInstall.sh

??? 在界面上,選擇安裝oracle cluster manager。點擊next,會要求你輸入public node,這時你分兩行輸入linux1和linux2。點擊next,會要求你輸入private node,這時你分兩行輸入linux1-prv和linux2-prv。點擊next,會要求輸入Quorum文件,這時輸入/dev/raw /raw1。點擊next開始安裝cluster manager軟件。這個軟件很小,安裝很快就會結束。

??? 11.3 配置OCM

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ cd $ORACLE_HOME/oracm/admin VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 admin]$ cp cmcfg.ora.tmp cmcfg.ora VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 admin]$ vi cmcfg.ora

??? 將該文件內容修改為如下內容:

??? HeartBeat=15000
??? ClusterName=Oracle Cluster Manager, version 9i
??? PollInterval=1000
??? MissCount=20
??? PrivateNodeNames=linux1-prv linux2-prv
??? PublicNodeNames=linux1 linux2
??? ServicePort=9998
??? HostName=linux1
??? CmDiskFile=/dev/raw/raw1

??? 11.4 啟動OCM

      
[oracle@linux1 oracle]$ rm $ORACLE_HOME/oracm/log/*.ts [oracle@linux1 oracle]$ cd $ORACLE_HOME/oracm/bin [oracle@linux1 bin]$ ./ocmstart.sh [oracle@linux1 bin]$ ps –ef|grep oracm

???? 如果沒有發現oracm進程,則檢查$ORACLE_HOME/oracm/log/下的cm.log文件,查看錯誤消息。

??? 12.安裝 Oracle 軟件

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)
<script type="text/javascript"><!--mce:10--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"><!--mce:11--></script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"><!--mce:12--></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"><!--mce:13--></script><script><!--mce:14--></script>
[oracle@linux1 oracle]$ /oracle/setup/Disk1/runInstall.sh

??? 安裝過程比較簡單,也沒有出現任何錯誤。注意選擇只安裝oracle軟件,不要安裝 數據庫

??? 13.初始化Shared Configuration文件

??? Oracle軟件安裝完畢以后,開始設置Shared Configuration文件。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ su - root VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# mkdir -p /var/opt/oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# touch /var/opt/oracle/srvConfig.loc VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# chown oracle:dba /var/opt/oracle/srvConfig.loc VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# chmod 755 /var/opt/oracle/srvConfig.loc

?在srvConfig.loc文件中添加Shared Configuration文件所在的路徑。而筆者的Shared Configuration文件位于共享存儲上,對應/dev/raw/raw14。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# echo “srvconfig_loc=/dev/raw/raw14” >> /var/opt/oracle/srvConfig.loc

??? 創建該Shared Configuration文件。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [root @linux1 /root]# su - oracle VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ dd if=/dev/zero of=/dev/raw/raw14 bs=1024 count=102400 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)

???? 初始化該Shared Configuration文件

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ srvconfig -init

??? 筆者一開始執行報錯,結果把環境變量$LD_LIBRARY_PATH在.bashrc中設置為如下值后,再啟動就不會報錯了:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH。

??? 14.創建數據庫

??? 使用dbca創建數據庫還是很簡單的。不過,筆者還是走了些彎路。主要是undotbs1不能太小,筆者一開始設置為240M,結果建庫時總是報錯。后來加大到350M后,成功建庫。啟動dbca前,要先在兩個節點上分別啟動gsd進程。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ $ORACLE_HOME/bin/gsdctl start

??? 然后啟動dbca。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) [oracle@linux1 oracle]$ dbca

??? 選擇創建 cluster database,點擊next,把所有可以不選的組件都不選,點擊next后,在初始化參數設置的地方,修改spfile的路徑為:/dev/raw /raw5。然后點擊next,直到最后界面,筆者把表空間indx、users、tools都刪除了,為了建庫干凈。然后按照前面的規劃,分別把裸設備 文件名填寫到對應的文件上去。注意,每個文件都不要設定autoextend on。最后選擇生成腳本,點擊finish。

??? 當腳本生成完畢時,先別急著點ok。進入腳本所在目錄,檢查一下init.ora.xxxxxxxxxxxxx文件(這里xxxxxxxxxxxxx為隨 即序列號)。著重檢查最后幾行,不知為何,自動生成的init.ora文件會有點問題。比如,筆者這里生成的 init.ora.7232006164055內容為:

??? rac9i1.instance_name=rac9i
??? rac9i2.instance_name=rac9i2
??? rac9i1.instance_number=1
??? rac9i2.instance_number=2
??? rac9i2.local_listener=LISTENER_RAC9I
??? rac9i1.local_listener=LISTENER_RAC9I1
??? rac9i2.thread=2
??? rac9i1.thread=1
??? rac9i2.undo_tablespace=UNDOTBS2
??? rac9i1.undo_tablespace=UNDOTBS1

??? 筆者用紅色標示出來的地方是有問題的,按照這樣的初始化參數建立起來的RAC數據庫,第二個節點沒有辦法通過 負載均衡 來訪問。同時,最好把local_listener和remote_listener修改掉。最后修改后的這塊內容為:

??? rac9i1.instance_name=rac9i1
??? rac9i2.instance_name=rac9i2
??? rac9i1.instance_number=1
??? rac9i2.instance_number=2
??? rac9i2.local_listener='(address=(protocol=tcp)(host=linux2)(port=1521))'
??? rac9i2.remote_listener='(address=(protocol=tcp)(host=linux1)(port=1521))'
??? rac9i1.local_listener='(address=(protocol=tcp)(host=linux1)(port=1521))'
??? rac9i1.remote_listener='(address=(protocol=tcp)(host=linux2)(port=1521))'
??? rac9i2.thread=2
??? rac9i1.thread=1
??? rac9i2.undo_tablespace=UNDOTBS2
??? rac9i1.undo_tablespace=UNDOTBS1
???
??? 修改完這些內容以后,回到原來的dbca界面,點擊ok,就開始數據庫的正式安裝了。當然,也可以在dbca創建好數據庫以后再修改這些內容也是可以的。創建完數據庫以后,第二個節點的實例也會自動啟動。這時,整個RAC數據庫環境就已經搭建完畢了。

?

??? 15.驗證并測試RAC數據庫

??? 在 服務器端 ,執行如下語句。觀察是否有兩個實例在運行。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) ?SQL> select INSTANCE_NUMBER, STATUS,HOST_NAME from gv$instance; VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) INSTANCE_NUMBER STATUSHOST_NAME VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) --------------- ------------ ------------------ VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) 1OPENlinux1 VMware下RedHat安裝Oracle 9i RAC全攻略(圖四)
<script type="text/javascript"><!--mce:15--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"><!--mce:16--></script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"><!--mce:17--></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"><!--mce:18--></script><script><!--mce:19--></script>
2OPENlinux2

??? 15.1 測試負載均衡

??? 在客戶端上修改tnsnames.ora文件,添加如下內容:
??? rac =
??? (DESCRIPTION =
??? (ADDRESS_LIST =
??? (ADDRESS = (PROTOCOL = TCP)(HOST = linux2)(PORT = 1521))
??? (ADDRESS = (PROTOCOL = TCP)(HOST = linux1)(PORT = 1521))
??? )
??? (CONNECT_DATA =
??? (service_name = rac9i)
??? (failover_mode=(type=select)(method=basic))
??? )
??? (LOAD_BALANCE=ON)
??? (FAILOVER=ON)
??? )

??? 然后,為了能識別主機名linux1和linux2,筆者還修改了C:\WINDOWS\system32\drivers\etc目錄下的hosts文件,添加如下內容:

??? 134.251.114.140linux1
??? 134.251.114.141linux2

??? 最后,在命令窗口執行tnsping rac來檢驗是否能夠連通。檢測無誤以后,開始測試。分兩種方法,第一種方法是開兩個命令行窗口,在一個窗口中分別輸入如下的命令,然后再在另外一個窗口也輸入如下的命令。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) D:\>sqlplus /nolog VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) SQL> connect sys/hanson@rac as sysdba VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) SQL> select instance_name from v$instance; VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) SQL> exit

?但是,從結果看起來,并沒有實現負載均衡。兩個窗口出現的都是rac9i1。而不是筆者想象中的一個窗口是rac9i1,另一個窗口是rac9i2。筆者又開了一個命令行窗口,再次重復執行上面的命令,仍然顯示rac9i1。

??? 換第二種測試方法,建立一個test.sql文件,內容如下:

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) connect test/test@rac; VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) select instance_name from v$instance; VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) exit

??? 然后,打開一個命令行窗口,反復執行如下命令:

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) D:\>sqlplus /nolog @c:\test.sql

??? 這時,顯示出來的實例名確實是負載均衡了,rac9i1和rac9i2交替出現。筆者認為,這樣的負載均衡意義似乎不是很大。

??? 15.2 測試failover

??? 實現failover,需要在客戶端的tnsnames.ora文件的CONNECT_DATA節點里添加如下行:

??? (failover_mode=(type=select)(method=basic))

??? 進入命令行窗口。

      
VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) D:\>sqlplus /nolog VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) SQL> connect sys/hanson@rac as sysdba VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) SQL> select instance_name from v$instance; VMware下RedHat安裝Oracle 9i RAC全攻略(圖四) INSTANCE_NAME VMware
分享到:
評論

VMware下RedHat安裝Oracle 9i RAC全攻略


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人免费视频 | 色资源站 | 在线免费福利 | xxxx免费国产在线视频 | 国产在线2021| 日本黄色一级毛片 | 久久免费精品一区二区 | 国产色图区 | 久久综合玖玖爱中文字幕 | 一级二级三级毛片 | 亚洲人成依人成综合网 | 99久久国产免费中文无字幕 | 91精品国产视频 | 农村高清性色生活片 | 久久久精品日本一区二区三区 | 免费观看久久 | 色综合久久中文字幕网 | 四虎网站1515hh四虎 | 久操视频在线免费观看 | 国产99久久精品一区二区 | 日韩成人免费一级毛片 | 999在线视频 | 色综和 | 国产亚洲精品成人一区看片 | 国产伦精品一区三区视频 | 亚洲码在线 | 国产亚洲欧美久久精品 | 男女免费视频 | 国产高清美女一级a毛片久久 | 天天翘夜夜洗澡天天做 | 美女被爆羞羞网站 | 尤物久久99热国产综合 | 欧美一区二区在线观看视频 | 国产精品高清免费网站 | 天天综合在线观看 | 久久综合色婷婷 | 91粉嫩萝控精品福利网站 | 国内精品免费一区二区观看 | 亚洲人成在线观看 | 精品国产一级毛片大全 | 亚洲精品久久久久久久无 |