Oracle 11gR2 RAC 安裝配置

1. 簡介

  Oracle RAC,全稱real application clusters,譯爲「實時應用集羣」, 是Oracle新版數據庫中採用的一項新技術,是高可用性的一種,也是Oracle數據庫支持網格計算環境的核心技術。Oracle RAC主要支持Oracle9i、10g、11g版本,能夠支持24 x 7 有效的數據庫應用系統,在低成本服務器上構建高可用性數據庫系統,而且自由部署應用,無需修改代碼。在Oracle RAC環境下,Oracle集成提供了集羣軟件和存儲管理軟件,爲用戶下降了應用成本。當應用規模須要擴充時,用戶能夠按需擴展系統,以保證系統的性能。本文檔主要描述Oracle 11gR2 RAC上中標麒麟安全操做系統5U6版本上的安裝以及配置。html

2. 準備工做

硬件方面:linux

   至少兩臺服務器,服務器至少有兩塊網卡,其中一塊網卡用於對外提供服務,別一塊網卡用於oracle rac節點之間通訊。 c++

   一臺存儲,oracle rac須要使用共享磁盤,仲裁磁盤等。 存儲能夠是專業的光纖存儲設備,也能夠是NAS存儲,如iscsi,nfs等。shell

軟件方面:數據庫

中標麒麟安全操做系統光盤,用於在服務器上安裝操做系統,以及安裝好系統後,使用光盤安裝oracle 11gR2 依賴的包。vim

Oracle 11gR2 安裝軟件包:安全

wps_clip_image-16034

其中linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip是oracle 11gR2數據庫安裝包,linux.x64_11gR2_grid.zip是oracle網格基礎結構,是oracle rac中很是重要的組件。bash

  以上軟件包從oracle官網下載服務器

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.htmloracle

檢測操做系統依賴包:

在兩臺服務器上分別執行

#rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common

gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21

查看上述軟件包是否都安裝,若是沒有安裝的,把操做系統安裝光盤掛載到服務器上,安裝缺失的包。

安裝操做系統時,兩臺服務器的主機名分別爲rac1和rac2

操做系統設置

設置操做系統IP地址和修改/etc/hosts文件

這樣,在兩臺主機之間能夠直接經過主機名進行訪問

[root@rac1 ~]# vi /etc/hosts

#Public  對外提供服務的IP

192.168.1.171   rac1   rac1.localdomain

192.168.1.173   rac2   rac2.localdomain

#Private 私有IP地址,用於RAC節點間通信

172.168.1.191   rac1-priv  rac1-priv.localdomain

172.168.1.192   rac2-priv  rac2-priv.localdomain

#Virtual  虛擬IP地址

192.168.1.172   rac1-vip  rac1-vip.localdomain

192.168.1.174   rac2-vip  rac2-vip.localdomain

#SCAN

192.168.1.176   rac-cluster rac-cluster-scan

建立oracle用戶和grid用戶

在兩臺服務器上分別執行下列操做

[root@rac1 ~]# groupadd -g 5000 asmadmin

[root@rac1 ~]# groupadd -g 5001 asmdba

[root@rac1 ~]# groupadd -g 5002 asmoper

[root@rac1 ~]# groupadd -g 6000 oinstall

[root@rac1 ~]# groupadd -g 6001 dba

[root@rac1 ~]# groupadd -g 6002 oper

[root@rac1 ~]# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid

#建立grid用戶,這個用戶屬於oinstall組,附加組有asmadmin,asmdba,asmoper

[root@rac1 ~]# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash oracle

#建立oracle用戶,這個用戶屬於oinstall組,附加組有asmadmin,asmdba,asmoper

[root@rac1 ~]# mkdir -p /oracle/app/grid

[root@rac1 ~]# mkdir -p /oracle/app/11.2.0/grid

[root@rac1 ~]# mkdir -p /oracle/app/oracle

[root@rac1 ~]# passwd oracle 

[root@rac1 ~]# passwd grid 

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

[root@rac1 ~]# chmod -R 775 /oracle/app/grid

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

[root@rac1 ~]# chmod -R 775 /oracle/app/11.2.0/grid

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

[root@rac1 ~]# chmod -R 775 /oracle/app/oracle

設置oracle用戶和grid用戶的環境變量

設置oracle用戶環境變量,在兩個節點上執行下列操做,注意兩節點的ORACLE_SID是不一樣的

[oracle@rac1 ~]# vim .bash_profile

# Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME

ORACLE_UNQNAME=RAC; export ORACLE_UNQNAME

ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME

ORACLE_SID=RAC1; export ORACLE_SID  #注意這裏,在主機rac1上,它的實例名爲RAC1

而在rac2主機,它的實例名RAC2

ORACLE_TERM=xterm; export ORACLE_TERM

BASE_PATH=/usr/sbin:$PATH; export BASE_PATH

PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

export CLASSPATH 

設置grid用戶的環境變量,兩個節點都要執行下列操做,但ORACLE_SID是不一樣的

[grid@rac1 ~]# vim .bash_profile

#Grid Settings

CRS_HOME=/oracle/app/11.2.0/grid

ORACLE_BASE=/oracle/app/grid ORACLE_SID=+ASM1  #注意在rac2中,將ORACLE_SID=+ASM2

PATH=$CRS_HOME/bin:$PATH:$Home/bin

export PATH CRS_HOME ORACLE_BASE ORACLE_SID

調整操做系統內核參數

   參數的大小,請根據服務器硬件配置,應用程序訪問具體狀況進行調整。如下參數僅作參考,分別在兩臺機器執行。

編輯/etc/sysctl.conf文件

[root@rac1 ~]# vim /etc/sysctl.conf

fs.file-max = 6815744

kernel.msgmni = 2878

kernel.msgmax = 8192

kernel.msgmnb = 65536

kernel.sem = 250 32000 100 142

kernel.shmmni = 4096

物理內存除以pagesize

kernel.shmall = 1073741824

物理內存的一半

kernel.shmmax = 4294967295

kernel.sysrq = 1

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 3145728

net.ipv4.ip_local_port_range = 9000 65500

vm.min_free_kbytes = 51200

編輯/etc/security/limits.conf

[root@rac1 ~]# vi /etc/security/limits.conf

#oracle數據庫用戶使用資源限制

oracle   soft   nofile    131072

oracle   hard   nofile    131072

oracle   soft   nproc    131072

oracle   hard   nproc    131072

oracle   soft   core    unlimited

oracle   hard   core    unlimited

oracle   soft   memlock    3500000

oracle   hard   memlock    3500000

#grid數據庫用戶使用資源限制

grid   soft   nofile    131072

grid   hard   nofile    131072

grid   soft   nproc    131072

grid   hard   nproc    131072

grid   soft   core    unlimited

grid   hard   core    unlimited

grid   soft   memlock    3500000

grid   hard   memlock    3500000

設置ntp服務器,確保兩個節點的時間一致

登陸節點rac1,備份系統原來的ntp.conf配置文件

wps_clip_image-18877

編輯/etc/ntp.conf配置文件

wps_clip_image-27218

再登陸節點rac2,

編輯/etc/ntp.conf配置文件

wps_clip_image-1873

配置存儲

設置一個iscsi或是光纖存儲磁盤,確保這個磁盤能夠被rac1和rac2兩個節點都發現。

在rac1上執行fdisk命令,對存儲磁盤進行分區,注意只分區不進行格式化的操做。

至少劃分三個分區,分區只須要在一臺機器上操做便可

wps_clip_image-9935

因爲oracle rac 不支持在2.6.32上的內核直接使用ASM,所以,在這裏,將磁盤設置爲裸設備。

編輯/etc/sysconfig/rawdevices,加入以下內容.兩個節點上都作相同的操做

wps_clip_image-19673

在中標麒麟安全操做系統5U8版本上,沒有raw設備的啓動腳本,所以須要建立一個raw設備的啓動腳本,

wps_clip_image-21852

[root@host02 ~]# vim  /etc/init.d/rawdevices

#!/bin/bash

#

# rawdevices       This shell script assignes rawdevices to block devices

#

# chkconfig: 345 56 44

# description: This scripts assignes raw devices to block devices \

#              (such as hard drive partitions). This is for the use \

#              of applications such as Oracle. You can set up the \

#              raw device to block device mapping by editing \

#              the file /etc/sysconfig/rawdevices.

# config: /etc/sysconfig/rawdevices

[ -f /bin/raw ] || exit 0

[ -f /etc/sysconfig/rawdevices ] || exit 0

# Exit if the file just has the default comments.

LC_ALL=C

/bin/egrep -q -v "^ *#" /etc/sysconfig/rawdevices 2>/dev/null || exit 0

. /etc/init.d/functions

function assign_raw()

{

   LC_ALL=C egrep -v '^ *#' /etc/sysconfig/rawdevices |

   while read RAW BLOCK; do

     if [ -n "$RAW" -a -n "$BLOCK" ]; then

         rawdirname=${RAW%/*}

         if [ "$rawdirname" = "/dev" -a -d /dev/raw ]; then

           echo $"  Please correct your /etc/sysconfig/rawdevices:"

           echo $"     rawdevices are now located in the directory /dev/raw/ "

           echo $"  If the command 'raw' still refers to /dev/raw as a file."

           echo $"   you'll have to upgrade your util-linux package"

           exit 0

         fi

         if [ "$rawdirname" = "/dev/raw" -a -f /dev/raw ]; then

           echo $"  Please correct your /etc/sysconfig/rawdevices:"

           echo $"     rawdevices are now located in the directory /dev/raw/ "

           echo $"  If the command 'raw' still refers to /dev/raw as a file."

           echo $"   you'll have to upgrade your util-linux package"

           exit 0

         fi

       echo "           $RAW  -->   $BLOCK";

       raw $RAW $BLOCK

     fi

   done

}

# See how we were called.

case "$1" in

  start)

        # Assign devices

        echo $"Assigning devices: "

        assign_raw

#添加如下兩行(默認不存在),即默認狀況下生成的裸設備爲root全部,

#因此必須修改屬主,不然oracle用戶沒法使用裸設備

        sleep 5

        #chown -R oracle:oinstall /dev/raw/

        chown -R oracle /dev/raw/

        echo $"done"

        ;;

  stop)

        # No action to be taken here

        ;;

  status)

        ID=`id -u`

        if [ $ID -eq 0 ]; then

          raw -qa

        else

          echo $"You need to be root to use this command ! "

        fi

        ;;

  restart|reload)

        $0 start

        ;;

  *)

        echo $"Usage: $0 {start|stop|status|restart}"

        exit 1

esac

exit 0

把rawdevices服務加入系統啓動項,確保每次開機都自動啓動rawdevices服務

#chkconfig rawdevices on

修改raw設備的udev規則

wps_clip_image-29530

把兩個節點的rawdevices服務啓動,查看兩節點是否都已經識別了raw設備。

wps_clip_image-15485

設置libcap.so.1的軟連接:

cd /lib64  && ln -s libcap.so.2.16  libpcap.so.1

3. 安裝oracle 11g grid

    將oracle 11g grid壓縮包解壓到/tmp目錄,解決完,須要在其安裝文件中的all.jdk中加入中文字體,目錄是爲了解決安裝過程亂碼的問題

桌面上新建一個文件夾,fallback,將/usr/share/fonts/zh_CN/TrueType/下面的

zysong.ttf 複製到 fallback 目錄裏.進入 oracle 的安裝源目錄,

database/stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles/,右擊 all.jar,  用歸檔管理器打開,進入 jdk/jre/lib/fonts/,桌面上的 fallback 文件夾拖到進去,最終目錄爲jdk/jre/lib/fonts/fallback/zysong.ttf

wps_clip_image-23217

加好中文字體,all.jar包以下

wps_clip_image-10865

安裝cvuqdisk-1.0.7-1.rpm

wps_clip_image-13964

在root用戶下,執行xhost + ,從新開啓一個終端,執行su - grid,運行grid的安裝文件,

[grid@host01 grid]$ ./runInstaller

wps_clip_image-28886

點擊「下一步」

wps_clip_image-29721

選擇「典型安裝」,點擊「下一步」

wps_clip_image-10784

填寫SCAN的名稱,添加兩個節點的主機名與虛擬IP地址,配置SSH免密碼登陸,點擊「下一步」,

wps_clip_image-1545

安裝程序正在驗證兩節點是否準備好,驗證完畢,點擊「下一步」,

wps_clip_image-4

集羣註冊表存儲類型,選擇「自動存儲管理」,設置SYSASM用戶口令,點擊「下一步」

wps_clip_image-4577

設置磁盤組名,添加磁盤,點擊「下一步」,

wps_clip_image-8717

   選中要添加的磁盤,點擊「下一步」

wps_clip_image-4276

    正在檢查系統安裝配置環境,請等待

wps_clip_image-21994

      開始安裝

wps_clip_image-18100

在第二個節點上執行第一條腳本,兩個節點都執行第二條腳本

4.   Oracle 11gR2 數據庫的安裝

把oracle 11gR2 兩個安裝文件解壓到/tmp目錄,在root用戶下打開終端,執行xhost +命令,再su - oracle用戶,進行oracle 11gR2 安裝文檔的解壓目錄,運行./runInstaller

wps_clip_image-5956

              點擊「下一步」

wps_clip_image-20540

    點擊「下一步」

wps_clip_image-11026

       選擇「建立和配置數據庫」,點擊「下一步」

wps_clip_image-14401

  選擇「服務器類」,點擊「下一步」

wps_clip_image-27340

       選擇「Real Application  Clusters數據庫安裝」,點擊「下一步」,接下來就不截圖了,點擊下一步繼續安裝。

相關文章
相關標籤/搜索