Oracle RAC搭建(一)

1.关于 Oracle Clusterware 和 Oracle RAC
ORACLE RAC 支持多个实例在同一时间点内通过不同服务对数据库执行相关操作,它提供了一个被称作cluster的集群软件用以支持多个服务同时工作。并且根据业务的需要,也可以扩展数据库实例。
每一个实例有它独有的内存结构和后台进程,ORACLE RAC 通过使用 Cache Fusion (高速缓存融合)来同步各个数据库实例中buffer cache 中的数据,多个数据库实例共享一个数据库。当一个数据库实例2想要访问磁盘上的某数据块,而此时的对该数据块的修改在实例1中的buffer cache中,Cache Fusion 将会将修改后的数据块从实例1的buffer cache中传输给实例2,当然,需要建立节点之间的信任机制。
Oracle Clusterware通过使用如下组件实现对数据库的可伸缩性和该可用性:
?Voting disk:管理集群成员,断定集群节点的网络故障之间的所有权;
?Oracle Cluster Registry (OCR):维护集群配置信息以及配置集群中的任何集群数据库的信息。OCR包含信息如数据库实例运行在哪些节点和服务运行数据库。OCR还存储信息流程和修改控件,OCR驻留在共享存储访问集群中的所有节点。
2.关于 Oracle ASM 自动存储管理
3.关于ORACLE RAC中的网络配置
每个节点至少需要两块网卡,public ip用来向外提供服务,private ip用来实现各节点之间的通信,virtual ip 用来检测当某节点出现故障时实现自动转移。因此virtual ip必须和public ip必须在同一子网作为公共接口。
4.简单安装ORACLE RAC
此处采用redhat5.4版本安装操作系统,虚拟机版本为vmware 9.0 ,数据库版本为oracle database 10.0.2
搭建之前的准备,准备虚拟机一个,创建三个外磁盘,一个用于ocr(1G),一个votedisk(1G),两个用于asm(每个15G) ,四块磁盘设置为独立模式,添加两块网卡,此处采用hostonly连网模式。
5.部署RAC的IP地址规划表如下:
                                                                       节点rac1的IP规划:
 节点1(rac1)  对应网卡  IP地址  网络名
 public ip  eth0  192.168.10.1  rac1
 private ip  eth1  10.0.0.1  rac1-priv
 virtual ip  eth0  192.168.10.3  rac1-vip
                                                                       节点rac2的IP规划:
 节点2(rac2)  对应网卡  IP地址  网络名
 public ip  eth0  192.168.10.2  rac2
 private ip  eth1  10.0.0.2  rac2-priv
 virtual ip  eth0  192.168.10.4  rac2-vip
6.创建用户名和组
[root@rac1 ~]# groupadd oinstall

[root@rac1 ~]# groupadd dba

[root@rac1 ~]# useradd -d /home/oracle -g oinstall -G dba oracle

[root@rac1 ~]# passwd oracle

Changing password for user oracle.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@rac1 ~]# id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

7. root 用户登录,配置 /etc/hosts ,内容如下:

[root@rac1 ~]# cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

#127.0.0.1     rac1 localhost.localdomain localhost

127.0.0.1       localhost

#::1               localhost6.localdomain6 localhost6

#public ip

192.168.10.1    rac1

192.168.10.2    rac2

#private ip

10.0.0.1        rac1-priv

10.0.0.2        rac2-priv

#virtual ip

192.168.10.3    rac1-vip

192.168.10.4    rac2-vip

8.创建rac配置的相关目录
[root@rac1 ~]# mkdir -p /u01/app/oracle/db_1
[root@rac1 ~]# chown -R oracle:oinstall /u01/
9.oracle用户登录,配置 ~/.bash_profile,添加如下内容:
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export CRS_HOME=$ORACLE_BASE/crs
export ORACLE_HOME=$ORACLE_BASE/db_1
export ORACLE_SID=orc1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=$CRS_HOME/bin:$PATH
ulimit -u 16384 -n 65536
umask 022
10.root用户下登录,修改内核参数 /etc/sysctl.conf,如下:
首先查看操作系统的内存和交换分区:
[root@rac1 ~]# grep MemTotal /proc/meminfo
MemTotal:      1035140 kB
[root@rac1 ~]# grep SwapTotal /proc/meminfo
SwapTotal:     2097144 kB
添加内容如下:
kernel.shmall = 2097152 
#kernel.shmmax = 517570                  注意此处不能设置成物理内存的一半
kernel.shmmax=536870912     
kernel.shmmni = 4096
kernel.sem = 25032000100128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 102465000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
使配置生效:
[root@rac1 ~]# /sbin/sysctl –p
11.提高oracle用户的shell限制
root用户登录,在 /etc/security/limits.conf添加如下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

12.修改安全限制:

root用户登录,在/etc/pam.d/login添加如下内容:

session    required     /lib/security/pam_limits.so
13.
添加Hangcheck计时器

root用户登录,在/etc/rc.local下添加如下内容:

modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
[root@rac1 ~]# modprobe hangcheck-timer
[root@rac1 ~]# grep Hangcheck /var/log/messages |tail -2
May 14 07:02:06 rac1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).
May 14 07:02:06 rac1 kernel: Hangcheck: Using get_cycles().
14.
添加分区磁盘

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

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

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

[root@rac1 ~]# fdisk /dev/sde
将原始设备映射到共享分区:
[root@rac1 ~]# vi /etc/sysconfig/rawdevices
添加如下内容:

/dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdc1

/dev/raw/raw3 /dev/sdd1

/dev/raw/raw4 /dev/sde1

使映射立即生效:
[root@rac1 ~]#  /sbin/service rawdevices restart
Assigning devices:
           /dev/raw/raw1  --&gt   /dev/sdb1
/dev/raw/raw1:  bound to major 8, minor 17
           /dev/raw/raw2  --&gt   /dev/sdc1
/dev/raw/raw2:  bound to major 8, minor 33
           /dev/raw/raw3  --&gt   /dev/sdd1
/dev/raw/raw3:  bound to major 8, minor 49
           /dev/raw/raw4  --&gt   /dev/sde1
/dev/raw/raw4:  bound to major 8, minor 65
done
将映射配置到/etc/udev/rules.d/60-raw.rules中,添加内容如下

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

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"

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

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"

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

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"

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

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw /dev/raw/raw4 %M %m"

KERNEL=="raw[1-4]", OWNER="oracle", GROUP="oinstall", MODE="640"
配置分配权限:
[root@rac1 ~]# vi /etc/rc.d/rc.local
#添加如下内容:

chown oracle:dba  /dev/raw/raw1

chown oracle:dba  /dev/raw/raw2

chown oracle:dba  /dev/raw/raw3

chown oracle:dba  /dev/raw/raw4

chmod 660 /dev/raw/raw1

chmod 660 /dev/raw/raw2

chmod 660 /dev/raw/raw3

chmod 660 /dev/raw/raw4

使绑定的设备生效:

[root@rac1 ~]# start_udev

Starting udev:                                             [  OK  ]

[root@rac1 ~]# ls -l /dev/raw

total 0

crw-r----- 1 oracle oinstall 162, 1 May 12 10:10 raw1

crw-r----- 1 oracle oinstall 162, 2 May 12 10:10 raw2

crw-r----- 1 oracle oinstall 162, 3 May 12 10:10 raw3

crw-r----- 1 oracle oinstall 162, 4 May 12 10:10 raw4

15.安装oracle所需软件包

glibc-2.5-24

glibc-common-2.5

glibc-devel-2.5

glibc-headers-2.5

kernel-headers-2.6.18

ksh-20060214

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.2

libgomp-4.1.2

libstdc++-4.1.2

libstdc++-devel-4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11

unixODBC-devel-2.2.11

libXp-1.0.0-8.1.el5.i386

libXp-devel-1.0.0-8.1.el5.i386

16.为方便配置,本实验对节点2采用拷贝节点1的配置,需要修改IP地址、主机名,以及oracle用户下配置等相关信息:

在启动linux之前(vmware处于关闭状态),修改vmware的工作目录,找到.vmx文件,用记事本打开添加如下信息:(否则两台虚拟机不能同时启动)两台虚拟机都要添加

disk.locking = "false" 

diskLib.dataCacheMaxSize = "0" 

diskLib.dataCacheMaxReadAheadSize = "0" 

diskLib.DataCacheMinReadAheadSize = "0" 

diskLib.dataCachePageSize = "4096" 

diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk"

scsi1:0.deviceType = "disk"

scsi1:3.deviceType = "disk"

scsi1:sharedBus='virtual'  ---虚拟机是workstaion时添加,server版本不需要

并且对于节点2中,修改
displayName = "rac2"
scsi0:0.fileName = "D:\RAC10g\rac2\rac1.vmdk"

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29634949/viewspace-1158604/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29634949/viewspace-1158604/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值