久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:5日期:2023-11-26 11:22:21
;;摘要:大家都知道,Oracle 9i RAC(以下簡稱RAC)是oracle里相對(duì)比較復(fù)雜的部分,很大一部分原因是由于RAC的環(huán)境搭建相對(duì)不如單實(shí)例方便。通常典型的配置是兩臺(tái)主機(jī)加一臺(tái)存儲(chǔ),但是平常我們個(gè)人假如想在家研究測試RAC的話,很少會(huì)去購買這么多設(shè)備來做測試的。 幸好,我們有VMware GSX Server(以下簡稱VMware),通過使用這款非常好的虛擬機(jī)模擬工具,我們可以在一臺(tái)PC電腦上模擬出多臺(tái)主機(jī)加存儲(chǔ)的這樣一個(gè)RAC環(huán)境。 ;本文首先簡要介紹了RAC的原理,隨后著重具體敘述了如何在一臺(tái)PC電腦上,使用VMware構(gòu)建兩臺(tái)RedHat Linux AS3(以下簡稱AS3),并虛擬一個(gè)共享存儲(chǔ),創(chuàng)建裸設(shè)備,最后在實(shí)現(xiàn)RAC的搭建。;1.RAC簡介;簡單來說,RAC就是位于多個(gè)主機(jī)(通常都稱為節(jié)點(diǎn))上的多個(gè)oracle實(shí)例同時(shí)治理一個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫必須放在共享存儲(chǔ)設(shè)備上,包括數(shù)據(jù)文件、控制文件、聯(lián)機(jī)日志以及spfile都必須放在共享存儲(chǔ)上,這樣每個(gè)節(jié)點(diǎn)才能同時(shí)訪問存儲(chǔ)設(shè)備。每個(gè)節(jié)點(diǎn)之間通過高速光纖互相連接,并同步內(nèi)存數(shù)據(jù)。oracle在治理不同實(shí)例里的內(nèi)存里的數(shù)據(jù)結(jié)構(gòu),同時(shí)要最大程度的降低I/O,引入了全局緩沖服務(wù)(GCS:Global Cache Service),同時(shí)還引入了全局鎖定服務(wù)(GES:Global Enqueue Service)用來在不同節(jié)點(diǎn)之間通訊時(shí)進(jìn)行同步治理。這些服務(wù)都是通過一組非凡的后臺(tái)進(jìn)程完成的,這些后臺(tái)進(jìn)程主要包括:;(1)global cache service processes(LMSN):n從0到9,具體由信息傳輸?shù)臄?shù)量決定。用來控制信息到其他實(shí)例的流向,同時(shí)還治理對(duì)全局?jǐn)?shù)據(jù)塊的訪問。LMSn進(jìn)程同樣在不同實(shí)例的數(shù)據(jù)塊緩存(buffer cache)里傳遞數(shù)據(jù)庫鏡像(block image)。該進(jìn)程是Cache Fusion特性的一部分。;(2)global enqueue service monitor(LMON):監(jiān)控全局鎖定(global enqueues)及其資源,并提供global enqueues資源的恢復(fù)操作。enqueues是用來進(jìn)行串行化行更新的共享的內(nèi)存結(jié)構(gòu)。;(3)global enqueue service daemon(LMD):治理對(duì)全局鎖定(global enqueues)以及全局資源的訪問。在每個(gè)實(shí)例中,LMD進(jìn)程對(duì)傳入當(dāng)前實(shí)例的對(duì)其他資源的訪問請(qǐng)求進(jìn)行治理。;(4)lock process(LCK)治理non-Cache Fusion資源的請(qǐng)求,比如library cache或row cache的請(qǐng)求。;(5)diagnosability daemon(DIAG):獲得實(shí)例中有關(guān)進(jìn)程失敗的診斷信息。該daemon的操作是自動(dòng)的,并且它會(huì)更新alert<SID>.log文件,以記錄它所做的動(dòng)作。;注重:cache fusion表示一種在RAC里的非磁盤交互方式的內(nèi)存同步機(jī)制。該機(jī)制使得獲得block的實(shí)例能夠?qū)lock直接從內(nèi)存轉(zhuǎn)移到需要該block的實(shí)例的SGA里去。這樣,由于減少了磁盤交互,所以將block從一個(gè)實(shí)例轉(zhuǎn)移到另一個(gè)實(shí)例的性能提高很多。而且治理也更加簡便。;RAC能夠?qū)蛻舳说倪B接請(qǐng)求進(jìn)行負(fù)載均衡,把所有客戶的連接盡可能的平均分布在不同的實(shí)例上。同時(shí),RAC還提供failover的功能,也就是說假如其中一個(gè)節(jié)點(diǎn)發(fā)生意外,只要這個(gè)時(shí)候連在該損壞節(jié)點(diǎn)上的session沒有正在進(jìn)行事務(wù)運(yùn)行,則該session不需要退出后重新登錄,oracle會(huì)自動(dòng)將該session連接到一個(gè)可用的節(jié)點(diǎn)上,從而保證了7×24應(yīng)用的安全性和穩(wěn)定性。;不過,RAC不提供容災(zāi)的功能,也就是說假如共享存儲(chǔ)損壞,仍然會(huì)導(dǎo)致整個(gè)應(yīng)用崩潰。所以,需要采用其他容災(zāi)方案結(jié)合使用,比如RAC+DataGuard等。;2.預(yù)備工作;VMware GSX Server:筆者測試所使用的是3.2版本,建議使用3.2及以上的版本。 Linux:筆者使用的是RedHat Linux AS3。請(qǐng)使用AS2.1以上版本的linux。因?yàn)锳S2.1以下的版本假如要 支持RAC需要進(jìn)行很多額外的配置,比如watchdog之類的,到了AS2.1以后缺省都不使用了,而是使用hangcheck,假如要使用watchdog,需要進(jìn)行很多不必要的配置。安裝介質(zhì)可以是光盤,也可以是ISO文件。筆者使用的是ISO文件。 Oracle:筆者使用的是oracle 9204 for linux,可以直接從oracle的官方網(wǎng)站上下載。筆者是從oracle官方網(wǎng)站上下載下來的三個(gè)壓縮包。;主要的預(yù)備工作就是這些,當(dāng)然安裝過程中可能還會(huì)需要其他的一些軟件,比如plainmaker等。在需要的時(shí)候,筆者也會(huì)說明如何使用這些軟件的。3.安裝虛擬節(jié)點(diǎn);3.1 創(chuàng)建虛擬節(jié)點(diǎn);VMware安裝好以后,進(jìn)入主界面,我們就可以創(chuàng)建兩個(gè)虛擬節(jié)點(diǎn)。點(diǎn)擊File->New Virtual Machine…,在打開的窗口中,在選擇所安裝的操作系統(tǒng)時(shí),我們選擇RedHat Enterprise Linux 3,其他都選擇缺省值,點(diǎn)擊next,一直到讓你輸入disk size時(shí),缺省事4G,我們改成8G,最后點(diǎn)擊finish。這樣就創(chuàng)建好了一個(gè)虛擬節(jié)點(diǎn),取名為linux1。同樣的方法,我們創(chuàng)建第二個(gè)虛擬節(jié)點(diǎn),取名為linux2。;3.2安裝linux;創(chuàng)建完兩個(gè)虛擬節(jié)點(diǎn)以后,我們要開始安裝linux了。在窗口的左邊的Inventory框里,右鍵節(jié)點(diǎn)linux1,選擇virtual machine settings…,在彈出的框中,我們選中CD-ROM,然后選擇Use ISO Image,并輸入相應(yīng)的linux安裝介質(zhì)的第一個(gè)ISO文件的位置,如下圖所示。選擇ok以后,點(diǎn)擊Power->Power On,相當(dāng)于為節(jié)點(diǎn) ;VMware下RedHat安裝Oracle 9i RAC全攻略 點(diǎn)擊查看大圖;加電,剩下的工作與在單PC機(jī)器上安裝linux過程一樣。這里提一點(diǎn),就是在給磁盤分區(qū)時(shí),假如不使用LVM,那么在分區(qū)時(shí),/boot給120M,/swap給256M,/給2900M,然后再創(chuàng)建一個(gè)/oracle,把剩下的空間都給/oracle。在安裝過程中,當(dāng)提示需要換另外一張盤時(shí),你只要再次進(jìn)入圖一所示界面,更改ISO文件并確定以后,再進(jìn)入虛擬機(jī),選擇提示中的ok即可。同樣的方法,我們可以安裝好另外一臺(tái)虛擬機(jī)上的linux。;RAC里每個(gè)節(jié)點(diǎn)都需要兩塊網(wǎng)卡并使用固定ip,一塊作為兩個(gè)節(jié)點(diǎn)互相內(nèi)部通信用,另外一塊作為外部連接用。我們同樣的,選擇linux1,進(jìn)入圖一界面,選擇add按鈕,然后選擇Ethernet Adapter,然后都選擇缺省值并點(diǎn)擊next直到結(jié)束。這樣就為linux1添加了第二塊網(wǎng)卡。同樣的方法為linux2添加第二塊網(wǎng)卡。分別啟動(dòng)兩個(gè)節(jié)點(diǎn)以后,我們?cè)趌inux為網(wǎng)卡配置ip地址。筆者的配置是linux1的內(nèi)部通信ip為:134.251.0.140,外部通信ip為:134.251.114.141。而linux2的內(nèi)部通信ip為:134.251.0.141,外部通信ip為:134.251.114.140。;4.安裝共享磁盤;4.1 創(chuàng)建共享磁盤;在VMware里,共享磁盤需要使用plainmaker.exe這個(gè)工具來創(chuàng)建。可以到VMware GSX Server的安裝目錄下找該工具是否存在。假如不存在,則可以到Google上搜索。很多站點(diǎn)提供該工具的下載。進(jìn)入命令提示符,輸入下面的命令來創(chuàng)建共享磁盤。;C:>plainmaker D:virtualossharedisk.pln 2048m;該命令運(yùn)行以后,就會(huì)在D:virtualos目錄下創(chuàng)建一個(gè)名位sharedisk.pln的共享磁盤,大小為2G。;4.2 添加共享磁盤;共享磁盤安裝好以后,我們需要把它加入到前面安裝好的兩臺(tái)linux虛擬機(jī)里。選擇linux1,仍然進(jìn)入到圖一所示的界面里,選擇左邊的add按鈕,在彈出的框中,選擇Hard Disk,并點(diǎn)擊next,選擇方式如下面圖二 ;所示,并點(diǎn)擊next,輸入我們剛才創(chuàng)建的共享磁盤名:D:virtualossharedisk.pln,然后不要點(diǎn)擊finish,要點(diǎn)擊advanced,選擇磁盤為SCSI 1:0。如下圖三所示。最后點(diǎn)擊finish。這樣,我們就為linux1節(jié)點(diǎn)添加了共享存儲(chǔ)。隨后,我們用同樣的方法為linux2節(jié)點(diǎn)也添加該共享存儲(chǔ)。 ;4.3 配置共享磁盤;把共享存儲(chǔ)添加到兩個(gè)節(jié)點(diǎn)以后,還不算完,必須修改兩個(gè)虛擬機(jī)的配置文件。在每個(gè)節(jié)點(diǎn)所在目錄下都存在一個(gè)后綴名為vmx的文件,這就是虛擬機(jī)的配置文件了,用notepad打開,把下面三行記錄添加進(jìn)去。注重,這三行中的每一行都不能重復(fù),所以仔細(xì)檢查一下vmx文件,確保這三行記錄唯一。每個(gè)節(jié)點(diǎn)的配置文件都必須添加這三行記錄。;disk.locking = FALSE scsi1.sharedBus = 'virtual' scsi1:0.mode = 'persistent';到這里,我們才算是為兩個(gè)節(jié)點(diǎn)都配置好了共享存儲(chǔ)。分別啟動(dòng)兩個(gè)linux節(jié)點(diǎn)以后,進(jìn)入linux,我們可以使用如下命令來確定兩個(gè)節(jié)點(diǎn)是否都能夠找到該存儲(chǔ)了。假如提示出有設(shè)備,則表示能夠識(shí)別共享存儲(chǔ)。fdisk –l /dev/sdb;5.設(shè)置兩個(gè)節(jié)點(diǎn)的互相信任機(jī)制;由于RAC的節(jié)點(diǎn)之間需要完全無障礙的訪問,因此需要設(shè)定主機(jī)名互相訪問以及互相信任機(jī)制。注重:以下所有步驟都必須在兩臺(tái)節(jié)點(diǎn)上各自完成。;5.1 設(shè)置主機(jī)名;首先,RAC之間互相不能通過ip來訪問,而必須使用主機(jī)名來訪問,因此需要設(shè)定hosts內(nèi)容。筆者設(shè)定的是節(jié)點(diǎn)linux1的內(nèi)部訪問主機(jī)名為linux1-prv,而外部訪問節(jié)點(diǎn)名為linux1;節(jié)點(diǎn)linux2的內(nèi)部訪問主機(jī)名為linux2-prv,而外部訪問節(jié)點(diǎn)名為linux2。需要將這些信息添加到/etc/hosts文件里去,如下所示。注重,要將127.0.0.1原來所對(duì)應(yīng)的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原來所對(duì)應(yīng)的linux2改名為localhost。其他設(shè)置與linux1節(jié)點(diǎn)一樣。設(shè)置好以后,在linux1上ping linux2,在linux2上也ping linux1,假如都通的話,說明設(shè)置無誤。;5.2 設(shè)置telnet訪問;(1)通常缺省都會(huì)安裝telnet-client。主要確定是否安裝了telnet-server軟件。 [root@linux1 root]# rpm –qa grep telnet;(2)假如沒有安裝,則從AS3安裝介質(zhì)上找到該rpm包,并進(jìn)行安裝。;(3)安裝好以后,需要啟動(dòng)telnet服務(wù)。輸入以下命令,并從彈出的框中選中telnet后確認(rèn)。 [root@linux1 root]# ntsysv;(4)激活telnet服務(wù) [root@linux1 root]# service xinetd restart;(5)設(shè)置答應(yīng)root進(jìn)行telnet登錄 [root @linux1 /root]# vi /etc/pam.d/login;將authrequiredpam_securetty.so這一行開頭添加#,從而注釋該行。;5.3 設(shè)置rlogin、rsh;由于在第一個(gè)節(jié)點(diǎn)上安裝oracle軟件時(shí),oracle會(huì)自動(dòng)將第一個(gè)節(jié)點(diǎn)上安裝完畢的文件拷貝到第二個(gè)節(jié)點(diǎn)上,因此需要配置rlogin和rsh以及rcp等。;(1)確定是否安裝了rsh-server軟件。 [root@linux1 root]# rpm –qa grep rsh;(2)假如沒有安裝,則從AS3安裝介質(zhì)上找到該rpm包,并進(jìn)行安裝。;(3)安裝好以后,需要啟動(dòng)rsh、rlogin、rexec服務(wù)。輸入以下命令,并從彈出的框中選中rsh、rlogin、rexec后確認(rèn)。 [root@linux1 root]# ntsysv;(4)激活rsh、rlongin服務(wù) [root@linux1 root]# service xinetd restart;(5)修改/etc/securetty [root@linux1 root]# echo 'rexec' >> /etc/securetty;echo 'rlogin'>> /etc/securetty;echo 'rsh' >> /etc/securetty;(6)設(shè)置答應(yīng)root進(jìn)行rsh、rlogin [root @linux1 /root]# vi /etc/pam.d/rlogin;將authrequiredpam_securetty.so這一行開頭添加#,從而注釋該行。;(7)在/etc目錄下建立hosts.equiv文件,表示兩臺(tái)linux節(jié)點(diǎn)互相信任。 [root @linux1 /root]# vi /etc/hosts.equiv;在該文件里添加如下內(nèi)容:;linux1 ;linux2 linux1-prv linux2-prv;(8)在root的$HOME目錄下,建立.rhosts文件。 [root @linux1 /root]# vi .rhosts;在該文件里添加如下內(nèi)容。這樣,root用戶就可以直接rlogin、rsh而不用輸入密碼。;linux1 root linux2 root linux1-prv root linux2-prv root;(9)配置完以后,我們可以測試一下是否成功。 [root @linux1 /root]# rlogin linux2 [root @linux1 /root]# rsh –l root linux2 cat /etc/hosts [root @linux1 /root]# rcp /tmp/testlinux2:/tmp 6.修改linux內(nèi)核參數(shù)以及其他相應(yīng)配置 [root @linux1 /root]# vi /etc/sysctl.conf;在該文件末尾添加如下內(nèi)容: kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.sem = 250 32000 100 128 fs.file-max = 65536 這里,對(duì)每個(gè)參數(shù)值做個(gè)簡要的解釋和說明。;(1)shmmax:該參數(shù)定義了共享內(nèi)存段的最大尺寸(以字節(jié)為單位)。缺省為32M,對(duì)于oracle來說,該缺省值太低了,通常將其設(shè)置為2G。 (2)shmmni:這個(gè)內(nèi)核參數(shù)用于設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量。該參數(shù)的默認(rèn)值是 4096 。通常不需要更改。 (3)shmall:該參數(shù)表示系統(tǒng)一次可以使用的共享內(nèi)存總量(以頁為單位)。缺省值就是2097152,通常不需要修改。 (4)sem:該參數(shù)表示設(shè)置的信號(hào)量。 (5)file-max:該參數(shù)表示文件句柄的最大數(shù)量。文件句柄設(shè)置表示在linux系統(tǒng)中可以打開的文件數(shù)量。;修改好內(nèi)核以后,執(zhí)行下面的命令使新的配置生效。 [root @linux1 /root]# /sbin/sysctl -p;通常,出于性能上的考慮,還需要進(jìn)行如下的設(shè)定,以便改進(jìn)Oracle用戶的有關(guān) nofile(可打開的文件描述符的最大數(shù))和nproc(單個(gè)用戶可用的最大進(jìn)程數(shù)量)。方法如下: [root @linux1 /root]# vi /etc/security/limits.conf;在該文件里添加如下內(nèi)容:;oracle soft nofile 65536 ;oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 163847.配置 hangcheck-timer 內(nèi)核模塊;Oracle9202以前,都是使用watchdog來檢查系統(tǒng)是否掛起。從9202以后,oracle使用hangcheck-timer模塊。hangcheck-timer模塊被加載到內(nèi)核中,能夠定時(shí)檢查系統(tǒng)是否掛起。有個(gè)可配置的參數(shù)用來表示多少時(shí)間以后系統(tǒng)沒響應(yīng)就認(rèn)為是掛起。該模塊在AS3中是自帶的。;使用如下命令檢查該模塊是否存在: [root @linux1 /root]# find /lib/modules -name 'hangcheck-timer.o';使用相應(yīng)的參數(shù)加載該模塊: [root @linux1 /root]# /sbin/insmod hangcheck-timer hangcheck_tick=30hangcheck_margin=180;這里解釋一下兩個(gè)參數(shù)的含義:;hangcheck_tick:該參數(shù)定義了模塊啟動(dòng)的間隔時(shí)段。其默認(rèn)值為 60 秒。 Oracle建議將其設(shè)置為 30 秒。 hangcheck_margin:該參數(shù)定義了多少時(shí)間以后系統(tǒng)沒響應(yīng)就認(rèn)為是掛起。以秒為單位。其默認(rèn)值為 180秒。Oracle 建議將其設(shè)置為 180 秒。;檢查該模塊是否被成功加載: [root @linux1 /root]# grep Hangcheck /var/log/messages;為了在linux重啟以后,自動(dòng)加載該模塊,可以將加載模塊的命令添加到/etc/modules.conf中 [root @linux1 /root]# echo 'options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180' >> /etc/modules.conf8.創(chuàng)建oracle用戶和dba組 [root @linux1 /root]# groupadd dba [root @linux1 /root]# useradd –g dba oracle [root @linux1 /root]# passwd oracle;創(chuàng)建安裝oracle所需要的目錄。 [root @linux1 /root]# mkdir –p /oracle/ora9/prodUCt/9.2 [root @linux1 /root]# chown –R oracle.dba /oracle/ora9;;為oracle用戶配置.bashrc文件。 [root @linux1 /root]# su – oracle [oracle@linux1 oracle]$ vi .bashrc;將以下內(nèi)容添加到.bashrc文件里。 eXPort LD_ASSUME_KERNEL=2.4.1 export ORACLE_BASE=/oracle/ora9 export ORACLE_HOME=/oracle/ora9/product/9.2 export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH export ORACLE_OWNER=oracle export ORACLE_SID=rac9i1 export ORACLE_TERM=vt100 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH;以上步驟必須在兩個(gè)節(jié)點(diǎn)上分別完成。;注重: 紅色部分,在節(jié)點(diǎn)linux1上ORACLE_SID=rac9i1,而在節(jié)點(diǎn)linux2上則為ORACLE_SID=rac9i2。而藍(lán)色部分,很多資料上只是說LD_LIBRARY_PATH=$ORACLE_HOME/lib即可。但是經(jīng)過筆者測試,只寫這些是不夠的,在下面srvconfig –init時(shí)會(huì)報(bào)錯(cuò)。必須按照上面藍(lán)色部分的內(nèi)容進(jìn)行配置。;9.為共享設(shè)備劃分裸設(shè)備;通常,對(duì)于RAC,我們都會(huì)使用裸設(shè)備來存放數(shù)據(jù)文件等需要共享的數(shù)據(jù)庫文件。這就需要我們對(duì)共享存儲(chǔ)劃分出若干的裸設(shè)備,每個(gè)裸設(shè)備對(duì)應(yīng)一個(gè)文件。;9.1 磁盤分區(qū);我們要對(duì)共享存儲(chǔ)進(jìn)行分區(qū),該步驟只需要在其中一個(gè)節(jié)點(diǎn)上完成即可。筆者劃分了3個(gè)主分區(qū)(primary)和一個(gè)包含11個(gè)分區(qū)的擴(kuò)展分區(qū)(extend)。注重,linux上最多只能劃分15個(gè)分區(qū)。超過的部分,linux是無法識(shí)別的。對(duì)每個(gè)分區(qū)的規(guī)劃如下所示:;分區(qū)名尺寸存放的文件 ;/dev/sdb110M用于存放Cluster Manager Quorum文件 /dev/sdb2350M回滾段表空間1:Undotbs1 /dev/sdb3350M回滾段表空間1:Undotbs2 /dev/sdb5500M系統(tǒng)表空間:system /dev/sdb610MSpfile /dev/sdb7300M臨時(shí)表空間:temp /dev/sdb8300M用戶表空間:user和indx,也可以不設(shè)置該分區(qū) /dev/sdb910M控制文件:control file /dev/sdb1010M控制文件:control file /dev/sdb1120M第一個(gè)節(jié)點(diǎn)的第一組聯(lián)機(jī)日志文件 /dev/sdb1220M第一個(gè)節(jié)點(diǎn)的第二組聯(lián)機(jī)日志文件 /dev/sdb1320M第二個(gè)節(jié)點(diǎn)的第一組聯(lián)機(jī)日志文件 /dev/sdb1420M第二個(gè)節(jié)點(diǎn)的第二組聯(lián)機(jī)日志文件 /dev/sdb15100MSrvconfig模塊所需要的Shared Configuration文件;規(guī)劃好以后,我們可以開始實(shí)際創(chuàng)建這些分區(qū)了。進(jìn)入linux,執(zhí)行如下命令進(jìn)入分區(qū)界面。 [root @linux1 /root]# fdisk /dev/sdb;首先輸入n,然后輸入p,再輸入1,回車接受缺省值,再輸入+10M,這樣我們就創(chuàng)建了/dev/sdb1。同樣的方法,我們可以創(chuàng)建sdb2和sdb3。再次輸入n,然后輸入e,回車接受缺省值,再回車接受缺省值,這樣,我們就創(chuàng)建了擴(kuò)展分區(qū)sdb4,同時(shí)把剩下的空間全都給了sdb4。接下來,我們輸入n,然后回車接受缺省值,再輸入+500M,這樣,我們就創(chuàng)建了sdb5。同樣的方法,我們可以把剩下的所有分區(qū)都創(chuàng)建出來。;創(chuàng)建完畢以后,輸入p,顯示我們剛才所創(chuàng)建的所有分區(qū),確認(rèn)無誤以后,輸入w,從而保存我們所創(chuàng)建的分區(qū),并更新分區(qū)表。;9.2 掛載裸設(shè)備;該步驟需要在兩個(gè)節(jié)點(diǎn)分別進(jìn)行。對(duì)裸設(shè)備的規(guī)劃如下:;裸設(shè)備文件名掛載的分區(qū)存放的文件 /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;確定了裸設(shè)備的規(guī)劃以后,將以下內(nèi)容添加到/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個(gè)裸設(shè)備文件的宿主為oracle。 [root @linux1 /root]# chown oracle.dba /dev/raw/raw1 [root @linux1 /root]# chown oracle.dba /dev/raw/raw2 。。。。。。。 [root @linux1 /root]# chown oracle.dba /dev/raw/raw15;分別重新啟動(dòng)兩個(gè)節(jié)點(diǎn)。啟動(dòng)完畢以后,運(yùn)行如下命令確定裸設(shè)備的配置情況。 [root @linux1 /root]# raw -aq;10.檢查安裝oracle所需要的linux模塊以及補(bǔ)丁;在兩個(gè)節(jié)點(diǎn)上分別確定以下這些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的安裝介質(zhì)上找到這些包并加以安裝。安裝好上面這些模塊以后,需要打補(bǔ)丁,補(bǔ)丁號(hào)為:3006854。可以到oracle官方網(wǎng)站下載該補(bǔ)丁,發(fā)送到兩個(gè)節(jié)點(diǎn)上以后,執(zhí)行: [root @linux1 /root]# sh rhel3_pre_install.sh;11.安裝Oracle Cluster Manager;11.1 生成OCM治理文件;該OCM治理文件必須位于共享存儲(chǔ)上,按照我們的規(guī)劃,應(yīng)該放在/dev/raw/raw1上。該步驟只需要在其中一個(gè)節(jié)點(diǎn)上執(zhí)行即可。 [root @linux1 /root]# su - oracle [oracle@linux1 oracle]$ dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=1024;11.2 安裝OCM [oracle@linux1 oracle]$ su - root [root @linux1 /root]# mv /usr/bin/gcc /usr/bin/gcc323 [root @linux1 /root]# ln -s /usr/bin/gcc296 /usr/bin/gcc [root @linux1 /root]# mv /usr/bin/g++ /usr/bin/g++323 [root @linux1 /root]# ln -s /usr/bin/g++296 /usr/bin/g++;檢驗(yàn)一下gcc和g++的版本。 [root@linux1 root]# gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux7/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-122) [root@linux1 root]# g++ -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux7/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-122);將下載下來的oracle安裝介質(zhì)(筆者下載的是ship_9204_linux_disk1.cpio.gz、ship_9204_linux_disk2.cpio.gz和ship_9204_linux_disk3.cpio.gz)拷貝到其中一個(gè)節(jié)點(diǎn)上。可以通過FTP拷貝也可以通過samba服務(wù)來拷貝。筆者個(gè)人傾向samba,很方便。拷貝完畢以后,使用如下命令解壓。 [root @linux1 /setup]# gunzip ship_9204_linux_disk1.cpio.gz [root @linux1 /setup]# gunzip ship_9204_linux_disk2.cpio.gz [root @linux1 /setup]# gunzip ship_9204_linux_disk3.cpio.gz [root @linux1 /setup]# cpio -idmv < ship_9204_linux_disk1.cpio [root @linux1 /setup]# rm –f ship_9204_linux_disk1.cpio [root @linux1 /setup]# cpio -idmv < ship_9204_linux_disk2.cpio [root @linux1 /setup]# rm –f ship_9204_linux_disk2.cpio [root @linux1 /setup]# cpio -idmv < ship_9204_linux_disk3.cpio [root @linux1 /setup]# rm –f ship_9204_linux_disk3.cpio;解壓完畢,在當(dāng)前目錄下有三個(gè)目錄:Disk1、Disk2、Disk3。修改宿主信息。 [root @linux1 /setup]# chown –R oracle.dba Disk1 [root @linux1 /setup]# chown –R oracle.dba Disk2 [root @linux1 /setup]# chown –R oracle.dba Disk3;;設(shè)置xhost + [root @linux1 /setup]# xhost +;開始安裝OCM [root @linux1 /setup]# su - oracle [oracle@linux1 oracle]$ /oracle/setup/Disk1/runInstall.sh;在界面上,選擇安裝oracle cluster manager。點(diǎn)擊next,會(huì)要求你輸入public node,這時(shí)你分兩行輸入linux1和linux2。點(diǎn)擊next,會(huì)要求你輸入private node,這時(shí)你分兩行輸入linux1-prv和linux2-prv。點(diǎn)擊next,會(huì)要求輸入Quorum文件,這時(shí)輸入/dev/raw/raw1。點(diǎn)擊next開始安裝cluster manager軟件。這個(gè)軟件很小,安裝很快就會(huì)結(jié)束。;11.3 配置OCM [oracle@linux1 oracle]$ cd $ORACLE_HOME/oracm/admin [oracle@linux1 admin]$ cp cmcfg.ora.tmp cmcfg.ora [oracle@linux1 admin]$ vi cmcfg.ora;將該文件內(nèi)容修改為如下內(nèi)容:;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 啟動(dòng)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 –efgrep oracm;;假如沒有發(fā)現(xiàn)oracm進(jìn)程,則檢查$ORACLE_HOME/oracm/log/下的cm.log文件,查看錯(cuò)誤消息。;;12.安裝Oracle軟件 [oracle@linux1 oracle]$ /oracle/setup/Disk1/runInstall.sh;安裝過程比較簡單,也沒有出現(xiàn)任何錯(cuò)誤。注重選擇只安裝oracle軟件,不要安裝數(shù)據(jù)庫。;13.初始化Shared Configuration文件;Oracle軟件安裝完畢以后,開始設(shè)置Shared Configuration文件。 [oracle@linux1 oracle]$ su - root [root @linux1 /root]# mkdir -p /var/opt/oracle [root @linux1 /root]# touch /var/opt/oracle/srvConfig.loc [root @linux1 /root]# chown oracle:dba /var/opt/oracle/srvConfig.loc [root @linux1 /root]# chmod 755 /var/opt/oracle/srvConfig.loc;在srvConfig.loc文件中添加Shared Configuration文件所在的路徑。而筆者的Shared Configuration文件位于共享存儲(chǔ)上,對(duì)應(yīng)/dev/raw/raw14。 [root @linux1 /root]# echo “srvconfig_loc=/dev/raw/raw14” >> /var/opt/oracle/srvConfig.loc;創(chuàng)建該Shared Configuration文件。 [root @linux1 /root]# su - oracle[oracle@linux1 oracle]$ dd if=/dev/zero of=/dev/raw/raw14 bs=1024 count=102400;;初始化該Shared Configuration文件 [oracle@linux1 oracle]$ srvconfig -init;筆者一開始執(zhí)行報(bào)錯(cuò),結(jié)果把環(huán)境變量$LD_LIBRARY_PATH在.bashrc中設(shè)置為如下值后,再啟動(dòng)就不會(huì)報(bào)錯(cuò)了:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH。;14.創(chuàng)建數(shù)據(jù)庫;使用dbca創(chuàng)建數(shù)據(jù)庫還是很簡單的。不過,筆者還是走了些彎路。主要是undotbs1不能太小,筆者一開始設(shè)置為240M,結(jié)果建庫時(shí)總是報(bào)錯(cuò)。后來加大到350M后,成功建庫。啟動(dòng)dbca前,要先在兩個(gè)節(jié)點(diǎn)上分別啟動(dòng)gsd進(jìn)程。 [oracle@linux1 oracle]$ $ORACLE_HOME/bin/gsdctl start;然后啟動(dòng)dbca。 [oracle@linux1 oracle]$ dbca;選擇創(chuàng)建cluster database,點(diǎn)擊next,把所有可以不選的組件都不選,點(diǎn)擊next后,在初始化參數(shù)設(shè)置的地方,修改spfile的路徑為:/dev/raw/raw5。然后點(diǎn)擊next,直到最后界面,筆者把表空間indx、users、tools都刪除了,為了建庫干凈。然后按照前面的規(guī)劃,分別把裸設(shè)備文件名填寫到對(duì)應(yīng)的文件上去。注重,每個(gè)文件都不要設(shè)定autoextend on。最后選擇生成腳本,點(diǎn)擊finish。;當(dāng)腳本生成完畢時(shí),先別急著點(diǎn)ok。進(jìn)入腳本所在目錄,檢查一下init.ora.xxxxxxxxxxxxx文件(這里xxxxxxxxxxxxx為隨即序列號(hào))。著重檢查最后幾行,不知為何,自動(dòng)生成的init.ora文件會(huì)有點(diǎn)問題。比如,筆者這里生成的init.ora.7232006164055內(nèi)容為:;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;筆者用紅色標(biāo)示出來的地方是有問題的,按照這樣的初始化參數(shù)建立起來的RAC數(shù)據(jù)庫,第二個(gè)節(jié)點(diǎn)沒有辦法通過負(fù)載均衡來訪問。同時(shí),最好把local_listener和remote_listener修改掉。最后修改后的這塊內(nèi)容為:;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 修改完這些內(nèi)容以后,回到原來的dbca界面,點(diǎn)擊ok,就開始數(shù)據(jù)庫的正式安裝了。當(dāng)然,也可以在dbca創(chuàng)建好數(shù)據(jù)庫以后再修改這些內(nèi)容也是可以的。創(chuàng)建完數(shù)據(jù)庫以后,第二個(gè)節(jié)點(diǎn)的實(shí)例也會(huì)自動(dòng)啟動(dòng)。這時(shí),整個(gè)RAC數(shù)據(jù)庫環(huán)境就已經(jīng)搭建完畢了。;15.驗(yàn)證并測試RAC數(shù)據(jù)庫;在服務(wù)器端,執(zhí)行如下語句。觀察是否有兩個(gè)實(shí)例在運(yùn)行。 SQL> select INSTANCE_NUMBER, STATUS,HOST_NAME from gv$instance; INSTANCE_NUMBER STATUSHOST_NAME --------------- ------------ ------------------ 1OPENlinux1 2OPENlinux2;15.1 測試負(fù)載均衡;在客戶端上修改tnsnames.ora文件,添加如下內(nèi)容: 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) );然后,為了能識(shí)別主機(jī)名linux1和linux2,筆者還修改了C:WINDOWSsystem32driversetc目錄下的hosts文件,添加如下內(nèi)容:;134.251.114.140linux1 134.251.114.141linux2;最后,在命令窗口執(zhí)行tnsping rac來檢驗(yàn)是否能夠連通。檢測無誤以后,開始測試。分兩種方法,第一種方法是開兩個(gè)命令行窗口,在一個(gè)窗口中分別輸入如下的命令,然后再在另外一個(gè)窗口也輸入如下的命令。 D:>sqlplus /nolog SQL> connect sys/hanson@rac as sysdba SQL> select instance_name from v$instance; SQL> exit;但是,從結(jié)果看起來,并沒有實(shí)現(xiàn)負(fù)載均衡。兩個(gè)窗口出現(xiàn)的都是rac9i1。而不是筆者想象中的一個(gè)窗口是rac9i1,另一個(gè)窗口是rac9i2。筆者又開了一個(gè)命令行窗口,再次重復(fù)執(zhí)行上面的命令,仍然顯示rac9i1。;換第二種測試方法,建立一個(gè)test.sql文件,內(nèi)容如下: connect test/test@rac; select instance_name from v$instance; exit;然后,打開一個(gè)命令行窗口,反復(fù)執(zhí)行如下命令: D:>sqlplus /nolog @c:test.sql;這時(shí),顯示出來的實(shí)例名確實(shí)是負(fù)載均衡了,rac9i1和rac9i2交替出現(xiàn)。筆者認(rèn)為,這樣的負(fù)載均衡意義似乎不是很大。;15.2 測試failover;實(shí)現(xiàn)failover,需要在客戶端的tnsnames.ora文件的CONNECT_DATA節(jié)點(diǎn)里添加如下行:;(failover_mode=(type=select)(method=basic));進(jìn)入命令行窗口。 D:>sqlplus /nolog SQL> connect sys/hanson@rac as sysdba SQL> select instance_name from v$instance; INSTANCE_NAME --------------- rac9i1;這時(shí),進(jìn)入linux1節(jié)點(diǎn),shutdown實(shí)例以后,再次回到上面的命令行窗口,再次執(zhí)行如下語句: SQL> select instance_name from v$instance; INSTANCE_NAME --------------- rac9i2;;從結(jié)果可以看到,確實(shí)自動(dòng)切換到了rac9i2實(shí)例上。說明failover起作用了。
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 精品国产不卡一区二区三区 | 欧美国产日韩一区 | 天天操天天操 | 欧日韩不卡在线视频 | 亚洲精品免费视频 | 九九热这里只有精品8 | 欧美精品成人一区二区三区四区 | 午夜小电影| 国产成人精品免高潮在线观看 | 亚洲一区二区视频 | 91福利电影在线观看 | 亚洲精品成人 | 国产一级片儿 | 国产视频中文字幕 | 欧美精品一区二区久久 | 亚洲精品91 | 精品欧美一区二区在线观看 | 91精品国产人妻国产毛片在线 | 91麻豆精品国产91久久久资源速度 | 日韩一区免费在线观看 | 亚洲第一区在线 | 国产成人av在线 | 丝袜+亚洲+另类+欧美+变态 | av高清在线看| 草草视频在线免费观看 | 蜜臀av在线播放一区二区三区 | 91精品国产综合久久久久久蜜月 | 日韩精品一区二区三区在线 | 国产精品久久精品 | 午夜免费视频 | 亚洲国产一区二区三区 | 岛国精品 | 81精品国产乱码久久久久久 | 欧美精品一区二区三区四区 | 国产精品久久久久影院色老大 | 国产精品成人网 | 欧美aaaaa | 91精品国产综合久久久久久丝袜 | 91精品国产美女在线观看 | 国产精品久久久久一区二区三区 | 粉嫩高清一区二区三区精品视频 |