数据库:

P10404530_112030_linux-x86-64_1of7.zip

P10404530_112030_linux-x86-64_2of7.zip

集群件(11G中的GRID):

P10404530_112030_linux-x86-64_3of7.zip

这三个包

操作系统:

Redhat6.3


1        安装准备

1.1  安装操作系统PATCHES

1.1.2       安装PATCHES

yum install -y inutils compat* glibc ksh-*libaio* libgcc libstdc++ make gcc* glibc-devel libaio-devel libstdc++ sysstatglibc* libstdc++ elfutils-libelf-devel rpm -ivh --nodeps --forcebinutils-2.20.51.0.2-5.34.el6.x86_64.rpm

rpm -ivh --nodeps --forcecompat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

rpm -ivh --nodeps --forceglibc-2.12-1.80.el6.x86_64.rpm

rpm -ivh --nodeps --force ksh-*.rpm

rpm -ivh --nodeps --forcelibaio-0.3.107-10.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibgcc-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibstdc++-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forcemake-3.81-20.el6.x86_64.rpm

rpm -ivh --nodeps --forcecompat-libcap1-1.10-1.x86_64.rpm

rpm -ivh --nodeps --forcegcc-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forcegcc-c++-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forceglibc-devel-2.12-1.80.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibaio-devel-0.3.107-10.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibstdc++-devel-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forcesysstat-9.0.4-20.el6.x86_64.rpm

rpm -ivh --nodeps --forcecompat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

rpm -ivh --nodeps --forceglibc-2.12-1.80.el6.x86_64.rpm

rpm -ivh --nodeps --forceglibc-devel-2.12-1.80.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibaio-0.3.107-10.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibaio-devel-0.3.107-10.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibgcc-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibstdc++-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forcelibstdc++-devel-4.4.6-4.el6.x86_64.rpm

rpm -ivh --nodeps --forceelfutils-libelf-devel-0.152-1.el6.x86_64.rpm

1.2  主机网络配置

主机网络设置检查:hosts文件系修改、网卡IP配置。

1.        编辑hosts文件,将如下内容添加到hosts文件中,指定Public IPVIPPrivate IP

2.        Vi /etc/hosts

172.16.64.129            rac1

172.16.64.130            rac2

 

10.10.10.10           racpriv1

10.10.10.11           racpriv2

 

172.16.64.131           racvip1

172.16.64.132           racvip2

 

172.16.64.133           scanip

 

192.168.8.181   rac1

192.168.8.182   rac2

 

192.168.1.10    racpriv1

192.168.1.20    racpriv2

 

192.168.8.184   racvip1

192.168.8.185   racvip2

 

192.168.8.190   scanip

3.        网卡的IP地址已经在系统安装过程中配置完成,可以使用如下命令检查IP配置情况:#ifconfig

 

1.3  安装任务

1.3.1       创建操作系统组和用户

在两个节点创建相应的操作系统组和用户,先创建组,然后创建用户:

root用户使用如下命

groupadd -g 1301 asmadmin

groupadd -g 1302 asmdba

groupadd -g 1303 asmoper

groupadd -g 1304 oinstall

groupadd -g 1305 dba

useradd -u 1300 -g oinstall -G asmadmin,asmdba,asmoper grid

useradd  -u 1310 -g oinstall -G dba,asmdba oracle

使用passwd命令为grid(密码:grid)和oracle(密码:oracle)账户设置密码。

#passwd jsepc01!

#passwd jsepc01!

 

1.3.2       创建软件安装目录结构并更改权限

在两个节点创建相应的目录改变属主并改变权限

root用户使用如下命

mkdir /grid

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

mkdir -p /u01/app/grid/11.2.0

chown -R grid:oinstall /u01

chown -R grid:oinstall /grid

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

chmod -R 775 /u01

 

1.3.3       修改用户概要文件

在两个节点上分别修改

grid用户.bash_profile

添加如下内容:

exportORACLE_BASE=/u01/app/grid

exportORACLE_HOME=/u01/app/11.2.0/grid

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

 

oracle用户.bash_profile

添加如下内容:

exportORACLE_BASE=/u01/app/oracle

exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

exportPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

 

1.3.4       修改限制条件

在两个节点上分别执行,以root用户进行编辑

vim /etc/security/limits.conf

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

 

1.3.5       修改内核参数关闭所有节点防火墙

root用户在两个节点分别编辑

vim /etc/sysctl.conf

 

添加内容:

kenel.shmmni = 4096

kenel.sem = 25032000100128

fs.aio-max-nr = 1048576

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 900065500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

vm.hugetlb_shm_group = 501


root用户关闭两个节点防火墙:

#Service iptables status

#Service iptables stop

 

1.3.6       配置互信

[grid@rac1 ~]# rm -rf $HOME/.ssh  两个节点都要执行

rm -rf /root/.ssh

集群软件解压之后

cd/grid/grid/sshsetup

[grid@rac1 sshsetup]$ pwd

/u01/grid/grid/sshsetup

 

此步骤只要在一个节点上执行

 [grid@rac1sshsetup]$ ./sshUserSetup.sh -user  grid-hosts "rac1 rac2" -advanced -noPromptPassphrase

 

此步骤只要在一个节点上执行

[grid@rac1 sshsetup]$ ./sshUserSetup.sh -user oracle-hosts "rac1 rac2" -advanced noPromptPassphrase

 

两个用户(Grid和Oracle)都要验证互信

ssh rac1 date

ssh racpriv1 date

ssh rac2 date                                       

ssh racpriv2 date

没有提示输入密码则成功

 

1.3.7       存储分区(在一个节点上执行)

所有规划的设备进行分区,例如在节点1上对sdc盘进行划盘:

[root@rac1~]# fdisk /dev/sdc                

WARNING: DOS-compatible mode is deprecated.It's strongly recommended to

        switch off the mode (command 'c') and change display units to

sectors (command 'u').

 

Command (m for help): p

 

Disk /dev/sde: 536.9 GB, 536870912000 bytes

255 heads, 63 sectors/track, 65270cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

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

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

Disk identifier: 0x000d60dc

 

  Device Boot      Start         End      Blocks  Id  System

 

Command (m for help): n

Command action

  e   extended

  p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-65270, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G}(1-65270, default 65270):

Using default value 65270

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

所有节点同步分区

Partprobe

注意:本例的存储是按照一般情况来配置的,实际划分请根据情况而定。

 

1.3.8       绑定裸设备

root用户两个节点都需执行:

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 withmajor 8, minor 1.

#for ocr_voting

ACTION=="add",KERNEL=="sdc1",RUN+="/bin/raw/dev/raw/raw1 %N"

ACTION=="add",KERNEL=="sdc2",RUN+="/bin/raw/dev/raw/raw2 %N"

ACTION=="add",KERNEL=="sdd1",RUN+="/bin/raw/dev/raw/raw3 %N"

ACTION=="add",KERNEL=="sdd2",RUN+="/bin/raw/dev/raw/raw4 %N"

ACTION=="add",KERNEL=="sde1",RUN+="/bin/raw/dev/raw/raw5 %N"

ACTION=="add",KERNEL=="sde2",RUN+="/bin/raw/dev/raw/raw6 %N"

ACTION=="add",KERNEL=="sdf1",RUN+="/bin/raw/dev/raw/raw7 %N"

ACTION=="add",KERNEL=="sdf2",RUN+="/bin/raw/dev/raw/raw8 %N"

KERNEL=="raw[1-8]", OWNER="grid",GROUP="asmadmin", MODE="0660"

 

重启 UDEV

# /sbin/start_udev

 

验证:

[root@db1 rules.d]# ll /dev/raw

total 0

crw-rw---- 1 grid asmadmin 162,  1 Jul 28 15:19 raw1

crw-rw---- 1 grid asmadmin 162,  2 Jul 28 15:19 raw2

crw-rw---- 1 grid asmadmin 162,  3 Jul 28 15:19 raw3

crw-rw---- 1 grid asmadmin 162,  4 Jul 28 15:19 raw4

crw-rw---- 1 grid asmadmin 162,  5 Jul 28 15:19 raw5

crw-rw---- 1 grid asmadmin 162,  6 Jul 28 15:19 raw6

crw-rw---- 1 grid asmadmin 162,  7 Jul 28 15:19 raw7

crw-rw---- 1 grid asmadmin 162,  8 Jul 28 15:19 raw8

crw-rw---- 1 root disk     162, 0 Jul 28 15:19 rawctl

2        安装Grid

节点1用GRID用执行:

[grid@rac1grid]$ ./runI*

wKiom1SFRyeSeT1FAAEpKaxqWS4188.jpg

wKiom1SFR6-QxrSgAAECB0_cFwY195.jpg

wKioL1SFSE7CJjDtAAEEK92P5nA500.jpg

wKioL1SFSF7DVbj2AAEmTypIyu0647.jpg

 

wKioL1SFSG7CL_7zAAEoZNR-vS0802.jpg

注:在上图的SCAN name中,填写在/etc/hosts中定义的scan名字在配置网络增强界面时,规划好的集群名、SCAN名,SCAN端口,不勾选ConfigureGNS(GNS需要DHCP服务器配合,本次部署无DHCP服务器):

本例中我们使用的是/etc/hosts解析,所以直接填写scanip,即可。

Next:   

 

wKiom1SFR-ixSnxdAAHMqWJm1Wo600.jpg

 

wKioL1SFSKPwFiOmAAHS13mCNfc233.jpg

wKioL1SFSL6hEsu1AAGADCz2kXI833.jpg

wKiom1SFSGzgpr6_AAGHL-c_Of4049.jpg

wKiom1SFSHXBtetkAAFQYfqXlZk088.jpg

wKioL1SFSRKiIHp7AAGm-5pWpic557.jpg

wKioL1SFSWXB_-BzAAGOJcaN9Cc334.jpg

wKioL1SFSW7gEjDpAAEuDlkDfZ4734.jpg

wKiom1SFSOXgYeu2AAFVkiXRBSM835.jpg

wKiom1SFSPTB8D7VAAGZe2oEalg479.jpg

wKioL1SFSfqwgCciAAGHgFLi_TQ107.jpg

wKiom1SFSXHS1A9TAAE5Zlq4eyE034.jpg

wKioL1SFSg2DedclAAHJjT78cgk194.jpg

wKiom1SFSZji0FsnAAHSHFYmlMA453.jpg


wKiom1SFSarioWX7AAHWt2F6bjU292.jpgwKioL1SFSj2i3zKYAAHjv42Vq78341.jpg

注:执行上述脚本千万要注意顺序

先在节点1和节点2执行:

/u01/app/oraInventory/orainstRoot.sh

其次在节点1和节点2执行:

/u01/app/11.2.0/grid/root.sh

如下图:


wKiom1SFSgzg7EQaAADOjV1Brlg708.jpgwKioL1SFSqCQYCFhAAHnC5xeCdI301.jpg

执行成功后点继续:

wKioL1SFSrHD5y85AAHmqRHOYzc294.jpg

如有上述两个错误可以忽略。

wKiom1SFSiaQDOWWAAEDSwgscF0346.jpg

点击Close安装完成。

 

3        安装数据库软件
 

这里只安装数据库软件,之后再用dbca命令建立集群实例。安装完database软件后,需要建立ASM磁盘组。

使用oracle用户登录进行安装。

wKiom1SFTkLBX-I8AAEi2cdQ1Vw984.jpgwKioL1SFTtWCMpd3AAFOQKA7odI304.jpg

选择不接收更新,Next

 

wKiom1SFTljhTVeoAAEaRSj0J5A567.jpg

选择只安装数据库软件,Next

 

wKioL1SFTvaRHO8MAAFUBTTMdUo366.jpg

选择real application cluster database installlation,然后选中所有的节点,Next

 

wKiom1SFTnfBxLzdAAFH_SA9nEo001.jpg

wKioL1SFTw_QWEpcAAFcovh41gw602.jpg

 

选择数据库版本:Enterprise EditionNext

 

wKioL1SFTxzReW4kAAFYNwLYazI109.jpg

选择安装目录,Next

 

wKioL1SFT2zSw7T0AAE-xsVQVOY942.jpg

Next

 wKiom1SFTu3DbuYMAAD9fR4Ri3o552.jpg

开始执行安装前检查

 

wKioL1SFT77iNYXnAAGVH-n_pqY699.jpg

点击Ignore all继续安装。

wKiom1SFTzXD-OMUAAFUWDyAkOc647.jpg

点击Install进行安装:

 

wKiom1SFTz2jfbpHAAF96zEVpKI936.jpg

 

wKioL1SFT9zDe9jCAAGjdiOHu-U690.jpg

安装进度大概至94%时,提示需要运行相关脚本,按要求顺序执行,正确执行完毕后点击:OK

wKioL1SFT_-CzhInAADgOg8i0AY188.jpg

关闭窗口,完成database的安装。

4        创建ASM磁盘组

在建库前需要先创建存储数据文件的ASM磁盘组。以grid用户登录,执行asmca命令:

wKioL1SFUF-REH1PAAB6nI5dOMU850.jpg

弹出如下对话框:、

wKiom1SFT9jgu0MeAAEqr6nJEEc584.jpg

 切换到Disk Group界面,点击Create

wKioL1SFUHTRfjybAAIBHIUxh6M509.jpg

这里我们只选择raw5作为数据文件存放位置,各现场根据自身情况选择。

wKiom1SFT-igYctqAAG90yZ2vuw166.jpg

完成后如上图:

 

继续选择create创建闪回恢复区存放位置,如下图:

wKioL1SFUISiqDVeAAIERZviVeE306.jpg

这里选择raw3

wKiom1SFT_iAGc48AAGpUyez_30934.jpg

 

创建完成后如下图:

wKioL1SFUJWiFB9-AAFMX3A88h8081.jpg

5        DBCA创建数据库

使用oracle用户,运行dbca来建立RAC集群实例。

$dbca

wKioL1SFURSiz9IYAAEmuf61Ju0758.jpg

选择建立RAC数据库,Next

wKioL1SFUSPRQGDoAAEGk-JFa-I982.jpg

wKiom1SFUJjTiXrUAAFLccy-gwU967.jpg

Next

wKiom1SFUKGCrddaAAGc4sHaDvU830.jpg

Next

 

wKioL1SFUTvyF01ZAAEPltzKwhM663.jpg

wKiom1SFUMfSYQ35AAEbYx1OlDE166.jpg

 

wKioL1SFUWORX4lVAAF4wbQx94k845.jpg

wKiom1SFUOjjTO8UAAEigAHihjs384.jpg

这里没选择闪回。

 

wKioL1SFUcKBh3OzAAEfusuZnFI328.jpg

wKiom1SFUS-T7uawAAFYIvm5tW8732.jpg

这里各地请按照自己实际物理内存来配置,选择自动内存管理

 

wKioL1SFUdPgM_yMAAE1KrmFF5A059.jpg

 

进程数调整至500

 

 

 

 

 

wKioL1SFUj_zoSQSAAGCrEDNOEg752.jpg

wKioL1SFUj_DfLLvAAGh30mUrSw654.jpg

wKiom1SFUayBt28qAAEE_ACPSCc165.jpg

wKioL1SFUkDRvAz8AAJFi0s8ScE485.jpg

wKiom1SFUazhfZuiAAGZqxbWcP4079.jpg

待完成后点击EXIT退出即可。

 

6      验证服务

6.1   客户端连接RAC

现在可以用SQL*PLUS连接到RAC,这时用户的连接可能被定向到任何一个节点,可以通过视图查看当前的连接实例。

通过SQL*PLUS连接RAC

[oracle@rac1]$sqlplus sys/password@SGTMS

查看当前连接的实例。

SQL>select instance_name fromv$instance;

SGTMS1

6.2   验证Failover(故障转移)

1)连接到RAC

[root@rac1]#sqlplus sys/password@SGTMS

2)确认用户当前连接的实例。

SQL>select instance_name fromv$instance;

SGTMS1

用户当前连接到SGTMS1这个实例,不要退出这个回话,第4步还是在这个回话中执行。

3)关闭SGTMS1这个实例,或者把SGTMS1所在的这台主机关机。

SQL>shutdown  abort;

4)等待几秒钟,再次执行这个语句,还是在会话1中执行。

SQL>select instance_name fromv$instance;

SGTMS2

这时因为SGTMS1实例被关闭,用户连接自动被转移到SGTMS2这个实例上了。

6.3   验证LoadBalance(负载均衡)

这个验证需要两个脚本,一个是SHELL脚本test.sh,另一个是SQl脚本test.sql

1SHELL脚本test.sh内容如下。

#!/bin/sh

#Usage: test SGTMS 4000

count=0

while [$count -lt $2] # Set up a loopcontrol

do

  count='expr $count+1' #Increment the counter

  sqlplus -s username/password@$1 @test.sql

  sleep 1

done

2SQL脚本test.sql内容如下。

col Instance_name for a20

select instance_name  from  v$instance

/

3)准备好脚本后,就可以进行这个测试了。

./test.sh SGTMS 1000

4)准备执行完后,查看每个实例建立的连接数量。

SQL> select  inst_id,count(*)  from  gv$session  group  by inst_id;

SGTMS1 496

SGTMS2  504