Oracle_11G_R2_RAC及负载均衡搭建手册

更新时间:2023-04-30 04:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Oracle 11G R2 RAC安装手册

一、基础知识

1.RAC是什么

RAC,全称real application clusters,译为“实时应用集群”,是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。

2.RAC的优缺点

●优点

Oracle RAC支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。

(1)多节点负载均衡;

(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;

(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;

(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;

(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时

节约相应维护成本;

(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。

●缺点

(1)相对单机,管理更复杂,要求更高;

(2)可能会增加软件成本

3.Oracle RAC原理

在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问共享存储设备.

逻辑结构上看:

●每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据

库。

●每一个节点的linstance都有自己的SGA。

●每一个节点的linstance都有自己的background process。

●每一个节点的linstance都有自己的redo logs。

●每一个节点的instance都有自己的undo表空间。

●所有节点都共享一份datafiles和controlfiles。

三类Resource:

●VIP - 虚拟IP地址(Virtual IP)

●OCR - Oracle Cluster Registry(集群注册文件),记录每个节点的相关信息

●Voting Disk,仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是

为了避免发生冲突。

二、RAC环境设计

1.服务器配置

2.用户组规划

3.用户规划

4.IP规划

5.存储规划

三、Oracle RAC搭建

1.配置共享存储(ASM依赖)

方法一:vmware workstation 9虚拟共享存储

(1)在VM安装目录\VMware Workstation下执行命令:

(2)修改rac1和rac2下的.vmx文件,在最后一行添加如下内容:

(3)重新打开虚拟机,并启动。

(4)磁盘分区,在rac1执行

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-1000, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-1000, default 1000): Using default value 1000

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

#fdisk /dev/sdc …重复上面操作

#fdisk /dev/sdd …重复上面操作

#fdisk /dev/sde …重复上面操作

#fdisk /dev/sdf …重复上面操作

方法二:Linux mount挂载(待解决)

2.安装依赖包

3.查看依赖包安装状况

glibc-headers \

ksh \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

pdksh \

sysstat \

unixODBC \

unixODBC-devel

执行结果…

binutils-2.17.50.0.6-26.el5(x86_64) elfutils-libelf-0.137-3.el5(x86_64) elfutils-libelf-0.137-3.el5(i386)

elfutils-libelf-0.137-3.el5(x86_64) elfutils-libelf-0.137-3.el5(i386)

expat-1.95.8-11.el5_8(x86_64)

expat-1.95.8-11.el5_8(i386)

gcc-4.1.2-54.el5(x86_64)

gcc-c++-4.1.2-54.el5(x86_64)

glibc-2.5-118.el5_10.2(i686)

glibc-2.5-118.el5_10.2(x86_64)

glibc-common-2.5-118.el5_10.2(x86_64) glibc-devel-2.5-118.el5_10.2(x86_64) glibc-devel-2.5-118.el5_10.2(i386) glibc-headers-2.5-118.el5_10.2(x86_64) ksh-20100621-18.el5(x86_64)

libaio-0.3.106-5(x86_64)

libaio-0.3.106-5(i386)

libaio-devel-0.3.106-5(i386)

libaio-devel-0.3.106-5(x86_64)

libgcc-4.1.2-54.el5(x86_64)

libgcc-4.1.2-54.el5(i386)

libstdc++-4.1.2-54.el5(x86_64)

libstdc++-4.1.2-54.el5(i386)

libstdc++-devel-4.1.2-54.el5(x86_64) libstdc++-devel-4.1.2-54.el5(i386) make-3.81-3.el5(x86_64)

pdksh-5.2.14-37.el5_8.1(x86_64) sysstat-7.0.2-12.el5(x86_64) unixODBC-2.2.11-10.el5(i386) unixODBC-2.2.11-10.el5(x86_64)

4.网络配置

(1)修改rac1和rac2的network

(2)修改rac1和rac2的hosts

(3)重启rac1和rac2网络服务

(4)配置虚拟IP

5.配置NTPD服务

NTPD服务为Grid的检查项,提供时间同步服务。

(1)修改NTPD参数文件(rac1,rac2)

(2)修改rac1的ntpd.conf文件,删除原有内容录入以下内容

(3)清空rac1的ntpservers原有内容

(4)编辑rac1的step-tickers,添加一行

(5)修改rac2的ntpd.conf文件,删除原有内容录入以下内容

(6)清空rac2的ntpservers原有内容

(7)编辑rac2的step-tickers,添加一行

(8)rac1节点重启NTPD服务

(9)rac2节点停止NTPD服务,rac1重启NTPD服务后5、6分钟再执行

(10)NTPD启用自动加载(rac1,rac2)

6.关闭服务

关闭rac1和rac2无用的sendmail和cups服务,加快开机速度。

7.用户、用户组

(1)创建用户和用户组

(2)修改用户密码

8.文件夹及权限

9.修改系统参数

(1)修改rac1和rac2的limits.conf

(2)修改rac1和rac2的/etc/pam.d/login

(3)修改rac1和rac2的/etc/sysctl.conf

(4)执行命令(rac1、rac2)

(5)修改rac1和rac2的profile,在末尾添加

(6)执行命令(rac1、rac2)

(7)修改rac1和rac2的/etc/csh.login

(8)修改grid用户的环境变量

#su - grid

$cd /home/grid/

$vi .bash_profile

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_SID=+ASM1; export ORACLE_SID

ORACLE_BASE=/u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/u01/app/11.2.0/grid/product/db_1; export ORACLE_HOME NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT THREADS_FLAG=native; export THREADS_FLAG

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

THREADS_FLAG=native; export THREADS_FLAG

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

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

#su - grid

$cd /home/grid/

$vi .bash_profile

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_SID=+ASM2; export ORACLE_SID

(9)执行命令(rac1、rac2)

(10)修改oracle用户的环境变量

#su - oracle

$cd /home/oracle/

$vi .bash_profile

# Oracle Settings oracle

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

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

ORACLE_SID=orcl1; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

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

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

#su - grid

$cd /home/grid/

$vi .bash_profile

# Oracle Settings oracle

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

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

ORACLE_SID=orcl2; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

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

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

(11)执行命令(rac1、rac2)

10.配置用户等效性

(1)使用Oracle用户,在所有节点执行

(2)使用Oracle用户,在节点rac1执行

(3)验证Oracle用户等效性,在所有节点执行

(4)使用grid用户,在所有节点执行

#su - grid

$ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/grid/.ssh/id_rsa): Created directory '/home/grid/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/grid/.ssh/id_rsa. Your public key has been saved in /home/grid/.ssh/id_rsa.pub. The key fingerprint is:

39:1c:f5:9b:76:e1:de:20:40:e0:e8:20:77:fa:cd:97 grid@rac1 $ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/grid/.ssh/id_dsa): Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/grid/.ssh/id_dsa. Your public key has been saved in /home/grid/.ssh/id_dsa.pub.

(5)使用grid用户,在节点rac1执行

(6)验证grid用户等效性,在所有节点执行

(7)重启rac1、rac2

11.安装ASM

(1)检查系统及内核版本

(2)下载与系统及内核版本对应的ASM

(3)安装asm包,按顺序安装

(4)初始化asmlib,在所有节点执行

(5)ASMlib加载到内核,在所有节点执行

(6)创建asm 磁盘,在节点rac1执行

(7)rac2节点执行

12.安装Oracle Grid

(1)安装cvuqdisk(rac1,rac2)

(2)使用grid用户,进行oracle grid 安装前检查

(3)更改DISPLAY设置

(4)更改SELinxu设置

# system-config-securitylevel

(5)执行安装Grid

安装方式

安装类型

产品语言

集群信息

节点信息

指定网络接口用法

存储选项信息

创建ASM磁盘组

指定ASM口令,使用统一口令:Nortek123

本文来源:https://www.bwwdw.com/article/d1ye.html

Top