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版本上的安裝以及配置。

2. 准備工作

硬件方面:

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

   一台存儲,oracle rac需要使用共享磁盤,仲裁磁盤等。 存儲可以是專業的光纖存儲設備,也可以是NAS存儲,如iscsi,nfs等。

軟件方面:

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

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中非常重要的組件。

  以上軟件包從oracle官網下載

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

檢測操作系統依賴包:

在兩台服務器上分別執行

#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數據庫安裝”,點擊“下一步”,接下來就不截圖了,點擊下一步繼續安裝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM