程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 10g R2 RAC+RHEL4+VMWare GSX簡明安裝步驟

Oracle 10g R2 RAC+RHEL4+VMWare GSX簡明安裝步驟

編輯:Oracle數據庫基礎

我的風格大家也熟悉了,我也不多廢話,也不願意寫什麼手冊,我認為搞稍微復雜一點技術的工程技術人員的最基本的能力就是去做調研和信息搜集,什麼 事情光靠別人很詳細的喂給你,你是永遠無法成為高手的,過程本身很麻煩,有時候甚至很讓人痛苦和氣惱,但是這才是真正能夠把你推動到一個"高手"的位置的 真正動力. 動手越少,水平越糟。

下面是我前幾天做的一個簡明步驟,不想寫復雜的.我覺得已經足夠幫有動手能力的同學過關了.

********************************************

Oracle 10gR2 RAC + RHEL AS4U2 +VMWare GSX 3.2.0

Deployment brifing guide 0.9

Author: nntp 20060119

轉載不得修改,請注明作者時間和出處

********************************************

1. 環境

自用的測試工作站一台,如果你的配置環境和我差很遠,你就不要玩樂,你會很痛苦的.

------------硬件環境--------------------------------------------------------

CPU: AMD Althon64 3200+ x1

Mem: 2G DDR400

Storage: 1x10GB ATA for Host OS, 2x80G SATA for application

------------Host 的環境----------------------------------------------------------

SuSE Enterprise Linux Server 9 SP3 with latest errata Kernel from Novell YOU

(AMD64/EM64T version)

10GB上安裝的是我的上面的這個OS,用來做Host OS, 並且已經調優過. (不會這種環境下Linux調優的同學,你做出來的性能會和我有不少差距)

2個80GB硬盤,我用linux MD 做軟RAID, RAID level 是0, 並且作了調優(不會這種環境下Linux陣列配置和優化的同學,你做出來的性能會和我有不少差距)

VMWare gsx3.2.0 安裝在 10GB硬盤上,也作了一些小的優化工作(你在VTN上查得到怎麼做優化).

80GB做RAID0就變成一個160GB的LUN. 我劃樂40GB出來, mount 到 /vmegg上

我用的這個文件系統是ReiserFS, 並作了文件系統級的性能優化.

vmegg的結構如下

/vmegg

....../rac

........./rhel4

............/n1

............/n2

............/share

各位同學自己建好上面這些目錄.

-------------------安裝的大概步驟------------------------

步驟一: 安裝前准備及Guest OS安裝配置

步驟二: 安裝Oracle 10gR2 clusterware

步驟三: 安裝Oracle 10gR2 database

步驟四: 配置netca

步驟五: 配置dbca創建數據庫

步驟六: 校驗RAC

------------------------------------------------------------

============ 步驟一 安裝前准備及Guest OS安裝配置=======

Host OS 准備

1. 從Oracle OTN下載 Oracle 10gR2 for x86 Linux,下2個zip, 一個是clusterware zip,一個是database zip, comp CD你可以下,我是懶的弄

2. 准備的RHEL AS4U2(x86), 你也可以用CentOS 4.2(x86)

3. 搞清楚你的Linux的kernel version

4. 從Oracle OTN下載 ocfs2 , ocfs tools, ocfs console, ASMLib, ASMLib support & utility,記住這些都是針對你的kernel的,不要下錯

5. VMWare gsx 3.2.0 for Linux

6. 我的工作站是沒有顯示器的,我的工作都是在筆記本上作的, 大家都知道Oracle的安裝是需要X的,所以你可以VNC過去,也可以在本地用Xserver.

我用的是ReflectionX,因為還可用來連其他的Unix(HP-UX, AIX等). 這個完全是個人喜好,你搞得定什麼用什麼.

7. 在筆記本上配置好RelfectionX,做好連接host上的vmware console

Guest OS安裝

1. 泡杯茶,會耗不少時間, 我一邊安裝一邊看DVD的,當中會有很多等待時間. 雖然我後來用了幾個自動化的方式 .

2. 在vmware console 創建你的 vmware guest OS, 取名 node1, node2, 選擇 custome create-> Redhat Enterprise Linux ,其它都是默認. 內存選擇1G(>800MB你就看 不到warning樂), 硬盤選擇 LSI bus controller, 大小選擇10GB, 建立方式選擇 pre-allocated ,也就 是馬上就創建這個vmdk, 我不喜歡split to 2GB,就把默認的打勾給去掉了.因為我的Host OS以及mount filesystem 已經做過優化,我喜歡一個獨立的大文件,你們按照自立的路子來做,不要盲目跟我.

3. 創建好後vmware guest OS之後, 給每一個guest 加上一塊NIC

4. 關掉vmware console, 這個時候你的兩個vmware guest OS都創建好了,分別在n1 n2目錄下面,而且每個都加了1個NIC,硬盤都是LSI, 並且大小10GB,而且都預創建好了,並且沒有分割成2GB一塊

6. 看到很多cluster in vmware的介紹在創建share disk的時候,都是什麼用一個vmware guest OS添 加vmdk然後修改vmx,然後把另外一個vmware guest的vmx再添加進去,我很不喜歡這種套路。我很少用 vmware workstation,所以不知道最新版本是否有vdiskmanager.反正我在gsx裡面一直用vdiskmanager.

ssh到你的 Host OS裡面(現在是我的SLES9SP3). 到 /vmware/rac/rhel4/share下面,運行 vmware-vdiskmanager 創建幾個vmdk. 這裡就有點講究了

如果你在看我的這個文章之前,還沒有搞清楚Oracle RAC的基本結構, raw, ASM, ocfs2的概念,你就不要看下去了,浪費時間.

Oracle RAC 本質上是借鑒了很多Alpha TruCluster的技術,但是也有了很多折衷的設計。 它需要存放OCR, CRS voting 信息的共享空間, 還需要空間給ASM for Oracle data, 所以

在存儲的布局上,有兩種方式,要麼是 raw for OCR, CRS voting , ASM for data, 要麼是 ocfs2 for OCR, CRS voting, ASM for data.

至於以前那種 raw for OCR, CRS voting, CRS for data的做法,我是不考慮了,做做學習用途還可以,用在production環境是給自己吃藥.

所以,如果你選擇第一種,你的vmdk這樣建,

vmware-vdiskmanager 創建 pre-allocated並且是lsi contoller的硬盤 200MB 一個 for raw for OCR

vmware-vdiskmanager 創建 pre-allocated並且是lsi contoller的硬盤 200MB 一個 for raw for CRS voting

vmware-vdiskmanager 創建 pre-allocated並且是lsi contoller的硬盤 1GB 四個, 2個 for ASM Oracle data, 2個for flash recovery area, 你不玩Flash recovery也可以省略掉

如果你選擇第二種,你的vmdk這樣建,

vmware-vdiskmanager 創建 pre-allocated並且是lsi contoller的硬盤 1GB一個 for ocfs2 for OCR + CRS voting

vmware-vdiskmanager 創建 pre-allocated並且是lsi contoller的硬盤 1GB 四個for ASM for Oracle data & Flash recovery area (同上)

raw沒有什麼有意思的,我因為還要在這個環境作其他的test,所以就選擇第二種.

這樣做好後,你的 /vmware/rac/rhel4/share目錄就會產生你剛才創建的這些vmdk了.

7. 分別到 n1和n2的目錄,打開node1.vmx 和node2.vmx, 在最後空白處添加這幾段內容

scsi1.present = "TRUE"

scsi1.virtualDev = "lsilogic"

scsi1.sharedBus = "virtual"

這段是打開 scsi1上的使用,並且設置成virtual, controller設置成lsilogic

然後依次添加

scsi1:1.present = "TRUE"

scsi1:1.mode = "independent-persistent"

scsi1:1.filename = "/vmegg/rac/rhel4/share/ocfs.vmdk"

scsi1:1.deviceType = "plainDisk"

scsi1:2.present = "TRUE"

scsi1:2.mode = "independent-persistent"

scsi1:2.filename = "/vmegg/rac/rhel4/share/asm1.vmdk"

scsi1:2.deviceType = "plainDisk"

scsi1:3.present = "TRUE"

scsi1:3.mode = "independent-persistent"

scsi1:3.filename = "/vmegg/rac/rhel4/share/asm2.vmdk"

scsi1:3.deviceType = "plainDisk"

scsi1:4.present = "TRUE"

scsi1:4.mode = "independent-persistent"

scsi1:4.filename = "/vmegg/rac/rhel4/share/asm3.vmdk"

scsi1:4.deviceType = "plainDisk"

scsi1:5.present = "TRUE"

scsi1:5.mode = "independent-persistent"

scsi1:5.filename = "/vmegg/rac/rhel4/share/asm4.vmdk"

scsi1:5.deviceType = "plainDisk"

這樣就把剛才創建的那幾個vmdk添加好了

最後添加這個

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

這段是對vmware使用共享硬盤的方式進行定義,我經常看到很多同學在裝RHCS in vmware的時候說這個不正常,那個不正常,你們也可以借鑒一下這個配置

大多數人都知道設置 disk.locking ="false" 卻漏掉dataCache

保存退出之後,重新打開你的vmware-console,你就可以看到2個vmware guest OS的配置中,都有這些硬盤出現了.

其實到現在為止還是一個超級簡單的工作.

在你的vmware-console裡面edit config 點進看看,但是不要修改和save. !切記,而且之前修改vmx的時候,關掉你的vmware-console

8. 然後就安裝你的vmware guest OS, 安裝的時候,包選擇default,然後點custom進去加幾個必需的, Development Tools, Legacy Software Development LibrarIEs, Kernel Development, Editor, System tools

9. 配置你的2個網卡的固定IP,hostname, DNS, gateway, time server (NTP)

node1:

hostname node1pub

eth0 192.168.0.11

eth1 10.1.1.1.1

node2

hostanme node2pub

eth0 192.168.0.22

eth1 10.1.1.1.2

gateway, DNS就按照自己的需要配

NTP我強烈建議你們配一個,不知道NTP的,後面有古怪事情不要問我.

10. 安裝結束後,進入guest OS

修改 /etc/hosts

如下

127.0.0.1 localhost (必須要這樣)

192.168.0.11 node1pub

192.168.0.22 node2pub

10.1.1.1 node1prv

10.1.1.2 node2prv

192.168.0.111 node1vip

192.168.0.222 node2vip

兩個node都要一樣.

修改後要確認這個hosts 都正確 (ping)

11. ssh-keygen for root, dsa/rsa 1024bit 我選擇空的 passphase,你可以加你的passphase,但是後面你要ssh-agent $SHELL建立等效,我怕麻煩就省略掉了.

cd ~/.ssh

cat *rsa.pub >> authorized_keys

cat *dsa.pub >> authorized_keys2

copy .ssh/下面這些到 node2 的 ~/.ssh下面

這些都是基本功,我就不廢話了,不熟悉這個的就不要往下看了.

12. 分別在每個node 上做這些事情

ssh localhost

ssh node1pub

ssh node2pub

ssh node1prv

ssh node2prv

13. 這個步驟和RAC沒有關系,但是也是好習慣之一,檢查你的service 狀況,disable掉所有不需要用的service ,騰出resource給你的RAC, 什麼cups之類亂七八糟的.

14. group add dba oinstall 組在兩個node上, 創建Oracle 用戶, 主組oinstall, 附加組是dba和disk

然後和前面執行root ssh的操作完全一樣,執行一次,這步非常重要,漏掉了肯定過不下去.

15. mkdir /u01/app/Oracle 在2個node上

chown -R Oracle.oinstall

chmod -R 775

這個目錄給Oracle和clusterware系統的

mkdir /u02/oradata/orcl

chown -R Oracle.dba

這個目錄給 ocfs2用來裝OCR, CRS voting 的

16. 修改你的 /etc/sysctl.conf ,添加這些kernel 參數,這些都是老一套了,大家應該都很熟悉了

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=262144

net.core.wmem_max=262144

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

17. 修改 ulimits 如果你想要修改的話

vi /etc/sysconfig/limits.conf

Oracle soft nproc 2047

Oracle hard nproc 16384

Oracle soft nofile 1024

Oracle hard nofile 65536

18. 修改 pam.d login

vi /etc/pam.d/login

最後添加 session required /lib/security/pam_limits.so

19. 增加 hancheck-timer 模塊在2個node上

先看一下有沒有 find /lib/modules -name "hangcheck-timer.ko"

然後加上去 echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf

然後把這個模塊調起來 modprobe hangcheck-timer

然後檢查是否工作正常了 grep Hangcheck /var/log/messages | tail -2

看到類似這個的信息就表明工作正常了 Jan 18 01:08:19 n1pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).

20. 安裝ocfs2 , ocfs2的console的rpm

21. 在每個node 上這樣操作

進入X, 然後運行 ocfs2console, 把你的2個node都添加進去

然後編輯 /etc/init.d/o2cb, 刪除掉 靠近配置開頭的那些帶 #的配置行

然後 /etc/init.d/o2cb offline ocfs2

/etc/init.d/o2cb unload ocfs2

/etc/init.d/o2cb configure ocfs2 回答y 就可以了

22. 在一個 node上 mkfs.ocfs2 -b 4k -C 32k -L oradatafiles /dev/sdb1 (就是前面創建的第一個vmdk)

23. 在每個node上

mount -t ocfs2 -o datavolume /dev/sdb1 /u02/oradata/orcl

修改你的 /etc/fstab , 添加 類似這樣的行

/dev/sdb1 /u02/oradata/orcl ocfs2 _netdev,datavolume 0 0

到這裡,我們的ocfs2 for OCR, CRS voting 就OK了

24. 修改 /etc/sysconfig/o2cb

把threshhold 的 值設置成 601

25. 在每個node上

安裝你的 ASMLibs, tools, support 三個rpm文件

然後運行 /etc/init.d/Oracleasm configure

回答 Oracle , dba, y, y 就可以了

26. 創建ASM

在一個node上:

/etc/init.d/Oracleasm createdisk VOL1 /dev/sdc1

/etc/init.d/Oracleasm createdisk VOL2 /dev/sdd1

/etc/init.d/Oracleasm createdisk VOL3 /dev/sde1

/etc/init.d/Oracleasm createdisk VOL4 /dev/sdf1

記住,ASM在linux下面處理的對象是 partition,不是disk, 所以你那些vmdk要Linux 下面partition好才能用,fdisk 就用type 83就可以了

創建好後, 在這個node 上運行 /etc/init.d/Oracleasm listdisks 查看

27, 在另外一個node 上

/etc/init.d/Oracleasm scandisks

/etc/init.d/Oracleasm listdisks 查看

28. 在每個node上

修改 Oracle用戶家目錄下的 .bash_profile

修改成大概這個樣子

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export ORACLE_BASE=/u01/app/Oracle

export ORACLE_HOME=$Oracle_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=$Oracle_BASE/product/crs

export Oracle_SID=orcl1

export PATH=.:${PATH}:$HOME/bin:$Oracle_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/Oracle/bin

export Oracle_TERM=xterm

export TNS_ADMIN=$Oracle_HOME/network/admin

export ORA_NLS10=$Oracle_HOME/nls/data

export LD_LIBRARY_PATH=$Oracle_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$Oracle_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$Oracle_HOME/JRE

export CLASSPATH=${CLASSPATH}:$Oracle_HOME/jlib

export CLASSPATH=${CLASSPATH}:$Oracle_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$Oracle_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

第二個節點的 Oracle_SID=orcl2 其他都一樣

=============步驟二: 安裝Oracle 10gR2 clusterware========

1. unset 一些環境變量

$ unset ORA_CRS_HOME

$ unset Oracle_HOME

$ unset ORA_NLS10

$ unset TNS_ADMIN

檢查你的變量

$ env | grep ORA

Oracle_SID=orcl2

ORACLE_BASE=/u01/app/Oracle

Oracle_TERM=xterm

2. 用Oracle 用戶login , 然後運行你的unzip 之後的那個clusterware目錄下的runInsaller 進入圖形安裝

3. 確認你的安裝目錄是/u01/app/Oracle/product/crs

4. 修改 你的clustername 從crs到一個隨便你想要的名字

然後增加

node1pub node1prv node1vip

node2pub node2prv node2vip

5. 然後指定 eth0 的類型時public

6. 然後制定你的OCR 和mirror

/u02/oradata/orcl/OCRFile

/u02/oradata/orcl/OCRFile_mirror

7. 然後指定你的voting

/u02/oradata/orcl/VotingFile

/u02/oradata/orcl/VotingFile_mirror1

/u02/oradata/orcl/VotingFile_mirror2

8. 然後就開始安裝了,當眾會讓你用完全的root身份在每個節點上運行orainstRoot.sh,你就一個節點一個節點運行,不要搶時間,一個個來

9. 然後要求你在每個節點上用完全的root權限執行 root.sh,你也一樣,一個個來,一定要等一個做好了,然後做另外一個

10. 做第二個時候,如果告訴你你的eth0不是public,你就在第二個節點,用Oracle用戶在 X裡面運行vipca, 然後配置好你的vip 信息(虛擬IP的信息,很容易配的)

11. clusterware 就安裝好了.

確認一下.

$ /u01/app/Oracle/product/crs/bin/olsnodes -n

node1pub 1

node2pub 2

$ ls -l /etc/init.d/init.*

-r-xr-xr-x 1 root root 1951 Oct 4 14:21 /etc/init.d/init.crs*

-r-xr-xr-x 1 root root 4714 Oct 4 14:21 /etc/init.d/init.crsd*

-r-xr-xr-x 1 root root 35394 Oct 4 14:21 /etc/init.d/init.CSSd*

-r-xr-xr-x 1 root root 3190 Oct 4 14:21 /etc/init.d/init.evmd*

===============步驟三: 安裝Oracle 10gR2 database=======

1.1. unset 一些環境變量

$ unset ORA_CRS_HOME

$ unset Oracle_HOME

$ unset ORA_NLS10

$ unset TNS_ADMIN

檢查你的變量

$ env | grep ORA

Oracle_SID=orcl2

ORACLE_BASE=/u01/app/Oracle

Oracle_TERM=xterm

2. 用Oracle用戶,運行你unzip之後的那個database目錄下的runInstaller

3. ORACLE安裝目錄指定到 /u01/app/Oracle/product/10.2.0/db_1

4. 把2個node選擇上

5. 選擇 Install database Software only

6. 會要求你用完全的root權限運行 root.sh ,分別在2個node上一一運行,不要搶時間

7. 安裝完畢

==================步驟四: 配置netca=================

1. Oracle 用戶在一個node上運行 netca

2. 選擇所有node

3. 選擇 Listener configuration

4.添加一個LISTEN, 1521 port

5. 回到開始界面,選擇Naming Methods configuration

6. 把Local Naming和Easy Naming 添加進去.然後結束配置

7. 確認一下

$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'

LISTENER_NODE1PUB

==============步驟五: 配置dbca創建數據庫=============

1. 用Oracle用戶運行 dbca

2. 選擇custom database

3. 輸入數據庫的全局名,比如orcl

4. 給你的系統的不同角色建立密碼,我都選擇same as ....

5. 選擇用ASM管理數據庫

6. 輸入你前面設定的管理員密碼,並把SPFILE 設定成/u02/oradata/orcl/dbs/spfile+ASM.ora

7.進入ASM配置界面, create NEW, 名字叫做DATA

然後下面你會看到你前面創建的4個ASM VOL1-4, 你選擇 1 和2, "Redundancy" 選擇 Normal.

這樣 DATA diskgroup就創建好了

8. 回到ASM界面後. 仍舊選擇create new, 然後名字叫做Flash_RECOVERY_AREA, 選擇第3和4兩個卷,然後"Redundancy" 選擇External

9. 然後OK結束ASM配置

10.Database File Locations 選擇DATA

11. Recovery Configuration 選擇剛才創建的 Flash_RECOVERY_AREA diskgroup

12. 接下來默認的就可以了

13. Database Services 這裡,你選擇Add你一個新的service, 隨便叫名字,比如ractest

然後選擇 TAF Policy,是Basic

14. 開始創建數據庫

===================步驟六: 校驗RAC===============

1.用Oracle用戶login, 運行

$ srvctl status database -d orcl

Instance orcl1 is running on node node1pub

Instance orcl2 is running on node node2pub

2.

$ srvctl status service -d orcl -s ractest

Service orcltest is running on instance(s) orcl2, orcl1

3.

$ srvctl status nodeaPPS -n node1pub

VIP is running on node: node1pub

GSD is running on node: node1pub

Listener is running on node: node1pub

ONS daemon is running on node: node1pub

4.

$ srvctl status asm -n node1pub

ASM instance +ASM1 is running on node node1pub.

5.

$ srvctl config nodeaPPS -n node1pub -a -g -s -l

VIP exists.: /node1vip/192.168.1.111/255.255.255.0/eth0:eth1

GSD exists.

ONS daemon exists.

Listener exists.

6. 運行 sqlplus /nolog

SQL> connect /as sysdba

SQL>

SELECT

inst_id

, instance_number inst_no

, instance_name inst_name

, parallel

, status

, database_status db_status

, active_state state

, host_name host

FROM gv$instance

ORDER BY inst_id;

INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST

-------- -------- ---------- --- ------- ------------ --------- -------

1 1 orcl1 YES OPEN ACTIVE NORMAL node1pub

2 2 orcl2 YES OPEN ACTIVE NORMAL node2pub

7.其他的測試,測試方法n多,你用sqlplus, asmcmd, 或者通過Web進 enterprise manager都可以.

隨便你了.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved