安裝Oracle RAC數據庫前的準備工作

 

安裝Oracle RAC數據庫

1、 安裝前的系統配置需求

       安裝Oracle Rac數據庫需要的組件可以分爲軟硬件兩部分,下面是一個軟硬件推薦配置:

      

       爲了方便安裝RAC數據庫,在安裝操作系統時,建議選擇如下系統包:

l      桌面環境:xwindows systemGNOME desktop environment

l      開發工具:development toolsx software developmentgnome software developmentkde software development

1、 安裝前的系統配置需求

       更詳細的拓撲結構信息,參看下圖:

      

1、 安裝前的系統配置需求

       Oracle Rac數據庫涉及到公用網絡和私有網絡,因此要做網絡劃分和IP地址規劃,下表列出了要安裝的RAC數據庫對應的IP地址、主機名以及網絡連接類型:

兩個節點:兩個實例,對應一個數據庫。

2、設置數據庫安裝資源

       安裝RAC數據庫需要的軟件包分爲三個部分,分別是oracle RAC安裝程序包、Oracle ASMLib工具包以及系統補丁包。這裏Oracle的安裝版本爲oracle11g,詳細的軟件包信息如下:

(1)Oracle 11g Release 1 (11.1.0.6.0)軟件包

       下載地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/111060-linuxsoft-085130.html

軟件包名稱:

linux_11gR1_database_1013.zip

linux_x86_11gR1_clusterware.zip

       軟件包說明:總共需要下載兩個安裝程序,一個是Oracle Rac安裝程序包,另一個是Oracle ClusterWare安裝程序包。

(2)Oracle ASMLib工具包

       下載地址:http://www.oracle.com/technetwork/topics/linux/downloads/rhel5-084877.html

軟件包名稱:

oracleasmlib-2.0.4-1.el5.i386.rpm

oracleasm-2.6.18-194.11.1.el5-2.0.5-1.el5.i686.rpm

oracleasm-support-2.1.3-1.el5.i386.rpm

軟件包說明:這三個軟件包是使用ASM存儲管理方式必須的驅動工具包。

(3)系統補丁包

       下載地址:http://www.idevelopment.info/data/Oracle/DBA_tips/Oracle11gRAC/Install11gR1RACOnCentOS51/RPMS/redhat-release-5-1.0.el5.centos.1.i386.rpm

軟件包名稱:redhat-release-5-1.0.el5.centos.1.i386.rpm

       軟件包說明:由於Centos不在Oracle支持平臺之列,所以安裝檢測時無法通過的,通過安裝這個軟件包,可以使安裝檢測順利通過。

3、配置主機解析文件

       爲了使每個主機間可以正常通信,需要在每個節點上修改本地解析文件,即/etc/hosts文件,在兩個節點上添加如下配置信息:

192.168.12.231          node-rac1

192.168.12.232          node-rac2

192.168.12.230          node-vip1

192.168.12.240          node-vip2

10.10.10.1              node-priv1

10.10.10.2              node-priv2

4、檢查所需軟件包

在每個節點上執行相同的操作:

     執行下面的命令:

         rpm -q make binutils  libaio-devel libaio elfutils-libelf-develcompat-libstdc++-33 libgcc  gcc gcc-c++glibc sysstat libstdc++ libstdc++-devel unixODBC-devel unixODBC

 

       如果出現某個軟件包沒有安裝,請安裝該軟件包。

5、配置系統內核參數

         由於Linux的內核參數信息都存在內存中,可以通過命令直接修改,並且修改後直接生效,但是,當系統重新啓動後,原來設置的參數值就會丟失,而系統每次啓動時都會自動去/etc/sysctl.conf文件中讀取內核參數,因此將內核的參數配置寫入這個文件中,是一個比較好的選擇。

       Oracle對Linux系統內核參數有嚴格的要求,如果設置不當,就會導致安裝失敗,編輯/etc/sysctl.conf文件,修改後的參數配置如下所示:

net.ipv4.ip_forward= 0

net.ipv4.conf.default.rp_filter= 1

net.ipv4.conf.default.accept_source_route= 0

kernel.sysrq = 0

kernel.core_uses_pid= 1

net.ipv4.tcp_syncookies= 1

kernel.msgmnb =65536

kernel.msgmax =65536

net.core.rmem_default= 4194304

net.core.rmem_max= 4194304

net.core.wmem_default= 262144

net.core.wmem_max= 262144

kernel.shmmax =1073741823

kernel.sem = 25032000 100 128

fs.file-max =65536

net.ipv4.ip_local_port_range= 1024 65000

5、配置系統內核參數

       下面簡單講述下常用的幾個內核參數的含義:

l      kernel.shmmax表示單個共享內存段的最大值,以字節爲單位,此值一般爲物理內存一半,不過大一點也沒關係,這裏設定的爲1G

l      kernel.shmmni表示單個共享內存段的最小值,一般爲4KB,即4096bit

l      kernel.shmall:表示可用共享內存的總量,單位是頁,在32位系統上一頁等於4k,也就是4096字節。

l      fs.file-max:表示文件句柄的最大數量。文件句柄表示在linux系統中可以打開的文件數量。

l      net.ipv4.ip_local_port_range:表示端口的範圍,爲指定的內容。

l      kernel.sem:用來設置Linux的信號量。

可以使用以下命令查看:

[root@node-rac1rac]#cat/proc/sys/kernel/sem

250 32000 32 128

對於輸出的這四個值的含義,分別介紹如下:

Ø    SEMMSL:此參數用於控制每個信號集的最大信號數,Oracle建議將SEMMNI設置爲不小於100。

Ø    SEMMNS:此參數用於控制整個Linux系統中信號(而不是信號集)的最大數量。

Ø    SEMOPM:此參數用於控制每個semop系統調用可以執行的信號操作數,Oracle建議將SEMOPM的值設置爲不少於100

Ø    SEMMNI:此內核參數用於控制整個Linux系統中信號集的最大數量,Oracle建議將SEMMNI設置爲不小於100。

 

6、設置 Shell對Oracle用戶的限制

root用戶身份,在每個節點上執行相同的操作。

首先,修改/etc/security/limits.conf,在文件最後添加如下內容:

oracle  soft  nproc 2047

oracle  hard  nproc  16384

oracle  soft  nofile  1024

oracle  hard  nofile 65536

接着,修改/etc/pam.d/login,在文件最後添加如下內容:

session required /lib/security/pam_limits.so

最後,修改/etc/profile,在文件最後添加如下內容:

if [ $USER = "oracle" ]; then

        if [ $SHELL ="/bin/ksh" ]; then

              ulimit-p 16384

              ulimit-n 65536

                else

              ulimit-u 16384 -n 65536

                fi

fi

所有修改完畢,重啓所有Linux系統。

 

7、配置hangcheck-timer內核模塊

root用戶身份執行,在所有節點上做如下配置。

查看模塊是否存在:

[root@node-rac1~]#find /lib/modules -name "hangcheck-timer.ko"

接着,編輯/etc/modprobe.conf

[root@node-rac1~]# vi /etc/modprobe.conf

在文件的末尾加入一行:

options hangcheck-timer hangcheck_tick=30hangcheck_margin=180

然後,將hangcheck-timer模塊配置爲自啓動

[root@node-rac1~]#vi /etc/rc.d/rc.local

在文件的末尾加入一行:

/sbin/modprobe hangcheck_timer

接着,啓動hangcheck:

[root@node-rac1~]# /sbin/modprobehangcheck_timer

最後,檢查hangcheck是否成功啓動:

[root@node-rac1~]#grep hangcheck/var/log/messages | tail -2

Aug 26 19:08:17Mysql1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 30 seconds,margin is 180 seconds).

如果顯示上面輸出信息說明已經成功啓動hangcheck。

 

8、配置系統安全設置

       由於在安裝RAC數據庫時,安裝進程需要在每個節點間傳送數據,這就要求每個節點間是互信任的,因此,最簡單的方式就是關閉系統的安全限制,常用的方式是關閉Linux系統的iptables以及selinux在每個節點上執行相同的操作。

       關閉iptables很簡單,可以直接執行如下命令:

       [root@node-rac1 ~]# iptables –F

       [root@node-rac1 ~]# /etc/init.d/iptables  save

       最後,將selinux禁用即可,也就是修改/etc/selinux/config文件,修改後的內容爲:

       SELINUX=disabled

       SELINUXTYPE=targeted

9、創建Oracle用戶和組

       在安裝進行之前,需要創建兩個用戶組和一個用戶,分別用於oracle安裝和oracle管理,在兩個節點執行相同的操作,操作如下:

[root@node-rac1~]#groupadd –g 1001 dba

[root@node-rac1~]#groupadd –g 1002 oinstall

[root@node-rac1~]#useradd -u 1001 -g oinstall-G dba oracle

然後,給oracle用戶設置密碼:

[root@node-rac1~]# passwd oracle

       最後,確認匿名用戶nobody是否存在於系統中,因爲在安裝完成後nobody用戶需要執行一些擴展任務

[root@node-rac1~]# id nobody

uid=99(nobody)gid=99(nobody) groups=99(nobody)

jesse:需要驗證是否有noboday用戶

這樣,用戶和組創建就完畢了。

10、設置Oracle用戶環境變量

       用文本編輯器vi編輯/home/oracle/.bash_profile文件,在文件最後添加如下內容,這裏以node-rac1爲例,同理,需要在節點node-rac2也執行相同的操作。

exportORACLE_BASE=/u01/oracle

#oracle程序的基本目錄

exportORACLE_HOME=$ORACLE_BASE/product/11.0.6/rac_db

#

exportORA_CRS_HOME=/app/crs/product/11.0.6/crs

exportORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

exportORACLE_SID=racdb1

#第一個節點設置爲racdb1,第二個節點這裏需要設置爲racdb2

exportNLS_LANG=AMERICAN_AMERICA.zhs16gbk

#語言編碼的設置

exportNLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

exportPATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

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

exportPATH=${PATH}:$ORACLE_BASE/common/oracle/bin

exportORACLE_TERM=xterm

exportTNS_ADMIN=$ORACLE_HOME/network/admin

exportORA_NLS10=$ORACLE_HOME/nls/data

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib

exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

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

exportCLASSPATH=$ORACLE_HOME/JRE

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

exportTHREADS_FLAG=native

export TEMP=/tmp

exportTMPDIR=/tmp

10、設置Oracle用戶環境變量

       根據oracle官方的建議,這裏將oracle rac數據庫程序和oracle clusterware軟件安裝在了不同的目錄。“ORACLE_SID”在節點2上應該設置爲“export ORACLE_SID=racdb2”

       設置完畢oracle用戶環境變量後,還需要在兩個節點創建環境變量中指定的安裝目錄,基本操作如下:

[root@node-rac1~]# mkdir -p/u01/oracle/product/11.0.6/rac_db

[root@node-rac1~]# mkdir -p /app/oracrs/product/11.0.6/crs

[root@node-rac1~]# chown -R oracle:oinstall/u01/oracle

[root@node-rac1~]#chown -R oracle:oinstall/app

11、配置節點間SSH信任

       在安裝RAC過程中,OUI程序會使用sshscp命令來執行遠程拷貝操作,將文件從安裝節點拷貝到其它節點上,如果節點間不相互信任,那麼傳輸過程就需要輸入密碼,從而導致安裝失敗,因此必須在所有的節點上爲oracle用戶配置節點間的互信。

   1     在每個節點上創建 RSA密鑰和公鑰

   (1) oracle 用戶登錄

   (2) oracle用戶的根目錄內創建.ssh目錄並設置讀取權限

   [oracle@node-rac1 ~]$ mkdir ~/.ssh

   [oracle@node-rac1 ~]$ chmod 700 ~/.ssh

   (3)使用ssh-keygen命令生成基於SSH協議的RSA密鑰

    [oracle@node-rac1 ~]$ cd ~/.ssh

[[email protected]]$ssh-keygen   -t    rsa

Generatingpublic/private rsa key pair.

Enter file inwhich to save the key (/home/oracle/.ssh/id_rsa):

Enter passphrase(empty for no passphrase):

Enter samepassphrase again:

Youridentification has been saved in /home/oracle/.ssh/id_rsa.

Your public keyhas been saved in /home/oracle/.ssh/id_rsa.pub.

The keyfingerprint is:

dd:69:5a:aa:e6:85:88:a4:07:72:ab:15:7b:3b:4a:77oracle@node-rac1

在提示保存私鑰(key)和公鑰(public key)的位置時,選擇使用默認值,然後依次直接回車即可。

11、配置節點間SSH信任

整合公鑰文件

     (1)以 Oracle 用戶登錄

     (2)在要執行Oracle安裝程序的節點node-rac1 上執行如下操作:

  [oracle@node-rac1 ~] $ cd ~/.ssh

  [oracle@node-rac1 .ssh]$ ssh node-rac1 cat/home/oracle/.ssh/id_rsa.pub >> authorized_keys 

  [oracle@node-rac1 .ssh]$ ssh node-rac2 cat/home/oracle/.ssh/id_rsa.pub >> authorized_keys

  [oracle@node-rac1 .ssh]$ chmod 600 ~/.ssh/authorized_keys

  [oracle@node-rac1 .ssh]$scp authorized_keys  node-rac2:/home/oracle/.ssh/

     這個操作過程是將兩個節點生成的公鑰文件整合爲一個authorized_keys文件,然後進行授權,並將authorized_keys拷貝到另一個節點。

(3)測試SSH互信

   首先在node-rac1節點上執行:

    [oracle@node-rac1 ~]$ ssh node-rac1 date

    [oracle@node-rac1 ~]$ ssh node-rac2 date

    然後在node-rac2節點上執行

    [oracle@node-rac2 ~]$ ssh node-rac1 date

    [oracle@node-rac2 ~]$ ssh node-rac2 date

如果不需要輸入密碼就出現系統當前日期,就說明SSH互信已經配置成功了。

12、配置共享存儲系統

       在講述的這個環境中,共享存儲由一臺ISCSI-target主機來提供,通過以太網,假定將ISCSI-target主機兩塊本地磁盤/dev/sdb/dev/sdc共享給RAC數據庫的兩個節點,由於ISCSI的安裝已經在前面章節進行了詳細講述,這裏不再介紹,然後對兩塊共享磁盤分別劃分了五個分區,每個分區的用途如下表:

       全部操作執行完畢,重啓RAC數據庫的兩個節點。

13、建立和配置raw設備

       關於raw設備的使用,從Centos4版本到Centos5發生了很大變化,在Centos4以前版本中可以通過/etc/sysconfig/rawdevices和/etc/init.d/rawdevices文件來創建和配置raw設備,而在Centos5以後,raw必須要通過 udev來管理raw,並且raw命令的位置從/usr/bin/raw變爲/bin/raw這從安全方面改進了不少,但是仍然兼容之前的配置方式,因此在Centos5版本中配置raw的方法有兩種:

(1)手動建立/etc/sysconfig/rawdevices文件,然後從其它操作系統上拷貝/etc/init.d/rawdevices文件到本機,修改/etc/init.d/rawdevices文件中raw命令的路徑,然後就可以通過/etc/init.d/rawdevices來啓動和關閉 raw文件了。

2)通過udev來管理raw,添加raw設備對應的配置文件爲/etc/udev/rules.d/60-raw.rules

       這裏採用第二種方式來建立和配置raw設備,首先修改/etc/udev/rules.d/60-raw.rules文件,修改完成的內容如下:

ACTION=="add",KERNEL=="sdb5",RUN+="/bin/raw/dev/raw/raw1 %N"

ACTION=="add",KERNEL=="sdb6",RUN+="/bin/raw/dev/raw/raw2 %N"

…………

ACTION=="add",KERNEL=="sdc8",RUN+="/bin/raw/dev/raw/raw9 %N"

ACTION=="add",KERNEL=="sdc9",RUN+="/bin/raw/dev/raw/raw10 %N"

KERNEL=="raw1",OWNER="oracle", GROUP="oinstall", MODE="644"

KERNEL=="raw2",OWNER="oracle", GROUP="oinstall", MODE="644"

KERNEL=="raw3",OWNER="oracle", GROUP="oinstall", MODE="660"

…………

KERNEL=="raw9",OWNER="oracle", GROUP="oinstall", MODE="660"

KERNEL=="raw10",OWNER="oracle", GROUP="oinstall", MODE="660"

 

13、建立和配置raw設備

       然後啓動udev服務生成raw設備:

[root@node-rac1/]# start_udev

Startingudev:                                            [  OK  ]

接着驗證一下raw設備是否生成:

[root@node-rac1/]#  ll /dev/raw/raw*

crw-r--r--1 oracle oinstall 162,  1 Aug 27 00:13/dev/raw/raw1

crw-rw----1 oracle oinstall 162, 10 Aug 27 00:13 /dev/raw/raw10

crw-r--r--1 oracle oinstall 162,  2 Aug 27 00:13/dev/raw/raw2

crw-rw----1 oracle oinstall 162,  6 Aug 27 00:13/dev/raw/raw6

crw-rw----1 oracle oinstall 162,  7 Aug 27 00:13/dev/raw/raw7

……………..

crw-rw----1 oracle oinstall 162,  8 Aug 27 00:13 /dev/raw/raw8

crw-rw----1 oracle oinstall 162,  9 Aug 27 00:13/dev/raw/raw9

從輸出可以看出,raw設備已經生成,並且相關權限也自動加載。

發佈了209 篇原創文章 · 獲贊 23 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章