1. 程式人生 > >VM VirtualBox Centos6.5安裝Oracle 11g r2 RAC

VM VirtualBox Centos6.5安裝Oracle 11g r2 RAC

1 RAC基本概念

1.1RAC

RAC是RealApplication Clusters的縮寫,是Oracle資料庫的一個元件。通過使用RAC,Oracle資料庫可跨一組叢集伺服器執行任何打包的或自定義的應用程式,不需對這些應用程式做任何改動。

1.2 ASM

ASM是AutomatedStorage Management的縮寫,是ORACLE公司自行開發的儲存管理軟體,用於替代作業系統所提供的LVM(Logical Volume Manager)來管理儲存和資料檔案。

在Oracle10g版本之前,管理一個大型資料庫成百上千個的資料檔案對資料庫管理員來說是一個既無技術含量又十分枯燥的工作,要求資料庫管理員要熟悉一些系統的LVM的相關知識,做好磁碟規劃,LV的條帶等相關的系統方面的相關操作。

而使用ASM將大大減輕這方面的工作量,資料庫管理員只需要管理少數幾個磁碟組即可。一個磁碟組是ASM管理的一個邏輯單元,由一組磁碟裝置組成。我們可以定義一個磁碟組作為資料庫的預設磁碟組,Oracle會自動管理儲存,包括建立、刪除資料檔案等。Oracle會自動將這些檔案與一個合適的資料庫物件做關聯,這樣我們在管理這些物件時只需要提供物件的名稱,而無需像以前那樣提供詳細的檔名。

2 安裝介紹

2.1說明

本手冊介紹VM VirtualBox虛擬機器Centos 6.5作業系統的Oracle 11g r2rac資料庫安裝

2.2介紹

VM VirtualBox虛擬機器安裝Centos6.5作業系統;

雙網絡卡繫結;

Udev方式建立共享儲存;

Oracle 11g r2rac安裝;

3 系統環境

3.1 硬體環境

硬體名稱

硬體要求

檢查命令

網絡卡

4塊網絡卡

磁碟

2組共享儲存

主機記憶體

3GB

grep MemTotal /proc/meminfo

CPU

1

系統版本

Centos6.5為64位

uname -m

3.2 主機磁碟規劃

磁碟名稱

硬體要求

備註

/boot

500M

/

30G

swap

6G

4 安裝配置

4.1新增虛擬機器共享磁碟

為VM VirtualBox上兩個rac節點分別新增儲存控制器:SATA

cmd命令進入VM VirtualBox安裝目錄,執行以下語句建立共享磁碟

cd C:\Program Files\Oracle\VirtualBox

VBoxManage createhd --filename"D:\VirtualBox VMs\sharedisk\sharedisk01.vdi" --size 10240 --formatVDI --variant Fixed

VBoxManage createhd --filename"D:\VirtualBox VMs\sharedisk\sharedisk02.vdi" --size 10240 --formatVDI --variant Fixed

VBoxManage createhd --filename"D:\VirtualBox VMs\sharedisk\sharedisk03.vdi" --size 10240 --formatVDI --variant Fixed

VBoxManage createhd --filename"D:\VirtualBox VMs\sharedisk\sharedisk04.vdi" --size 10240 --formatVDI --variant Fixed

將建立的共享磁碟新增到虛擬機器節點一

VBoxManage storageattach"gangma1" --storagectl "SATA" --port 1 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk01.vdi" --mtypeshareable

VBoxManage storageattach"gangma1" --storagectl "SATA" --port 2 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk02.vdi" --mtypeshareable

VBoxManage storageattach"gangma1" --storagectl "SATA" --port 3 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk03.vdi" --mtypeshareable

VBoxManage storageattach"gangma1" --storagectl "SATA" --port 4 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk04.vdi" --mtypeshareable

–storagectl “SATA” :在虛擬機器看到的名稱,如果是英文版的,可能名稱不一樣
–port 1 :第一個SATA介面
–device 0 IDE介面的輔盤,主盤為0

啟用啟用共享磁碟

VBoxManage modifyhd "D:\VirtualBoxVMs\sharedisk\sharedisk01.vdi" --type shareable

VBoxManage modifyhd "D:\VirtualBoxVMs\sharedisk\sharedisk02.vdi" --type shareable

VBoxManage modifyhd "D:\VirtualBoxVMs\sharedisk\sharedisk03.vdi" --type shareable

VBoxManage modifyhd "D:\VirtualBoxVMs\sharedisk\sharedisk04.vdi" --type shareable

將建立的共享磁碟新增到虛擬機器節點二

VBoxManage storageattach"gangma2" --storagectl "SATA" --port 1 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk01.vdi" --mtypeshareable

VBoxManage storageattach"gangma2" --storagectl "SATA" --port 2 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk02.vdi" --mtypeshareable

VBoxManage storageattach "gangma2"--storagectl "SATA" --port 3 --device 0 --type hdd --medium"D:\VirtualBox VMs\sharedisk\sharedisk03.vdi" --mtype shareable

VBoxManage storageattach"gangma2" --storagectl "SATA" --port 4 --device 0 --typehdd --medium "D:\VirtualBox VMs\sharedisk\sharedisk04.vdi" --mtypeshareable

啟動VM VirtualBox及虛擬機器,通過fdisk –l檢視磁碟是否新增成功。

4.2關閉防火牆

關閉防火牆及配置重啟後不再開啟,節點二同理操作。

[[email protected] Packages]# service iptablesstop

iptables: Setting chains to policy ACCEPT:filter          [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

[[email protected] Packages]# chkconfig iptablesoff

4.3關閉系統ntp服務

關閉虛擬機器ntp服務,節點二同理操作。

[[email protected] ~]# service ntpd stop

 [[email protected] ~]# chkconfig ntpd off

[[email protected] ~]#  chkconfig --list|grep ntp

ntpd               0:off 1:off 2:off 3:off 4:off 5:off 6:off

ntpdate            0:off 1:off 2:off 3:off 4:off 5:off 6:off

[[email protected] ~]# ll /etc/|grep ntp

drwxr-xr-x. 3 root root       4096 Jun  8  2018ntp

-rw-r--r--. 1 root root       1778 Jul 15  2013 ntp.conf

[[email protected] ~]#  mv /etc/ntp.conf /etc/ntp.conf.bak

4.4網路規劃

業務網絡卡IP:業務IP地址,使用雙網絡卡繫結IP(使用Fabric網絡卡)。

心跳網絡卡IP:心跳IP地址,與業務IP不在同一網段,使用雙網絡卡繫結IP。

VIP:浮動IP地址,與業務網絡卡IP同一網段,作為統一對外服務的IP地址。

SCAN IP:SCAN服務IP地址,與業務網絡卡IP同一網段,供SCAN服務使用。

主機名

業務網絡卡IP

心跳網絡卡IP

VIP

SCAN IP

gangma1

192.168.10.11

10.10.10.11

192.168.10.13

192.168.10.15

gangma2

192.168.10.12

10.10.10.12

192.168.10.14

4.4.1 網絡卡繫結配置

網絡卡繫結採用主-備份策略進行繫結,以節點一(gangma1)為例,節點二同理操作,操作如下

步驟1:以root使用者登入節點一

步驟2:確定網絡卡型別:

#dmesg | grep -i eth

系統顯示如下類似資訊:

e1000 0000:02:01.0: eth0:(PCI:66MHz:32-bit) 00:0c:29:19:41:e9

e1000 0000:02:01.0: eth0: Intel(R) PRO/1000Network Connection

e1000 0000:02:02.0: eth1:(PCI:66MHz:32-bit) 00:0c:29:19:41:f3

e1000 0000:02:02.0: eth1: Intel(R) PRO/1000Network Connection

e1000 0000:02:03.0: eth2:(PCI:66MHz:32-bit) 00:0c:29:19:41:fd

e1000 0000:02:03.0: eth2: Intel(R) PRO/1000Network Connection

e1000 0000:02:04.0: eth3:(PCI:66MHz:32-bit) 00:0c:29:19:41:07

e1000 0000:02:04.0: eth3: Intel(R) PRO/1000Network Connection

e1000: eth0 NIC Link is Up 1000 Mbps FullDuplex, Flow Control: None

8021q: adding VLAN 0 to HW filter on deviceeth0

e1000: eth1 NIC Link is Up 1000 Mbps FullDuplex, Flow Control: None

8021q: adding VLAN 0 to HW filter on deviceeth1

e1000: eth2 NIC Link is Up 1000 Mbps FullDuplex, Flow Control: None

8021q: adding VLAN 0 to HW filter on deviceeth2

e1000: eth3 NIC Link is Up 1000 Mbps FullDuplex, Flow Control: None

8021q: adding VLAN 0 to HW filter on deviceeth3

Bluetooth: BNEP (Ethernet Emulation) ver1.3

如上所示,目前機器存在4塊網絡卡eth0、eth1、eth2、eth3。

檢視所有網絡卡的MAC地址:

# ifconfig -a|grep eth

系統顯示如下類似資訊:

eth0     Link encap:Ethernet  HWaddr00:0C:29:19:41:E9

eth1     Link encap:Ethernet  HWaddr00:0C:29:19:41:F3

eth2     Link encap:Ethernet  HWaddr00:0C:29:19:41:FD

eth3     Link encap:Ethernet  HWaddr00:0C:29:19:41:07

步驟3:配置雙網絡卡繫結

經檢視伺服器有4塊物理網絡卡,做2組網絡卡繫結,繫結後的網絡卡為bond0、bond1。

業務網絡卡IP繫結eth0、eth1 

以root使用者編輯節點一的“/etc/sysconfig/network-scripts/ifcfg-bond0”檔案(如果沒有則為新增),操作如下:

[[email protected] ~]#vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0             #虛擬網絡卡名稱

ONBOOT=yes              #系統啟動時自動啟用該裝置

BOOTPROTO=none         #啟動時不使用任何協議

IPADDR=192.168.10.11      #設定IP地址

NETMASK=255.255.255.0    #設定子網掩碼,若有閘道器,可新增GATEWAY=XXX.XXX.XXX.XXX

BONDING_OPTS="mode=1miimon=200"  #繫結模式

備註:

選項 millmon 是指定隔多長時間來進行鏈路監測,單位是ms。
選項 mode 是表示繫結口的工作模式,有0-7共7種模式,常用的有0和1模式,mode=0表示"round-robin"策略,兩張卡同時工作在負載均衡狀態。mode=1表示"active-backup"策略,兩張卡一用一備的備份狀態。

[[email protected] ~]# vi/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=00:0c:29:19:41:e9

TYPE=Ethernet

UUID=04220184-b986-4ceb-b123-f139ef19d6e2

ONBOOT=yes

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

HWADDR=00:0C:29:19:41:F3

TYPE=Ethernet

UUID=88154470-d34b-4a80-ab8f-2cc681c0522f

ONBOOT=yes

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

心跳網絡卡IP繫結eth2、eth3

以root使用者編輯節點一的“/etc/sysconfig/network-scripts/ifcfg-bond1”檔案(如果沒有則為新增),操作如下:

[[email protected]~]# vi /etc/sysconfig/network-scripts/ifcfg-bond1

DEVICE=bond1

IPADDR=10.10.10.11

NETMASK=255.255.255.0

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

BONDING_OPTS="mode=1miimon=200"

[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2

HWADDR=00:0C:29:19:41:FD

TYPE=Ethernet

UUID=56a69a72-ccb5-4044-9240-f7a8439644b9

ONBOOT=yes

BOOTPROTO=none

MASTER=bond1

SLAVE=yes

[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth3

DEVICE=eth3

HWADDR=00:0C:29:19:41:07

TYPE=Ethernet

UUID=0c593b28-655a-43db-aedd-bb2e99aeee2b

ONBOOT=yes

BOOTPROTO=none

MASTER=bond1

SLAVE=yes

bond網絡卡新增驅動支援,(檔案如果沒有則為新增)

[[email protected] ~]# vi/etc/modprobe.d/bonding.conf

alias bond0 bonding

alias bond1 bonding

[[email protected] ~]# service NetworkManagerstop

[[email protected] ~]# chkconfig NetworkManageroff

重啟網絡卡服務

[[email protected] ~]# service network restart

檢查當前繫結的網絡卡:

[[email protected] ~]# cat/proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.6.0(September 26, 2009)

Bonding Mode: fault-tolerance(active-backup)

Primary Slave: None

Currently Active Slave: eth0

MII Status: up

MII Polling Interval (ms): 200

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:19:41:e9

Slave queue ID: 0

Slave Interface: eth1

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:19:41:f3

Slave queue ID: 0

[[email protected] ~]#  cat /proc/net/bonding/bond1

Ethernet Channel Bonding Driver: v3.6.0(September 26, 2009)

Bonding Mode: fault-tolerance(active-backup)

Primary Slave: None

Currently Active Slave: eth2

MII Status: up

MII Polling Interval (ms): 200

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth2

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:19:41:fd

Slave queue ID: 0

Slave Interface: eth3

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:19:41:07

Slave queue ID: 0

可以通過ifconfig檢視是否配置成功。

4.4.2 主機hosts配置

以節點gangma1為例,gangma2同理配置。

[[email protected] ~]# vi /etc/hosts

#gangma1 netconfig

#main ip

192.168.10.11  gangma1 

#heart ip

10.10.10.11       gangma1-priv 

#vip

192.168.10.13  gangma1-vip 

#gangma2 netconfig

#main ip

192.168.10.12  gangma2           

#heart ip

10.10.10.12    gangma2-priv     

#vip

192.168.10.14  gangma2-vip    

#scan ip

192.168.10.15 gangma-scan

4.5配置時區

RAC中各節點的時區必須設定正確且相同,你需要在安裝前完成各節點作業系統中的時區配置。

以節點gangma1為例,gangma2同理配置。

操作步驟

以root使用者登入RAC各節點。

檢查系統時區,在RAC各節點分別執行如下命令。

[[email protected] ~]# cat /etc/sysconfig/clock

# The time zone of the system is defined by thecontents of /etc/localtime.

# This file is only for evaluation bysystem-config-date, do not rely on its

# contents elsewhere.

ZONE="Asia/Shanghai"

如果時區和現場實際情況不一致,通過tzselect修改時區。

[[email protected] ~]# tzselect

Please identify a location so that time zone rulescan be set correctly.

Please select a continent or ocean.

 1) Africa

 2) Americas

 3)Antarctica

 4) ArcticOcean

 5) Asia

 6) AtlanticOcean

 7) Australia

 8) Europe

 9) IndianOcean

10) Pacific Ocean

11) none - I want to specify the time zone usingthe Posix TZ format.

#?

使用方向鍵進行如下設定:

在“Location”區域框中選擇對應的地區。

在“Country”區域框中選擇對應的國家。

在“time zone”區域框中選擇時區。

輸入“1”(代表Yes),完成配置。

4.6RAC各節點時鐘同步

RAC要求叢集中各節點的時鐘必須同步,時間誤差應控制在1分鐘之內,所以在安裝資料庫前,你必須檢查各節點時鐘是否同步。

操作步驟

以root使用者登入RAC各節點。

檢查時鐘,在RAC各節點分別執行如下命令。

[[email protected] ~]# date

Thu Jun  703:40:00 CST 2018

[[email protected] ~]# date

Thu Jun  703:39:18 CST 2018

若不同步,則需調整。

4.7檢查SWAP

SWAP空間大小和RAM存在著緊密的聯絡,合理的SWAP空間能夠有效的提高Oracle效能,因此安裝作業系統時需要合理的劃分SWAP空間大小。

RAM和SWAP大小關係如下

可獲得RAM

SWAP

1GB~2GB

1.5RAM

2GB~16GB

等於RAM

大於16GB

16GB

檢查swap操作步驟

步驟1: 以root使用者登陸。

步驟2: 檢查伺服器SWAP。

[[email protected] ~]# free

             total       used       free    shared    buffers     cached

Mem:       3072892     316428   2756464          0      19496     99036

-/+ buffers/cache:     197896   2874996

Swap:      6291448          0   6291448

[[email protected] ~]# free

             total       used       free    shared    buffers     cached

Mem:       3072892     314104   2758788          0      18724     98864

-/+ buffers/cache:     196516   2876376

Swap:      6291448          0   6291448

若不滿足上表關係,根據上表進行調整。

4.8檢查共享記憶體

為了保證安裝完成後資料庫能夠執行穩定並且充分發揮Oracle的效能,你需要在安裝前配置作業系統的共享記憶體。“/dev/shm”檔案系統大小要求不能小於節點MEMORY_MAX_TARGET和MEMORY_TARGET引數大小。建議:至少是實體記憶體的80%,若達不到此建議值可進行以下操作調整大小。

操作步驟

步驟1: 以root使用者登陸。

步驟2: 檢查共享記憶體大小,以gangma1為例進行調整。

[[email protected] ~]# df -h /dev/shm/

Filesystem     Size  Used Avail Use% Mounted on

tmpfs          1.5G   72K  1.5G  1% /dev/shm

步驟3: 解除安裝“/dev/shm”檔案系統。

[[email protected] ~]# fuser -m -v /dev/shm/

                    USER        PID ACCESS COMMAND

/dev/shm/:          gdm        2130 ....m pulseaudio

查殺相應的程序後即可解除安裝“/dev/shm”檔案系統

[[email protected] ~]# kill -9 2130

[[email protected] ~]# umount /dev/shm

步驟4: 掛載“/dev/shm”檔案系統。

[[email protected] ~]# mount -t tmpfs shmfs -o size=2g/dev/shm

步驟5:  修改檔案“/etc/fstab”,相關的行修改為以下內容。

 [[email protected] ~]# vi/etc/fstab

tmpfs             /dev/shm                tmpfs   defaults,size=2G        0 0

步驟6: 檢查共享記憶體大小

[[email protected] ~]# df -h /dev/shm/

Filesystem     Size  Used Avail Use% Mounted on

shmfs          2.0G     0  2.0G  0% /dev/shm

4.9配置YUM倉庫

將Centos 6.5的iso兩個檔案(CentOS-6.5-x86_64-bin-DVD1.iso、CentOS-6.5-x86_64-bin-DVD2.iso)拷貝到伺服器上,本次搭建檔案放在/opt目錄下。

建立centos-6.5-dvd1、centos-6.5-dvd2目錄,將CentOS-6.5-x86_64-bin-DVD1.iso、CentOS-6.5-x86_64-bin-DVD2.iso掛載並拷貝到對應的目錄下。

[[email protected] opt]# mkdir /opt/centos-6.5-dvd1

[[email protected] opt]# mkdir /opt/centos-6.5-dvd2

[[email protected] opt]# mount -o loop/opt/CentOS-6.5-x86_64-bin-DVD1.iso /mnt

[[email protected] opt]# cp -r /mnt/* /opt/centos-6.5-dvd1/

[[email protected] opt]# umount /mnt/

[[email protected] opt]# mount -o loop /opt/CentOS-6.5-x86_64-bin-DVD2.iso/mnt

[[email protected] opt]# cp -r /mnt/* /opt/centos-6.5-dvd2/

[[email protected] opt]# umount /mnt/

安裝HTTP服務

[[email protected] opt]# cd /opt/centos-6.5-dvd1/Packages/

安裝httpd包

[[email protected] Packages]# rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm

warning: httpd-2.2.15-29.el6.centos.x86_64.rpm: HeaderV3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...               ########################################### [100%]

    packagehttpd-2.2.15-29.el6.centos.x86_64 is already installed

安裝httpd-tools包

[[email protected] Packages]# rpm -ivhhttpd-tools-2.2.15-29.el6.centos.x86_64.rpm

warning: httpd-tools-2.2.15-29.el6.centos.x86_64.rpm:Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...                ###########################################[100%]

    packagehttpd-tools-2.2.15-29.el6.centos.x86_64 is already installed

建立軟連線

[[email protected] Packages]# ln -s /opt/centos-6.5-dvd1//var/www/html/cent1_yum

[[email protected] Packages]# ln -s /opt/centos-6.5-dvd2//var/www/html/cent2_yum

啟動HTTP服務

[[email protected] Packages]# service httpd start

Starting httpd: httpd: Could not reliably determine theserver's fully qualified domain name, using 192.168.10.11 for ServerName

                                                          [  OK  ]

在本機開啟瀏覽器,輸入

能正常訪問到內容即配置成功。



配置YUM(.repo)檔案

將系統自帶的.repo檔案移動到bak資料夾下並建立centos.repo檔案(名稱可以隨意命名,但要以.repo結尾)

[[email protected] yum.repos.d]#cd /etc/yum.repos.d/

[[email protected] yum.repos.d]# mkdir bak

[[email protected] yum.repos.d]# mv * bak/

mv: cannot move `bak' to a subdirectory of itself,`bak/bak'

 (忽略後面的錯誤提示)

編輯centos.repo檔案如下

[[email protected] yum.repos.d]# vi/etc/yum.repos.d/centos.repo

[Centos-6.5]

name=Centos-6.5

baseurl=http://192.168.10.11/cent1_yum/

       http://192.168.10.11/cent2_yum/

gpgcheck=0

enable=1

測試配置的本地YUM

[[email protected] yum.repos.d]# yum cleanall 

[[email protected] yum.repos.d]# yum list

能夠正常列出rpm包即可。

節點gangma2只需如下配置

[[email protected] ~]# cd /etc/yum.repos.d/

[[email protected] yum.repos.d]# mkdir bak

[[email protected] yum.repos.d]# mv * bak/

mv: cannot move `bak' to a subdirectory of itself,`bak/bak'

(忽略後面的錯誤提示)

[[email protected] yum.repos.d]# vi/etc/yum.repos.d/centos.repo

[Centos-6.5]

name=Centos-6.5

baseurl=http://192.168.10.11/cent1_yum/

       http://192.168.10.11/cent2_yum/

gpgcheck=0

enable=1

4.10 依賴軟體包安裝

本次安裝要求作業系統的核心版本為Centos 6.5,kernel 2.6.32-431.el6.x86_64,以下版本或更高版本的軟體包必須安裝:

binutils-2.*

compat-libstdc++-33*

elfutils-libelf-0.*

elfutils-libelf-devel-*

gcc-4.*

gcc-c++-4.*

glibc-2.*

glibc-common-2.*

glibc-devel-2.*

glibc-headers-2.*

libaio-0.*

libaio-devel-0.*

libgcc-4.*

libstdc++-4.*

libstdc++-devel-4.*

make-3.*

sysstat-7.*

unixODBC-2.*

unixODBC-devel-2.*

compat-libcap*

pdksh*

操作步驟

以root使用者登入RAC各節點。

使用uname -r命令檢視kernel版本。

要求kernel的版本在2.6.32以上。

使用yum命令安裝檢測補丁包:

yum-y install binutils-2.*

yum-y install compat-libstdc++-33*

yum-y install elfutils-libelf-0.*

yum-y install elfutils-libelf-devel-*

yum-y install gcc-4.*

yum-y install gcc-c++-4.*

yum-y install glibc-2.*

yum-y install glibc-common-2.*

yum-y install glibc-devel-2.*

yum-y install glibc-headers-2.*

yum-y install libaio-0.*

yum-y install libaio-devel-0.*

yum-y install libgcc-4.*

yum-y install libstdc++-4.*

yum-y install libstdc++-devel-4.*

yum-y install make-3.*

yum-y install sysstat-7.*

yum-y install unixODBC-2.*

yum-y install unixODBC-devel-2.*

yum-y install compat-libcap*

yum-y install pdksh*

確保以上包都被正確安裝。

如果有無法安裝的軟體包,則你需要獲取相應軟體並手動安裝。

以pdksh軟體包為例:

從http://mirror.centos.org/centos/5/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm下載“pdksh-5.2.14-37.el5_8.1.x86_64.rpm”軟體包。

以root使用者使用二進位制方式上傳“pdksh-5.2.14-37.el5_8.1.x86_64.rpm”軟體包,然後執行如下命令進行安裝:

rpm-ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

4.11配置核心引數

作業系統的核心引數直接關係著資料庫軟體是否能穩定執行,所以在安裝Oracle11g R2資料庫前,你需要先檢查核心引數。

Oracle11g R2在Linux核心引數最小化設定標準要求如下,如果不符合要求請調整。

引數

最小值

備註

SEMMSL

250

-

SEMMNS

32000

定義了作業系統使用者最大可以訪問的訊號量數量。

SEMOPM

100

-

SEMMNI

128

定義了作業系統最大訊號量集的數量。

SHMALL

預設設定,大於4194304

至少設定為4194304。

OS會預設設定,一般不需要修改。

SHMMAX

4294967296

共享記憶體段最大大小,建議實體記憶體90%。比如64G=64*1024*1024*1024*0.9

SHMMNI

4096

定義了作業系統共享記憶體段的最大數量。

FILE-MAX

6815744

-

AIO-MAX-NR

1048576

非同步IO最大程序數。

IP_LOCAL_PORT_RANGE

Minimum:9000

Maximum:65500

-

RMEM_DEFAULT

262144

-

RMEM_MAX

4194304

-

WMEM_DEFAULT

262144

-

WMEM_MAX

1048576

-

修改步驟

以root使用者登入RAC中的各主機。

通過修改檔案“/etc/sysctl.conf”,增加要修改的核心引數值。

[email protected]~]# vi /etc/sysctl.conf

#oracle

fs.file-max= 6815744

fs.aio-max-nr= 1048576

kernel.shmall= 4194304

kernel.shmmax= 2576980377

kernel.shmmni= 4096

kernel.sem= 250 32000 100 128

net.ipv4.ip_local_port_range= 9000 65500

net.core.rmem_default= 262144

net.core.rmem_max= 4194304

net.core.wmem_default= 262144

net.core.wmem_max= 1048576

執行如下命令,確保主機重啟後核心引數配置仍然生效

[[email protected]~]# /sbin/sysctl -p

4.12 配置oracle使用者的shell限制

為了保證資料庫在大資料量的情況下仍然能穩定執行,你需要在作業系統中增加shell對oracle使用者的最大程序數和開啟檔案數的限制。

操作步驟

以root使用者登入RAC中的各主機(gangma2同理配置)。

修改檔案“/etc/security/limits.conf”,追加以下內容。

[[email protected] yum.repos.d]# vi/etc/security/limits.conf

#oracle

oracle           soft   nofile           1024  

oracle           hard   nofile           65536  

oracle           soft   nproc            2047  

oracle           hard   nproc            16384  

grid             soft   nofile           1024  

grid             hard   nofile           65536  

grid             soft   nproc            2047  

grid             hard   nproc            16384  

修改檔案“/etc/pam.d/login”,追加以下內容。

[[email protected] yum.repos.d]# vi/etc/pam.d/login

#oracle

session required   pam_limits.so

修改檔案“/etc/pam.d/su”,追加以下內容。

[[email protected] yum.repos.d]# vi/etc/pam.d/su

#oracle

session required pam_limits.so

修改檔案“/etc/profile”,追加以下內容。

[[email protected] yum.repos.d]# vi /etc/profile

#oracle

if [ $USER = "oracle" ];then 

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

      ulimit -p 16384 

      ulimit -n 65536 

  else 

      ulimit -u 16384 -n 65536 

   fi

      umask 022 

fi

關閉selinux 服務  

[[email protected] oraInventory]# vi/etc/selinux/config

# This file controls the state of SELinuxon the system.

# SELINUX= can take one of these threevalues:

#    enforcing - SELinux security policy is enforced.

#    permissive - SELinux prints warnings instead of enforcing.

#    disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these twovalues:

#    targeted - Targeted processes are protected,

#    mls - Multi Level Security protection.

SELINUXTYPE=targeted

4.13建立組和使用者

Oracle資料庫軟體要使用專門的使用者來進行安裝和執行,所以在安裝前你需要先建立使用者。另外,為了方便共享檔案和共享資源等許可權的統一管理,你還需要為這些使用者建立對應的使用者組。

使用者組

所屬該組的使用者

使用者組描述

oinstall

grid, oracle

Oracle Inventory and Software Owner

dba

grid, oracle

資料庫管理員

asmadmin

grid

Oracle ASM管理組

asmdba

grid, oracle

ASM資料庫管理員組

asmoper

grid

ASM操作員組

oper

oracle

資料庫操作員

操作步驟

以root使用者登入RAC各節點。

分別在RAC各節點上建立相關組:

groupadd -g 700 oinstall

groupadd -g 701 dba

groupadd -g 702 oper

groupadd -g 703 asmdba

groupadd -g 705 asmoper

groupadd -g 706 asmadmin

分別在RAC各節點上建立相關使用者(gangma2同理操作):

[[email protected] ~]# groupadd -g 700 oinstall

[[email protected] ~]# groupadd -g 701 dba

[[email protected] ~]# groupadd -g 702 oper

[[email protected] ~]# groupadd -g 703 asmdba

[[email protected] ~]# groupadd -g 705 asmoper

[[email protected] ~]# groupadd -g 706 asmadmin

--grid使用者:

useradd -u 600 -g oinstall -Gdba,asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c "GridInfrastructure Owner" grid

--oracle使用者

useradd -u 601 -g oinstall -Gasmdba,dba,oper -d /home/oracle -s /bin/bash -c "Oracle SoftwareOwner" oracle

[[email protected] ~]# useradd -u 600 -goinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c"Grid Infrastructure Owner" grid

[[email protected] ~]# useradd -u 601 -goinstall -G asmdba,dba,oper -d /home/oracle -s /bin/bash -c "OracleSoftware Owner" oracle

分別在RAC各節點上相關使用者設定密碼:

[[email protected] ~]# passwd oracle

[[email protected] ~]# passwd grid

建立安裝目錄

在安裝資料庫軟體前,你需要根據規劃建立目錄並對目錄進行賦權。

操作步驟

以root使用者登入RAC各節點(gangma2同理操作)。

建立檔案系統:

mkdir -p /u01/11.2.0/grid_1

mkdir -p /u01/app/grid

mkdir -p /u01/app/oracle/product/11.2.0/db_1

[[email protected] ~]# mkdir -p /u01/11.2.0/grid_1

[[email protected] ~]# mkdir -p /u01/app/grid

[[email protected] ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1

賦予目錄正確的許可權。

chown -R grid:oinstall /u01

chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

[[email protected] ~]# chown -R grid:oinstall/u01

[[email protected] ~]# chown -R oracle:oinstall/u01/app/oracle

[[email protected] ~]# chmod -R 775 /u01

4.14設定使用者環境變數

安裝Oracle資料庫軟體前需設定使用者環境變數,包括oracle使用者和grid使用者的環境變數都需要設定。

4.14.1設定Oracle使用者環境變數

oracle使用者的環境變數包括資料庫軟體的安裝目錄、執行目錄、例項名和字符集等引數。設定了oracle使用者的環境變數,作業系統才知道資料庫軟體裝在哪裡以及在哪裡執行資料庫命令等資訊。

操作步驟

以oracle使用者通過VNC登入RAC各節點。

環境變數設定如下所示:

[[email protected] ~]$ vi .bash_profile

#ORACLE_SID

ORACLE_SID=gangma1; export ORACLE_SID

#ORACLE_UNQNAME

ORACLE_UNQNAME=gangma; export ORACLE_UNQNAME

#ORACLE_BASE

ORACLE_BASE=/u01/app/oracle;export ORACLE_BASE

#ORACLE_HOME

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

#JAVA_HOME

JAVA_HOME=$ORACLE_HOME/jdk;export JAVA_HOME

#ORACLE_TERM

ORACLE_TERM=xterm;export ORACLE_TERM

#NLS_DATE_FORMAT

NLS_DATE_FORMAT="YYYY-MM-DDHH24:MI:SS"; export NLS_DATE_FORMAT

#TNS_ADMIN

TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN

#ORA_NLS11

ORA_NLS11=$ORACLE_HOME/nls/data;export ORA_NLS11

# PATH

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

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

PATH=${PATH}:/u01/app/common/oracle/bin

exportPATH

#LD_LIBRARY_PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

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

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

exportLD_LIBRARY_PATH

#CLASSPATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

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

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

exportCLASSPATH

#THREADS_FLAG

THREADS_FLAG=native;export THREADS_FLAG

# TEMP,TMP, and TMPDIR

exportTEMP=/tmp

exportTMPDIR=/tmp

# UMASK

umask 022

sttyerase ^H

注:節點gangma2配置檔案中ORACLE_SID=gangma2。

重新以oracle身份登入,使環境變數生效。

執行env或者下面的命令,確認環境變數已生效:

[[email protected] ~]$cd $ORACLE_HOME

[orac[email protected] ~]$cd $ORACLE_BASE

[[email protected] ~]$echo $ORACLE_SID

4.14.2設定grid使用者環境變數

grid使用者的環境變數包括Grid軟體的安裝目錄、執行目錄、例項名和字符集等引數。設定了grid使用者的環境變數,作業系統才知道Grid軟體裝在哪裡以及在哪裡執行叢集命令等資訊。

操作步驟

以grid使用者登入RAC各節點。

[[email protected]~]$ vi .bash_profile

環境變數設定如下所示:

#ORACLE_SID

ORACLE_SID=+ASM1; export ORACLE_SID

#ORACLE_BASE

ORACLE_BASE=/u01/app/grid;export ORACLE_BASE

#ORACLE_HOME

ORACLE_HOME=/u01/11.2.0/grid_1;export ORACLE_HOME

#JAVA_HOME

JAVA_HOME=$ORACLE_HOME/jdk;export JAVA_HOME

#ORACLE_PATH

ORACLE_PATH=$ORACLE_HOME/common/oracle/sql;export ORACLE_PATH

#ORACLE_TERM

ORACLE_TERM=xterm;export ORACLE_TERM

#NLS_DATE_FORMAT

NLS_DATE_FORMAT="YYYY-MM-DDHH24:MI:SS"; export NLS_DATE_FORMAT

#TNS_ADMIN

TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN

#ORA_NLS11

ORA_NLS11=$ORACLE_HOME/nls/data;export ORA_NLS11

# PATH

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

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

PATH=${PATH}:/u01/app/common/oracle/bin

exportPATH

#LD_LIBRARY_PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

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

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

exportLD_LIBRARY_PATH

#CLASSPATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

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

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

exportCLASSPATH

#THREADS_FLAG

THREADS_FLAG=native;export THREADS_FLAG

# TEMP,TMP, and TMPDIR

exportTEMP=/tmp

exportTMPDIR=/tmp

# UMASK

umask 022

注:節點gangma2配置檔案中ORACLE_SID=+ASM2。

重新以grid身份登入,使環境變數生效。

執行env命令或下述命令測試,確認環境變數已生效:

[[email protected] ~]$cd $ORACLE_HOME

[[email protected] ~]$cd $ORACLE_BASE

[[email protected] ~]$echo $ORACLE_SID

4.15UDEV模式繫結共享

共享LUN在給Oracle資料庫使用之前,需要在RAC各節點上做相關的繫結操作。

以root使用者登入RAC各節點(節點gangma2同理操作)。

使用fdisk看看當前連線的LUN。

[email protected] ~]#fdisk -l

Disk /dev/sda:42.9 GB, 42949672960 bytes

255 heads, 63sectors/track, 5221 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x000225ac

   Device Boot      Start         End      Blocks  Id  System

/dev/sda1   *          1          64      512000  83  Linux

Partition 1 doesnot end on cylinder boundary.

/dev/sda2              64        5222   41430016   8e  Linux LVM

Disk /dev/sdb:10.7 GB, 10737418240 bytes

255 heads, 63sectors/track, 1305 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x00000000

Disk /dev/sdc:10.7 GB, 10737418240 bytes

255 heads, 63sectors/track, 1305 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x00000000

Disk /dev/sdd:10.7 GB, 10737418240 bytes

255 heads, 63sectors/track, 1305 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x00000000

Disk /dev/sde:10.7 GB, 10737418240 bytes

255 heads, 63sectors/track, 1305 cylinders

Units = cylindersof 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x00000000

Disk/dev/mapper/vg_group-lv_root: 36.0 GB, 35978739712 bytes

255 heads, 63sectors/track, 4374 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x00000000

Disk/dev/mapper/vg_group-lv_swap: 6442 MB, 6442450944 bytes

255 heads, 63sectors/track, 783 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Disk identifier:0x00000000

從上面輸出可以看到,除sda分割槽外,sdb-sde都是掛上去的lun。

使用指令碼檢視LUN的uuid號並寫入檔案。

for i in b c d e;

do

echo "KERNEL==\"sd*\",BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id--whitelisted --replace-whitespace --device=/dev/sd$i`\",NAME=\"asm-disk$i\", OWNER=\"grid\",GROUP=\"asmadmin\", MODE=\"0660\""       >>/etc/udev/rules.d/99-oracle-asmdevices.rules

done

檢視是否配置成功

[[email protected] ~]# cat/etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="36000c295fb4213be2012fb7c162521f2",NAME="asm-diskb", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="36000c29ca5e414fc4f79a28190204314",NAME="asm-diskc", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="36000c2906dd1c49260ee5ba38ca90900",NAME="asm-diskd", OWNER="grid", GROUP="asmadmin",MODE="0660"

KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name", RESULT=="36000c29fd1589c37fa715ec1e6c50cbd",NAME="asm-diske", OWNER="grid", GROUP="asmadmin",MODE="0660"

用root執行/sbin/start_udev。

[[email protected] ~]# start_udev

Starting udev:                                            [  OK  ]

檢查磁碟繫結結果

[[email protected] ~]# ls -l /dev/asm*

brw-rw----. 1 grid asmadmin 8, 16 Jun  7 05:31 /dev/asm-diskb

brw-rw----. 1 grid asmadmin 8, 32 Jun  7 05:31 /dev/asm-diskc

brw-rw----. 1 grid asmadmin 8, 48 Jun  7 05:31 /dev/asm-diskd

brw-rw----. 1 grid asmadmin 8, 64 Jun  7 05:31 /dev/asm-diske

注意看許可權,類似上面則繫結成功。

為了使udev自動生效,修改如下檔案/etc/rc.d/rc.local

將udev啟動加入到該檔案中即可。

[[email protected] ~]# vi /etc/rc.d/rc.local

/sbin/start_udev

4.16安裝grid軟體

Oracle11g R2採用Grid軟體進行叢集管理,所以在以RAC方式安裝資料庫之前,你需要先安裝Grid軟體。

我的安裝檔案上傳到gangma1節點的opt目錄下,執行如下命令,賦予許可權,解壓縮安裝檔案。

[[email protected] opt]# chmod 777 /opt

[[email protected] opt]# su - oracle

[[email protected] ~]$ cd /opt

[[email protected] opt]$ unzipp13390677_112040_Linux-x86-64_1of7.zip

[[email protected] opt]$ unzipp13390677_112040_Linux-x86-64_2of7.zip

[[email protected] opt]$ exit

logout

[[email protected] opt]# su - grid

[[email protected] ~]$ cd /opt/

[[email protected] opt]$ unzipp13390677_112040_Linux-x86-64_3of7.zip

以root登入主機,執行xhost +命令授權grid命令執行進行安裝。

[[email protected] opt]# xhost +

access control disabled, clients canconnect from any host

切換到grid進行安裝

[[email protected] opt]# su – grid

[[email protected] ~]$ cd /opt/grid/

[[email protected] grid]$ ./runInstaller

在彈出的安裝介面選擇“Skip software updates”,單擊“Next”,如下圖所示,忽略軟體更新。

選擇“Install and Configure Oracle Grid infrastructure for a Cluster”,單擊“Next”,如下圖。

選擇“Advanced Installation”,單擊“Next”,如下圖。

指定安裝語言,選擇English,單擊“Next”,如下圖。

配置叢集資訊,如下圖所示。

配置說明:

Cluster Name:叢集名稱,比如:gangma-cluster

SCAN Name:SCAN名稱,比如:gangma-scan

該名稱需與“/etc/hosts”檔案中的配置一致。

SCAN Port:SCAN埠號,埠範圍1500~1600,例如:1521

完成配置後,不勾選“Configure GNS”,單擊“Next”。

配置叢集節點,如下圖所示。

配置說明:

單擊“Add”,可以新增其他的節點。

單擊“Edit”,可以修改已有的節點。

在“Public Hostname”中填寫/etc/hosts中配置的“hostname”。