Jeffrey帶你一步步安裝ORACLE_RAC STEP:ONE

Copyright to Jeffrey.Su


前言:

     文檔編寫日期追溯到13年10月,那時的自己還是一枚學生。基本上是三無人員 。聽老溼說RAC很高大上,遂弄之。那是啥也不太懂 神馬udev 神馬 block 什麼 ASM 等等 。一切從零開始 , 開始網上收集文檔 補充知識 。借鑑了很多文檔 。向開源的前輩致敬! 再說說裝備之簡陋 ,可以稱之爲小米加***。整體裝備 i5 2450 Ram 4G disk 5400/r . @_@

這裏內存是最要命的 官方說明rac 單機 物理內存至少是1.5G 。 都分1.5 的話 再加一個 openfiler 機器不就成蝸牛了嗎? 後通過實踐 virtual box 的共享磁盤還是蠻方便的,就用它了 。 一點一點網上加內存呀  !! 最終 還是弄到 1.5G 囧囧囧 , 之前是各種報錯 。 歷時 一週半 從無到有 測試環境算是出來了 , 但是僅做了簡單的測試 。 Cpu 風扇 都開始 往外吐灰塵了 。 這是什麼節奏呀 @_@ j_0022.gif



文中難免出現紕漏,歡迎大家拍磚 。 j_0017.gif

下面回到正文:


一、配置oracle 11g r2 RAC  

 

1環境介紹:

Node Name

Oracle_SID

Databasename

MEM

OS

OceanI 

oceandb1

   oceandb

1.5G  

Rhel5.4

OceanV   

oceandb2

1.5G

Rhel5.4

這裏系統安裝建議對node2 不是clone system

網絡配置

Node Name

Public IP

Private IP 

Virtual IP 

Scan Name

Scan IP 

解析方式

OceanI 

192.168.1.10

10.10.10.10

192.168.1.11

Ocean-rac

192.168.1.99

hosts

OceanV

192.168.1.20

10.10.10.20

192.168.1.21

 

Oracle 軟件組件

軟件組件

用戶

主組

輔組

主目錄

Oracl基本目/Oracle主目錄

Grid 

grid

oinstall

asmadmin、asmdba、asmoper

/home/grid

/u01/app/grid

/u01/app/11.2.0/grid

Oracle Rac

grid

oinstall

dba、oper、asmdba

/home/oracle

/u01/app/oracle

/u01/app/oracle/product/11.2.0/db_1

存儲組件

存儲組件

文件系統

卷大小

ASM卷組名

ASM 冗餘

Raw 卷名

OCR表決磁盤

ASM

2GB

+CRSV1

External

raw1

數據庫文件

ASM

10GB

+DATEV1

External

raw2

快速恢復區

ASM

5GB

+FRAV1

External

raw3

 在這裏存儲系統使用的是ASM,在 ASM 上存儲 OCR 和表決磁盤文件,具體是存儲在一個名爲 +CRS 的磁盤組中,該磁盤組使用外部冗餘配置,只有一個 OCR 位置和一個表決磁盤位置。ASM 磁盤組應在共享存儲器上創建,大小至少爲 2GB。Oracle 物理數據庫文件(數據、聯機重做日誌、控制文件、存檔重做日誌)將安裝在 ASM 上一個名爲 +DATElv1 的 ASM 磁盤組中,而快速恢復區將在一個名爲 +FRAlv1 的 ASM 磁盤組上創建。

 

2、系統配置:

2.1、安裝oracle RAC所需的linux軟件包:

查看安裝的包

 

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel
rpm -q glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat 
 
 
yum -y install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel


 

 

2.2、網絡配置:

 

分配IP地址:

這裏的 SCAN ip地址必須通過GNS或者DNS來解析的,這裏使用的是DNS解析.其他地址都在hosts文件裏定義。

[root@OceanI ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1OceanI localhost.localdomain localhost
#::1localhost6.localdomain6 localhost6
 
192.168.1.10    OceanI
192.168.1.11    OceanI-vip      #未非配IP
10.10.10.10     OceanI-pri
 
192.168.1.50    OceanV
192.168.1.51    OceanV-vip      #未非配IP
10.10.10.50     OceanV-pri
 
192.168.1.99   Ocean-rac         #未非配IP


 

2.3、集羣時間同步服務:

利用linux本身對時間進行同步

service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf  /etc/ntp.conf.org
rm /var/run/ntpd.pid


這步需要做 否則會影響rac穩定運行

 

 

2.4、創建任務角色劃分操作系統權限組、用戶和目錄:

創建以下 O/S 組:

wKioL1UlR9Dz4-00AAFpOn4hR2Y571.jpg

2.4.1 添加Oracle用戶組

groupadd -g 1001 oinstall
groupadd -g 1002 asmadmin
groupadd -g 1003 asmdba
groupadd -g 1004 asmoper
groupadd -g 1005 dba
groupadd -g 1006 oper


2.4.2添加Oracle用戶

useradd oracle -u 600
useradd grid -u 601


2.4.3  修改Oracle用戶所屬組

useradd -g oinstall -G dba,asmadmin,asmdba,asmoper grid 
useradd -g oinstall -G dba,oper,asmdba oracle


分別在兩節點使用 id grid /id oracle 查看用戶ID、組ID 是否一致[之前未指定用戶ID、組ID]


2.4.4  設置密碼

passwd oracle   (oracle)
passwd grid (grid)


2.5爲 grid 用戶帳戶創建登錄腳本

vi /home/grid/.bash_profile

注:在爲每個 Oracle RAC 節點設置 Oracle 環境變量時,確保爲每個 RAC 節點指定唯一的 Oracle SID。對於此示例,我使用:

OceanI:ORACLE_SID=+ASM1

OceanV:ORACLE_SID=+ASM2

 

ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export TMP=/tmp
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
 
 
source /home/grid/.bash_profile


2.6爲 oracle 用戶帳戶創建登錄腳本

vi /home/oracle/.bash_profile

注:在爲每個 Oracle RAC 節點設置 Oracle 環境變量時,確保爲每個 RAC 節點指定唯一的 Oracle SID。對於此示例,我使用: 

OceanI:ORACLE_SID=oceandb1

OceanV:ORACLE_SID=oceandb2

加入.bash_profile

 

ORACLE_SID=oceandb1; export ORACLE_SID
ORACLE_UNQNAME=oceandb; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export TMP=/tmp
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
source /home/oracle/.bash_profile


 

2.7 創建Oracle 基目錄路徑[兩節點均執行相同操作]:

mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid.oinstall /u01/
mkdir -p /u01/app/oracle
chown -R oracle.oinstall /u01/app/oracle/
chmod -R 775 /u01/


2.8 爲 Oracle 軟件安裝用戶設置資源限制:

A:修改/etc/security/limits.conf文件,加入以下內容:

#add by lcs for oracle
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536


B:vi /etc/pam.d/login ,加入以下內容:

session required pam_limits.so

C:根據您的 shell 環境,對默認的 shell 啓動文件進行以下更改,以便更改所有 Oracle 安裝所有者的 ulimit 設置(注意這裏的示例顯示 oracle 和 grid 用戶):

對於 Bourne、Bash 或 Korn shell,通過運行以下命令將以下行添加到 /etc/profile 文件:

#oracle
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
                ulimit -p 16384
                ulimit -n 65536
        else
                ulimit -u 16384 -n 65536
        fi
        umask 022
fi


2.9 爲 Oracle 配置 Linux 服務器:

配置內核參數:

/etc/sysctl.conf,添加

#kernel.shmall = 2097152(已有可不修改)
#kernel.shmmax = 2147483648(已有可不修改)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
fs.suid_dumpable = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576


/sbin/sysctl -p    #是修改參數立即生效

2.10 配置系統安全設置[兩節點均執行]

iptables -F
/etc/init.d/iptables save
chkconfig iptables off
vim /etc/selinux/config
SELINUX=disabled


2.11 修改tmpfs的大小

umount tmpfs
mount -t tmpfs shmfs -o size=3000m /dev/shm
修改/etc/fstab文件,增加tmpfs大小
vi /etc/fstab
tmpfs                   /dev/shm                tmpfs defaults,size=3G  0 0


2.12 配置RAC 節點以便可以使用 SSH 進行遠程訪問

略………

2.13共享磁盤配置:

[注]:這裏的共享磁盤選擇固定大小 添加方式和添加其他虛擬硬盤方式一樣 這裏不做過多的說明。

wKiom1UlR_6wxGz0AAMkF1efcxY446.jpg

共享磁盤上創建分區:

只創建一個分區,在一個節點上執行即可,如下:


2.14使用u_dev綁定裸設備:

[root@OceanI ~]# vim /etc/udev/rules.d/60-raw.rules 
 
# Enter raw device bindings here.
#
# An example would be:
#   ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
#   ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
 
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
 
KERNEL=="raw1", OWNER=="grid", GROUP=="asmadmin", MODE="660"
KERNEL=="raw2", OWNER=="grid", GROUP=="asmadmin", MODE="660"
KERNEL=="raw3", OWNER=="grid", GROUP=="asmadmin", MODE="660"
KERNEL=="raw4", OWNER=="grid", GROUP=="asmadmin", MODE="660"
然後啓動udev服務生成RAW設備
[root@OceanI /]# start_udev
Starting udev:                                        [OK]
接着驗證udev是否成功生成
[root@OceanI ~]# ls -l /dev/raw
total 0
crw-rw---- 1 grid asmadmin 162, 1 Sep 27 05:04 raw1
crw-rw---- 1 grid asmadmin 162, 2 Sep 27 05:04 raw2
crw-rw---- 1 grid asmadmin 162, 3 Sep 27 05:04 raw3
crw-rw---- 1 grid asmadmin 162, 4 Sep 27 05:04 raw4
 
[root@OceanI ~]# scp /etc/udev/rules.d/60-raw.rules OceanV:/etc/udev/rules.d/60-raw.rules
               # start_udev


 

 

2.15  重新啓動系統

Reboot

檢查之前配置





到這裏基本上環境都準備好了 ,下篇講解 GRID 的安裝 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章