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 dbagroupadd -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”。