快捷搜索:  www.ymwears.cn

Oracle 10g RAC 的部署(1)(1)

一 硬件架构

1共享的存储

Oracle RAC依附于共享磁盘体系布局。

共享的磁盘中寄放的如下内容,以便各个Node造访:

(1) 数据库文件

(2) 联机重做日志

(3) 节制文件

(4) Oracle Cluster Registry

(5) Voting Disk

2专用收集

Cache Fusion技巧应用专用收集将每个节点的物理内存(RAM)有效地组合成一个高速缓存。

(1) 经由过程在专用收集上传输某个Oracle实例高速缓存中存储的数据,容许其他任何实例造访这些数据。

(2) 在集群节点中传输锁定和其他同步信息维持数据完备性和高速缓存同等性。

专用收集平日是用千兆以太网构建的,然则对付高容量的情况,很多厂商供给了专门为Oracle RAC设计的低延迟、高带宽的专有办理规划。Linux还供给一种将多个物理NIC绑定为一个虚拟NIC的措施来增添带宽和前进可用性。

3公共收集

为保持高可用性,为每个集群节点分配了一个虚拟IP地址(VIP)。 假如主机发生故障,则可以将故障节点的IP地址从新分配给一个可用节点,从而容许利用法度榜样经由过程相同的IP地址继承造访数据库。

二 软件

在软件级别上,RAC集群中的每个节点必要:

一个操作系统 (多种)

Oracle集群就绪办事 (CRS)一组用于集议论况的与平台无关的系统办事。CRS掩护着两个文件:Oracle Cluster Registry (OCR)和Voting Disk。OCR和Voting Disk,这两个文件须以原始分区(RAW)或集群文件系统文件(OCFS)的形式存在于共享磁盘上。虽然CRS与第三方厂商供应的集群件协同事情,但Oracle RAC 10g所需组件只是CRS。

Oracle RAC软件,可选.在一个节点上安装RAC — OUI会自动支配到其他的节点。

一个Oracle自动存储治理实例(ASM

关于Oracle自动存储治理(ASM)的阐明:

ASM是Oracle数据库10g中的一个新特点,它以一种与平台无关的要领供给文件系统办事、逻辑容量治理器和软件RAID。Oracle ASM可以条带化和镜像磁盘,从而实现了在数据库被加载的环境下添加或移除磁盘以及自动平衡I/O以删除“热点”。它还支持直接和异步的I/O。

Oracle ASM不是通用的文件系统,只能用于Oracle数据文件、重做日志、节制文件和RMAN快速规复区。ASM中的文件既可以由数据库自动创建和命名(应用Oracle治理文件特点),也可以由DBA手动创建和命名。因为操作系统无法造访ASM中存储的文件,是以对应用ASM文件的数据库履行备份和规复操作的独一道路便是应用规复治理器(RMAN)。

ASM作为零丁的Oracle实例实施,只有它在运行时其他数据库才能造访它。ASM必要的内存不多:对大年夜部分系统来说只需64MB。 在Oracle RAC情况中,ASM实例必须运行在每个集群节点上。

三 安装Llinux

1确认Red Hat Enterprise Linux 4 (RHEL4)的安装 (所有节点)

所需内核:2.6.9-5.EL或更高版本

验证内核版本:

#uname-r

2.6.9-5.ELsmp

其他所需法度榜样包的版本(或更高版本):

make-3.80-5

gcc-3.4.3-9.EL4

compat-db-4.1.25-9

验证已安装的法度榜样包:

#rpm-qmakegcccompat-db

make-3.80-5

gcc-3.4.3-9.EL4

compat-db-4.1.25-9

假如有法度榜样包没有安装的话,则找到必要安装的法度榜样包,例如

#rpm–ivhmake-3.80-5

2为Oracle设置设置设备摆设摆设Linux

创建Oracle组和用户帐户(所有节点,然则第一个节点和其他节点不合)

为oracle用户设置Shell限定(在所有节点上)

以root用户身份登录履行以下敕令,对每个Linux帐户可以应用的进程数量和打开文件的数量设置限定

#cat>>/etc/security/limits.conf>>EOF

oraclesoftnproc2047//proc的软限定

oraclehardnproc16384//proc的硬限定

oraclesoftnofile1024//文件的软限定

oraclehardnofile65536//文件的硬限定

EOF

#cat>>/etc/pam.d/login>>EOF

sessionrequired/lib/security/pam_limits.so

EOF

#cat>>/etc/profile>>EOF//KShell

if[$USER="oracle"];then

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

ulimit-p16384//同proc的硬限定

ulimit-n65536//同文件的硬限定

else

ulimit-u16384-n65536

fi

umask022

fi

EOF

#cat>>/etc/csh.login>>EOF//CShell

if($USER=="oracle")then

limitmaxproc16384//同proc的硬限定

limitdescriptors65536//同文件的硬限定

umask022

endif

EOF

设置设置设备摆设摆设Hangcheck计时器(在所有节点上)

该模块是用来监控集群的状态环境。

以root用户登岸

#modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 //设置设置设备摆设摆设

#cat >> /etc/rc.d/rc.local >>EOF //加载

modprobe hangcheck

-timer hangcheck_tick=30 hangcheck_margin=180

EOF

(2)第二步将每个主机上的公共密钥文件id_rsa.pub和id_dsa.pub的内容复制到其他每个主机的~/.ssh/authorized_keys文件中

在第一个节点,以oracle用户身份登录:

$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

$cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys//本地的共享密钥

$sshoracle@ds2cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys//别的节点的共享密钥is_rsa.pub

Theauthenticityofhost’ds2(192.168.200.52)’can’tbeestablished.

RSAkeyfingerprintisd1:23:a7:df:c5:fc:4e:10:d2:83:60:49:25:e8:eb:11.

Areyousureyouwanttocontinueconnecting(yes/no)?yes

Warning:Permanentlyadded’ds2,192.168.200.52’(RSA)tothelistofknownhosts.

oracle@ds2’spassword:

$sshoracle@ds2cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys//别的节点的共享密钥is_dsa.pub

oracle@ds2’spassword:

$chmod644~/.ssh/authorized_keys//改变权限

现在对另外节点做同样的处置惩罚。请留意,此次SSH会提示您输入在创建密钥时所应用的口令短语而非oracle的口令。这是由于第一个主机(ds1)现在知道了第二个主机的公共密钥

$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

$cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

$sshoracle@ds1cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

Theauthenticityofhost’ds1(192.168.200.51)’can’tbeestablished.

RSAkeyfingerprintisbd:0e:39:2a:23:2d:ca:f9:ea:71:f5:3d:d3:dd:3b:65.

Areyousureyouwanttocontinueconnecting(yes/no)?yes

Warning:Permanentlyadded’ds1,192.168.200.51’(RSA)tothelistofknownhosts.

Enterpassphraseforkey’/home/oracle/.ssh/id_rsa’:

$sshoracle@ds1cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

Enterpassphraseforkey’/home/oracle/.ssh/id_rsa’:

$chmod644~/.ssh/authorized_keys

Oracle数据文件*

联机重做日志 *

归档重做日志

节制文件 *

Spfile

CRS共享文件(Oracle Cluster Registry和CRS voting disk)。*

获取ocfs安装法度榜样

转到http://oss.oracle.com/projects/ocfs并下载适于您的Linux版本的OCFS RPM。您必要三个RPM:ocfs-support、ocfs-tools和ocfs-kernel-specific模块

安装ocfs (在每个节点上,以root身份登岸)

#rpm-Uvhocfs-support-1.0.10-1.i386.rpm

ocfs-tools-1.0.10-1.i386.rpm

ocfs-2.4.21-EL-smp-1.0.12-1.i686.rpm

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

1:ocfs-support###########################################[33%]

2:ocfs-tools###########################################[67%]

3:ocfs-2.4.21-EL-smp###########################################[100%]

LinkingOCFSmoduleintothemodulepath[OK]

设置设置设备摆设摆设OCFS (在每个节点上,以root身份登岸)

在每个节点上,以root用户身份运行ocfstool:

#ocfstool

选择Tasks → Generate Config

选择与RAC专用收集相对应的接口

单击OK天生/etc/ocfs.conf文件,然退却撤退出ocfstool

对集群中的每个节点重复这些操作。

在/etc/ocfs2/目录下面将有cluster.conf文件,内容应该大年夜致如下

node:

ip_port=7777

ip_address=192.168.200.51

number=0

name=ds1

cluster=ocfs2

node:

ip_port=7777

ip_address=192.168.200.52

number=1

name=ds2

cluster=ds

cluster:

node_count=2

name=ds

所有节点设置设置设备摆设摆设完毕,在所有节点开始加载ocfs

#/sbin/load_ocfs

/sbin/insmodocfsnode_name=ds1.orademo.orgip_address=192.168.100.51

cs=1795guid=2FB60EDD8B872FC4216C00010324C023comm_voting=1ip_port=7000

Using/lib/modules/2.4.21-EL-smp-ABI/ocfs/ocfs.o

Warning:kernel-moduleversionmismatch

/lib/modules/2.4.21-EL-smp-ABI/ocfs/ocfs.owascompiledforkernelversion2.4.21-4.ELsmp

whilethiskernelisversion2.4.21-15.0.2.ELsmp

Warning:loading/lib/modules/2.4.21-EL-smp-ABI/ocfs/ocfs.owilltaintthekernel:forcedload

Seehttp://www.tux.org/lkml/#export-taintedforinformationabouttaintedmodules

Moduleocfsloaded,withwarnings

#mkdir/u02/oradata

#chownoracle:oinstall/u02/oradata

#chmod775/u02/oradata

至此OCFS体系筹备完毕。

提示1:

设置设置设备摆设摆设O2CB驱动法度榜样O2CB是一组集群办事,认真治理节点与集群文件系统之间的通信。下面是对各个办事的阐明:

NM:用于跟踪cluster.conf中的所有节点的节点治理器

HB:当节点加入或脱离集群时向上/向下发出看护的心跳办事

TCP:处置惩罚节点之间的通信

DLM:用于跟踪所有锁、这些锁的所有者以及状态的散播式锁治理器

CONFIGFS:在/config中挂载的用户空间驱动的设置设置设备摆设摆设文件系统

DLMFS:用户空间与内核空间DLM的接口

在所有节点上履行下面的历程,将O2CB设置设置设备摆设摆设为在向导时启动。

当系统提示您指定心跳逝世亡阈值时,您必须指定一个大年夜于7的值,以防止节点因为较慢的IDE磁盘驱动器而崩溃。心跳逝世亡阈值是一个用于谋略隔离光阴的变量。

Fence time (seconds) = (heartbeat dead threshold -1) * 2

在我们的情况中,120秒的隔离光阴很相宜。两个节点上的心跳逝世亡阈值应该完全相同。

以root用户身份履行

#/etc/init.d/o2cbunload

StoppingO2CBclusterocfs2:OK

Unmountingocfs2_dlmfsfilesystem:OK

Unloadingmodule"ocfs2_dlmfs":OK

Unmountingconfigfsfilesystem:OK

Unloadingmodule"configfs":OK

#/etc/init.d/o2cbconfigure

ConfiguringtheO2CBdriver.

Thiswillconfiguretheon-bootpropertiesoftheO2CBdriver.

Thefollowingquestionswilldeterminewhetherthedriverisloadedon

boot.Thecurrentvalueswillbeshowninbrackets(’[]’).Hitting

withouttypingananswerwillkeepthatcurrentvalue.Ctrl-C

willabort.

LoadO2CBdriveronboot(y/n)[y]:y

Clustertostartonboot(Enter"none"toclear)[ocfs2]:

Specifyheartbeatdeadthreshold(>=7)[7]:61

WritingO2CBconfiguration:OK

Loadingmodule"configfs":OK

Mountingconfigfsfilesystemat/config:OK

Loadingmodule"ocfs2_nodemanager":OK

Loadingmodule"ocfs2_dlm":OK

Loadingmodule"ocfs2_dlmfs":OK

Mountingocfs2_dlmfsfilesystemat/dlm:OK

StartingO2CBclusterocfs2:OK

您可能还会对下面的文章感兴趣: