Linux+Oracle10g+RAC

Linux+Oracle10g+RAC
Linux+Oracle10g+RAC

RAC应用集群

一.实施规划

1.平台:

操作系统:RedHat Enterprise Linux Advanced Server 5.0

内存大小:2048M

交换空间:2048M

硬盘空间:10G

网卡配置:2(public IP,Vitual IP ,Private IP)

主机结点:2(node1,node2)

存储设备:1 (DB fies)

2.网络规划

Node1 公共192.168.100.101

Node2 公共192.168.100.102

Node1-vip 虚拟192.168.100.201

Node2-vip 虚拟192.168.100.202

Node1-priv 专用19.168.100.101

Node2-priv 专用19.168.100.102

3.安装流程

>安装虚拟机vmware Server 1.0.9

>安装RHEL5.4

>配置RHEL操作系统

>复制第二台虚拟机

>配置双机信任关系

>建立ASM存储

>安装clusterware软件

>安装database软件

>配置监听Listener

>建立数据库实例

二.新建虚拟机

1.选择-》新建,虚拟机名为RAC1,location为F:\vmware\RAC1,网卡接口选择桥接网络方式(Use bridged networking),适配器选择LSI Logic,虚拟硬盘选择SCSI,硬盘容量选择10G,然后选择每次扩充扩充2G(Split disk into 2GB files),不选择立即分配。

然后按Add添加硬盘,先添加一个100M的硬盘,选择立即分配方式(Allocate all disk space now),该盘作为V otingDisk盘,目录存放位置为F:\vmware\sharedisk\V otingdisk,虚拟设备结点选择SCSI 1:1 Hard Disk2,模式选择一致即:independent->persistent。

然后再添加一个100M的硬盘,选择立即分配,该盘作为OCRdisk盘,目录存放位置为:F:\vmware\sharedisk\OCRdisk,硬盘选择SCSI 1:2,模式为一致。

再添加一个2G的硬盘用作ASM的数据文件的空间,选择立即分配和2G扩充一个文件,目录位置为F:\vmware\sharedisk\ASMdisk,硬盘选择SCSI 1:3,模式选择一致。

再添加一个 1.3G的硬盘用作ASM的闪回区,选择立即分配,目录位置为F:\vmware\sharedisk\ASMdisk2,硬盘选择SCSI 1:4,模式选择一致性。

再添加一块网卡,用作两台虚拟机之间的通信,连接方式选择Host-only模式并选择(connect at power on)。

2. 开启该虚拟机,安装RHEL 5.4,注意事项:

交换分区分2G,主机名为node1,eth0为192.168.100.101,eth1为19.168.100.101 作为node1-priv,自定义安装包时,选择开发、服务器以及基本系统的全部,防火墙关闭,selinux 设为enabled禁用。

安装好之后,编辑F:\vmware\RAC1\Red Hat Linux.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:3.deviceType = “disk”

scsi1:4.deviceType = “disk”

4.RHEL系统配置

#uname –r

2.6.128-164.el5

#vim /etc/hosts(加上如下一段)

192.168.100.101 node1

192.168.100.102 node2

192.168.100.201 node1-vip

192.168.100.202 node2-vip

19.168.100.101 node1-priv

19.168.100.102 node2-priv

#vim /etc/sysctl.conf(加上如下一段)

Kernel.shmall = 2097152

Kernel.shmmax = 536870912

Kernel.shmmni = 4096

Kernel.sem = 250 32000 100 128

Fs.file-max = 65536

Net.ipv4.ip_local_port_range = 1024 65000

Net.core.rmem_default = 1048576

Net.core.rmem_max = 1048576

Net.core.wmem_default = 262144

Net.core.wmem_max = 262144

#sysctl –p (是该文件生效)

#vim /etc/security/limits.conf(加上如下一段)

Oracle soft nproc 2047

Oracle hard nproc 16384

Oracle soft nofile 1024

Oracle hard nofile 65536

#vim /etc/pam.d/login(加上如下一段)

Session required /lib/security/pam_limits.so

#vim /etc/rc.loal (挂起检测时间定时器,检测对方有没有宕机)

Modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=20

#groupadd oinstall

#groupadd dba

#useradd –m –g oinstall –G dba

#passwd oracle

#vim /home/oracle/.bash_profile

Export TMPDIR=/tmp

Export ORACLE_BASE=/u01/app/oracle

Export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

Export ORACLE_SID=RACDB1

Export ORACLE_TERM=xterm

Export PATH=$ORACLE_HOME/bin:/usr/bin:$PATH

Export LD_LIBRARY_PA TH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin Export

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib Ulimit –u 16384 –n 65536

Umask 022

#mkdir –p /u01/app/oracle

#chown –R oracle:oinstall /u01

#chmod –R 775 /u01

#fdisk /dev/sdb

#fdisk /dev/sdc

#fdisk /dev/sdd

#fdisk /dev/sde

#partprobe

#rpm –ivh oracleasm-support-*

#rpm –ivh oracleasm-2.6.18-164.el5.*

#rpm –ivh oracleasmlib*

#rpm –ivh compat-gcc-7.3.2-2.96.128.i386.rpm

#rpm –Uvh compat-libstdc++-7* --force

#rpm –ivh compat-libstdc---devel-7.3.2

#rpm –ivh compat-gcc-c++*

#service oracleasm configure

Oracle

Oinstall

Y

Y

#vim /etc/udev/rules.d/60-raw.rules(加上如下一段)

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

ACTION==”add”,ENV{MAJOR}==”8”,ENV{MINOR}==”17”,RUN+=”/bin/raw

/dev/raw/raw1 %M %m” ( 其中的主设备号可以通过ls –l /dev/sd*查看)

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

ACTION==”add”,ENV{MAJOR}==”8”,ENV{MINOR}==”33”,RUN+=”/bin/raw

/dev/raw/raw2 %M %m”

KERNEL==”raw[1-2]”,OWNER=”oracle”,GROUP=”oinstall”,MODE=”640”

#start_udev

#ls –l /dev/raw/*

#shutdown –h now

三.复制出第二台虚拟机

1.将复制之后的名称为RAC1的改为RAC2,另外编辑Red Hat Linux.vmx查找文件中的RAC1将它改为RAC2,然后编辑RAC

2.vmdk将文件中的RAC1改为RAC2(如下所示): RW 4192256 SPARSE “RAC2-s001.vmdk”

RW 4192256 SPARSE “RAC2-s002.vmdk”

RW 4192256 SPARSE “RAC2-s003.vmdk”

RW 4192256 SPARSE “RAC2-s004.vmdk”

RW 4192256 SPARSE “RAC2-s005.vmdk”

RW 10240 SPARSE “RAC2-s006.vmdk”

2.打开RAC2,选择Create

3.配置node2操作系统

#hostname node2

#vim /etc/sysconfig/network

HOSTNAME=node2

#vim /etc/hosts

127.0.0.1 node2 localhost.localdomain localhost

#cd /etc/sysconfig/network-scripts/

#cat ifcfg-eth0.bak

#cat ifcfg-eth0

#cat ifcfg-eth1.bak

#cat ifcfg-eth1

#mv ifcfg-eth0.bak ifcfg-eth0

#mv ifcfg-eth1.bak ifcfg-eth1

#ifconfig eth0 | grep HWaddr

#cat ifcfg-eth0 | grep ADDR

#ifconfig eth1 | grep Hwaddr

#cat ifcfg-eth1 | grep ADDR

#cat /home/oracle/.bash_profile | grep ORACLE_SID

Export ORACLE_SID=RACDB2

#ping node1

#ping node2

#ping node1-priv

#ping node2-priv

4.时间同步

Node2]# ssh node1

Node1]# service xinetd start

Node1]# chkconfig time-stream on

Node1]# chkconfig xinetd on

Node1]# chkconfig ntpd on

Node1]#service ntpd restart

Node1]#exit

Node2]#crontab –e

0-59/1 * * * * rdate –s 192.168.100.101

0-59/1 * * * * ntpdate 192.168.100.101

Node2]# > /etc/resolv.conf

Node2]# ssh node1

Node1]# > /etc/resolv.conf

四.配置双机信任关系

Node1]#su – oracle

Node1]$ mkdir .ssh

Node1]$ chmod 700 .ssh

Node1]$ ssh-keygen –t rsa

Node1]$ ssh-keygen -t dsa

Node2]#su – oracle

Node2]$mkdir .ssh

Node2]$chmod 700 .ssh

Node2]$ssh-keygen -t rsa

Node2]$ssh-keygen -t dsa

Node1]$ cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys

Node1]$ cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

Node1]$ssh node2 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys Node1]$ssh node2 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys Node1]$ scp /home/oracle/.ssh/authorized_keys node2:/home/oracle/.ssh/authorized_keys

五.配置ASM

Node1]#service oracleasm configure

Node1]#service oracleasm createdisk vol1 /dev/sdd1

Node1]#service oracleasm createdisk vol2 /dev/sde1

Node1]#service oracleasm scandisks

Node1]#service oracleasm listdisks

Node1]#ssh node2

Node2]#service oracleasm scandisks

Node2]#service oracleasm listdisks

Node2]#exit

Node1]#cd /oradisk

Node1]#unzip oracle10g01_cluster*****

Node1]#chown –R oracle:oinstall /oradisk

Node1]#chmod –R 775 /oradisk

然后注销以oracle登录

Node1]$cd /oradisk/clusterware/cluvfy

Node1]$./runcluvfy.sh stage –pre crsinst -n node1.node2 -verbose

Node1]$export LANG=en_US

Node1]$/oradisk/clusterware/runInstaller -ignoreSysPreReqs

这里注意1.安装路径为/u01/app/oracle/product/10.2.0/crs_1

2.Specify Cluster Configuration 中添加上node2的信息

3.Specify Network Interface Usage中检查一下eth0和eth1的接口类型有没有反,应该eth0为public,eth1为private。

4.指定OCR配置的路径为/dev/raw/raw1,外部存储

5.指定V otingDisk的路径为/dev/raw/raw2,外部存储

6.安装过程中最重要的:在node2上用ntpdate 192.168.100.101与node1同步(手工进行且最好是每两三秒同步一次)。

7.当安装完成即出现要执行两个文件的窗口时,一定要将如下步骤操作完之后才可以点击OK。

Node1]#/u01/app/oracle/oraInventory/orainstRoot.sh

Node2]#/u01/app/oracle/oraInventory/orainstRoot.sh

Node1]#/u01/app/oracle/product/10.2.0/crs_1/root.sh(注意,在这里的执行过程中要查看/dev/raw/raw*是不是属于oracle和oinstall组)

Node2]#/u01/app/oracle/product/10.2.0/crs_1/root.sh(在这里执行完会报错,此时要修改/u01/app/oracle/product/10.2.0/crs_1/bin/vipca和srvctl )如下所示:

Node2]#vim vipca

if [ “Sarch” = “i686”–o “Sarch” = “ia64” ]

then

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

fi

unset LD_ASSUME_KERNEL (加上这句话)

Node2]#vim srvctl

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

unset LD_ASSUME_KERNEL(*******)

Node2]#/u01/app/oracle/product/10.2.0/crs_1/root.sh

Node2]#cd /u01/app/oracle/product/10.2.0/crs_1/bin/

Node2]#export LANG=en_US.UTF-8

Node2]#./vipca (会报错)

Node2]#./oifcfg iflist

Node2]#./oifcfg setif -global eth0/192.168.100.0:public

Node2]#./oifcfg setif -global eth1/19.168.100.0:cluster_interconnect

Node2]#./oifcfg getif

Node2]#./vipca (该项配置过程中注意两个vip的配置,完成之后回到node1上的clusterware安装界面点击ok)

集群软件安装完成之后:

Node1]#cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node1]#./crs_stat -t (可以看到有六个)

Node1]#ssh node2

Node2]#cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node2]#./crs_stat -t

Node2]#./crs_stop ora.node2.vip

Node2]#./crs_start ora.node2.vip

Node2]#tail -3 /etc/inittab

Node1]#tail -3 /etc/inittab

六.Clusterware卸载

自动卸载:

$$ORACLE_HOME/install/rootdelete.sh

$$ORACLE_HOME/install/rootdeinstall.sh

手工卸载:

#srvctl stop nodeapps –n node1

#rm -rvf /etc/oracle/*

#rm -rvf /etc/init.d/init.*

#rm -rvf /etc/rc3.d/*.crs

#rm -rvf /etc/rc5.d/*.crs

#cp /etc/inittab.orig /etc/inittab

#ps –ef | grep crs

#ps –ef | grep css

#ps –ef | grep evm

#rm –rvf /tmp/.oracle/*

#rm –rvf /var/tmp/.oracle/*

#rm -rvf /u01/app/oracle/*

#dd if=/dev/zero of=/dev/V otingdisk bs=1024 count=100000 #dd if=/dev/zero of=/dev/OCRdisk bs=1024 count=100000 #dd if=/dev/zero of=/dev/ASMdisk bs=1024 count=2000000 #dd if=/dev/zero of=/dev/ASMdisk2 bs=1024 count=1300000 #shutdown –r now

七.安装数据库软件

检查:

Node1]#cat /etc/hosts

Node1]#cat /etc/sysctl.conf

Node1]#cat /etc/security/limits.conf

Node1]#cat /etc/pam.d/login

Node1]#cat /etc/redhat-release

Node1]#cat /home/oracle/.bash_profile

注销以oracle用户登录

Node1]$cd /oradisk/database

Node1]$./runInstaller –ignoreSysPreReqs

注意在指定路径时的路径:/u01/app/oracle/product/10.2.0/db_1

在Specify Hardware Cluster Installation Mode然后将node1和node2都勾选上。

八.配置监听

1.选择集群配置(Cluster configuration)

2.两个结点都选上

Node1]$cd /u01/app/oracle/product/10.2.0/crs_1/bin/

Node1]$./crs_stat -t

Node1]$./crs_stat |more

Node1]$./crs_stat -p |more

Node1]$ssh node2

Node2]$cd /u01/app/oracle/product/10.2.0/crs_1/bin/

Node2]$./crs_stat -t

Node2]$./crs_stat | more (查询每个name的具体信息)

Node2]$./crs_stat –p |more(查询更具体的信息)

九.建立数据库实例

Node1]$dbca

安装的数据库的名称为RACDB

选择ASM自动存储管理

创建初始化参数文件的路径为:ORACLE_BASE/admin/+ASM/pfile/init.ora

ASM的两个磁盘建立成为外部的,一个命名为RAC_VOLGRP1,另一个命名为FLASH_RECOVERY_AREA

Databae component中的em仓库可选可不选

字符集选成ZHS16GBK

安装完成之后:

Node1]$ cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node1]$ ./crs_stat -t (此时会看到十三个RAC的管理进程)

Node1]$ ssh node2

Node2]$ cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node2]$ ./crs_stat -t (13个)

十.测试RAC

Node2断电,不可使用shutdown –h now,要使用非正常关机,否则不会产生飘移。

Node1]$ /u01/app/oracle/product/10.2.0/crs_1/bin/crs_stat –t (等待时间为1-5分钟就可以看到node2的虚拟IP飘移到了node1上)

Node2上电,再来查看,会看到虚拟IP飘移了回来。

十一.RAC启停及警告文件

关闭RAC时,先关闭监听,再关闭实例,然后关服务。

Node1]$ cd /u01/app/oracle/product/10.2.0/crs_1/bin/

Node1]$ ./crs_stat -t

Node1]$ lsnrctl stop

Node2]$ lsnrctl stop

Node1]$./srvctl status database –d RACDB

Node2]$ ./srvctl stop database -d RACDB –o immediate

Node1]$su – root

Node1]#cd /u01/app/oracle/product/10.2.0/crs_1/bin/

Node1]#./crsctl check crs

Node1]#./crsctl stop crs

Node2]$su – root

Node2]#cd /u01/app/oracle/product/10.2.0/crs_1/bin/

Node2]#./crsctl check crs

Node2]#./crsctl stop crs

开启RAC时,先开启服务,再开实例,然后起监听。

Node1]#cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node1]#./crsctl start crs

Node1]#./crsctl check crs

Node2]#cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node2]#./crsctl start crs

Node2]#./crsctl check crs

Node1]$cd /u01/app/oracle/product/10.2.0/crs_1/bin

Node1]$./srvctl start database -d RACDB

Node1]$ ./srvctl status database -d RACDB

Node1]$ lsnrctl start

Node2]$ lsnrctl start

Node1]$ ./crs_stat -t

Crs警告文件:

Node1]$tail –f /u01/app/oracle/product/10.2.0/crs_1/log/node1/alertnode1.log ASM警告文件:

Node1]$ tail –f /u01/app/oracle/admin/+ASM/bdump/alert_+ASM1.log

数据库警告文件:

Node1]$tail -f /u01/app/oracle/admin/RACDB/bdump/alert_RACDB1.log

相关主题
相关文档
最新文档