OracleGRAC及负载均衡搭建手册.docx
- 文档编号:28116540
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:32
- 大小:25.42KB
OracleGRAC及负载均衡搭建手册.docx
《OracleGRAC及负载均衡搭建手册.docx》由会员分享,可在线阅读,更多相关《OracleGRAC及负载均衡搭建手册.docx(32页珍藏版)》请在冰豆网上搜索。
OracleGRAC及负载均衡搭建手册
Oracle11GR2RAC安装手册
一、基础知识
1.RAC是什么
RAC,全称realapplicationclusters,译为“实时应用集群”,是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。
2.RAC的优缺点
●优点
OracleRAC支持Oracle9i、10g、11g版本,可以支持24x7有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。
在OracleRAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。
当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
(1)多节点负载均衡;
(2)提供高可用:
故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
●缺点
(1)相对单机,管理更复杂,要求更高;
(2)可能会增加软件成本
3.OracleRAC原理
在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。
同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问共享存储设备.
逻辑结构上看:
●每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。
●每一个节点的linstance都有自己的SGA。
●每一个节点的linstance都有自己的backgroundprocess。
●每一个节点的linstance都有自己的redologs。
●每一个节点的instance都有自己的undo表空间。
●所有节点都共享一份datafiles和controlfiles。
三类Resource:
●VIP-虚拟IP地址(VirtualIP)
●OCR-OracleClusterRegistry(集群注册文件),记录每个节点的相关信息
●VotingDisk,仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。
二、RAC环境设计
1.服务器配置
操作系统
主机名
内存
网卡
RedhatEnterpriseLinux5.4
rac1
2G
eth0(Public)
eth1(Prive)
RedhatEnterpriseLinux5.4
rac2
2G
eth0(Public)
eth1(Prive)
2.用户组规划
GroupName
GroupID
说明
HOST
oinstall
501
Oracle清单和软件所有者
rac1,rac2
asmadmin
504
Oracle自动存储管理组
rac1,rac2
asmdba
506
ASM数据库管理员组
rac1,rac2
asmopen
507
ASM操作员组
rac1,rac2
dba
502
数据库管理员
rac1,rac2
3.用户规划
UserID
UserName
Group
说明
HOST
口令
501
grid
oinstall
dba
asmadmin
asmdba
asmoper
OracleCluster用户
rac1
rac2
grid123
502
oracle
oinstall
dba
asmdba
Oracle数据库管理员
rac1
rac2
oracle123
4.IP规划
主机名
公用IP
私有IP
虚拟IP
rac1
rac2
ScanIP
5.存储规划
存储组件
BlockDevice
ASMlibName
Size
OCR
/dev/sdb
OCR_VOL1
1G
/dev/sdc
OCR_VOL2
1G
/dev/sdd
OCR_VOL3
1G
数据文件
/dev/sde
DATA_VOL1
10G
文件备份
/dev/sdf
BACK_VOL1
5G
三、OracleRAC搭建
1.配置共享存储(ASM依赖)
●方法一:
vmwareworkstation9虚拟共享存储
(1)在VM安装目录\VMwareWorkstation下执行命令:
#vmware-vdiskmanager.exe-c-s1GB-alsilogic-t2D:
\racDisk\db01.vmdk
#vmware-vdiskmanager.exe-c-s1GB-alsilogic-t2D:
\racDisk\db02.vmdk
#vmware-vdiskmanager.exe-c-s1GB-alsilogic-t2D:
\racDisk\db03.vmdk
#vmware-vdiskmanager.exe-c-s10GB-alsilogic-t2D:
\racDisk\db04.vmdk
#vmware-vdiskmanager.exe-c-s5GB-alsilogic-t2D:
\racDisk\db05.vmdk
(2)修改rac1和rac2下的.vmx文件,在最后一行添加如下内容:
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites="0"
disk.locking="FALSE"
scsi1.sharedBus="virtual"
scsi1.present="TRUE"
scsi1.virtualDev="lsilogic"
scsi1:
0.mode="independent-persistent"
scsi1:
0.deviceType="disk"
scsi1:
0.present="TRUE"
scsi1:
0.fileName="D:
\racDisk\db01.vmdk"
scsi1:
1.mode="independent-persistent"
scsi1:
1.deviceType="disk"
scsi1:
1.present="TRUE"
scsi1:
1.fileName="D:
\racDisk\db02.vmdk"
scsi1:
2.mode="independent-persistent"
scsi1:
2.deviceType="disk"
scsi1:
2.present="TRUE"
scsi1:
2.fileName="D:
\racDisk\db03.vmdk"
scsi1:
3.mode="independent-persistent"
scsi1:
3.deviceType="disk"
scsi1:
3.present="TRUE"
scsi1:
3.fileName="D:
\racDisk\db04.vmdk"
scsi1:
4.mode="independent-persistent"
scsi1:
4.deviceType="disk"
scsi1:
4.present="TRUE"
scsi1:
4.fileName="D:
\racDisk\db05.vmdk"
(3)重新打开虚拟机,并启动。
(4)磁盘分区,在rac1执行
#fdisk/dev/sdb
DevicecontainsneitheravalidDOSpartitiontable,norSun,SGIor
OSFdisklabel
BuildinganewDOSdisklabel.Changeswillremaininmemoryonly,
untilyoudecidetowritethem.Afterthat,ofcourse,theprevious
contentwon'tberecoverable.
Warning:
invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite)
Command(mforhelp):
p
64heads,32sectors/track,1000cylinders
Units=cylindersof2048*512=1048576bytes
DeviceBootStartEndBlocksIdSystem
Command(mforhelp):
n
Commandaction
eextended
pprimarypartition(1-4)
p
Partitionnumber(1-4):
1
Firstcylinder(1-1000,default1):
Usingdefaultvalue1
Lastcylinderor+sizeor+sizeMor+sizeK(1-1000,default1000):
Usingdefaultvalue1000
Command(mforhelp):
w
Thepartitiontablehasbeenaltered!
Callingioctl()tore-readpartitiontable.
Syncingdisks.
#fdisk/dev/sdc…重复上面操作
#fdisk/dev/sdd…重复上面操作
#fdisk/dev/sde…重复上面操作
#fdisk/dev/sdf…重复上面操作
●方法二:
Linuxmount挂载(待解决)
2.安装依赖包
#yuminstall-yexpect*iscsi*binutils*compat-libstdc++*expat*elfutils-libelf*gcc*glibc*ksh*libgcc*
#yuminstall-ypdksh*libgomp*compat-db*libXp*libaio*cpp*setarch*sysstat*libstdc++*make-3*
#yuminstall-yunixODBC
#yuminstall-yunixODBC-devel
3.查看依赖包安装状况
#rpm-q--qf'%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n'binutils\
elfutils-libelf\
elfutils-libelf\
expat\
gcc\
gcc-c++\
glibc\
glibc-common\
glibc-devel\
glibc-headers\
ksh\
libaio\
libaio-devel\
libgcc\
libstdc++\
libstdc++-devel\
make\
pdksh\
sysstat\
unixODBC\
unixODBC-devel
执行结果…
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)
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)
make-3.81-3.el5(x86_64)
4.网络配置
(1)修改rac1和rac2的network
#vi/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=rac1#此处为主机名
#vi/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=rac2
(2)修改rac1和rac2的hosts
#vi/etc/hosts
###eth0-PublicIP###
###eth1–PRIVATEIP###
###VIP###
###SCAN###
(3)重启rac1和rac2网络服务
#servicenetworkrestart
(4)配置虚拟IP
#
#
*注:
虚拟IP在重启网络服务会被卸载,需要重新设置。
5.配置NTPD服务
NTPD服务为Grid的检查项,提供时间同步服务。
(1)修改NTPD参数文件(rac1,rac2)
#vi/etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-x-untp:
ntp-p/var/run/ntpd.pid"
(2)修改rac1的ntpd.conf文件,删除原有内容录入以下内容
#vi/etc/ntp.conf
server
fudge
driftfile/var/lib/ntp/drift
broadcastdelay0.008
authenticateno
keys/etc/ntp/keys
(3)清空rac1的ntpservers原有内容
#cp/etc/ntp/ntpservers/etc/ntp/ntpservers.bak
#vi/etc/ntp/ntpservers
(4)编辑rac1的step-tickers,添加一行
#cp/etc/ntp/step-tickers/etc/ntp/step-tickers.bak
#vi/etc/ntp/step-tickers
(5)修改rac2的ntpd.conf文件,删除原有内容录入以下内容
#vi/etc/ntp.conf
server
server
fudge
driftfile/var/lib/ntp/drift
broadcastdelay0.008
authenticateno
keys/etc/ntp/keys
(6)清空rac2的ntpservers原有内容
#cp/etc/ntp/ntpservers/etc/ntp/ntpservers.bak
#vi/etc/ntp/ntpservers
(7)编辑rac2的step-tickers,添加一行
#cp/etc/ntp/step-tickers/etc/ntp/step-tickers.bak
#vi/etc/ntp/step-tickers
#rac1的ip地址
(8)rac1节点重启NTPD服务
#servicentpdrestart
(9)rac2节点停止NTPD服务,rac1重启NTPD服务后5、6分钟再执行
#servicentpdstop
#ntpdaterac1
#servicentpdstart
(10)NTPD启用自动加载(rac1,rac2)
#chkconfigntpdon
6.关闭服务
关闭rac1和rac2无用的sendmail和cups服务,加快开机速度。
#chkconfigsendmailoff
#chkconfigcupsoff
7.用户、用户组
(1)创建用户和用户组
#groupadd-g501oinstall
#groupadd-g502dba
#groupadd-g504asmadmin
#groupadd-g506asmdba
#groupadd-g507asmoper
#useradd-u501-goinstall-Gdba,asmadmin,asmdba,asmopergrid
#useradd-u502-goinstall-Gdba,asmdbaoracle
#idoracle
#idgrid
(2)修改用户密码
#passwdoracle
#passwdgrid
8.文件夹及权限
#mkdir-p/u01/app/grid/
#
#mkdir-p/u01/app/oraInventory
#chown-Rgrid:
oinstall/u01/app
#
#chown-Roracle:
oinstall/u01/app/oracle
#chmod-R775/u01
9.修改系统参数
(1)修改rac1和rac2的limits.conf
#vi/etc/security/limits.conf
###ORACLESETTING
gridsoftnproc2047
gridhardnproc16384
gridsoftnofile1024
gridhardnofile65536
oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
(2)修改rac1和rac2的/etc/pam.d/login
#vi/etc/pam.d/login
###ORACLESETTING
sessionrequiredpam_limits.so
(3)修改rac1和rac2的/etc/sysctl.conf
#vi/etc/sysctl.conf
###ORACLESETTING
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
(4)执行命令(rac1、rac2)
#sysctl-p
(5)修改rac1和rac2的profile,在末尾添加
#vi/etc/profile
if[$USER="oracle"]||[$USER="grid"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
umask022
fi
(6)执行命令(rac1、rac2)
#source/etc/profile
(7)修改rac1和rac2的/etc/csh.login
#vi/etc/csh.login
if($USER="oracle"||$USER="grid")then
limitmaxproc16384
limitdescriptors65536
endif
EOFCSH
(8)修改grid用户的环境变量
#su-grid
$cd/home/grid/
$vi.bash_profile
TMP=/tmp;exportTMP
TMPDIR=$TMP;exportTMPDIR
ORACLE_SID=+ASM1;exportORACLE_SID
ORACLE_BASE=/u01/app/grid;exportORACLE_BASE
NLS_DATE_FORMAT="yyyy-mm-ddHH24:
MI:
SS";exportNLS_DATE_FORMAT
THREADS_FLAG=native;exportTHREADS_FLAG
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
THREADS_FLAG=native;exportTHREADS_FLAG
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
if[$USER="oracle"]||[$USER="grid"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
umask022
fi
#su-grid
$cd/home/grid/
$vi.bash_profile
TMP=/tmp;exportTMP
TMPDIR=$TMP;exportTMPDIR
ORACLE_SID=+ASM2;exportORACLE_SID
ORACLE_BASE=/u01/app/grid;exportORACLE_BASE
NLS_DATE_FORMAT="yyyy-mm-ddHH24:
MI:
SS";exportNLS_DATE_FORMAT
THREADS_FLAG=native;exportTHREADS_FLAG
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
THREADS_FLAG=native;exportTHREADS_FLAG
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
if[$USER="oracle"]||[$USER="grid"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
umask022
fi
(9)执行命令(rac1、rac2)
$source.bash_profile
(10)修改oracle用户的环境变量
#su-oracle
$cd/home/oracle/
$vi.bash_profile
#OracleSettingsoracle
TMP=/tmp;exportTMP
TMPDIR=$TMP;exportTMPDIR
ORACLE_BASE=/u01/app/oracle;exportORACLE_BASE
ORACLE_SID=orcl1;exportORACLE_SID
ORACLE_TERM=xterm;exportORACLE_TERM
PATH=/usr/sbin:
$PATH;exportPATH
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib;exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OracleGRAC 负载 均衡 搭建 手册
![提示](https://static.bdocx.com/images/bang_tan.gif)