Oracle11gR2(ASM,UDEV)的RAC搭建安装

 

基本信息:

1) 安装包:

操作系统:rhel-server-6.7-x86_64-dvd.iso

rac安装包:

Oracle11gR2:linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

Grid Infrastructure(GI):linux.x64_11gR2_grid.zip

2) 服务器环境:

1. 两台虚拟机信息:

Hostname:rac01,IP:192.168.7.127(eth0)

Hostname:rac02,IP:192.168.7.128(eth0)

2. 心跳IP(在另一张网卡上设置)

(rac01)心跳IP:4.4.4.35(eth1)

(rac02)心跳IP:4.4.4.36(eth2)

3. VIP/SCANIP信息(无需提前设置,grid会默认设置)

RAC1的VIP:192.168.7.129

RAC1的VIP:192.168.7.130

ScanIP:192.168.7.131

实施步骤:

一、准备工作

1) 安装虚拟机(如果是EXSI虚拟机可以先安装节点1,节点2后续可以等节点1基本配置好了之后直接克隆),内存设置4G,存储大于30G,每个节点需要两个网卡(第二张网卡设置心跳IP,注意第二张网卡不要设置网关);

2) 给虚拟机配置好软件源,后面可以直接使用yum下载所需要的依赖包;

3) linux需要安装的包

需要添加以下的包,以确保Oracle的正常安装(暂时不添加也可以,在安装Oracle时会详细提示缺少哪个包的)

rpm -Uvh binutils-2.*

rpm -Uvh compat-libstdc++-33*

rpm -Uvh elfutils-libelf-0.*

rpm -Uvh elfutils-libelf-devel-*

rpm -Uvh gcc-4.*

rpm -Uvh gcc-c++-4.*

rpm -Uvh glibc-2.*

rpm -Uvh glibc-common-2.*

rpm -Uvh glibc-devel-2.*

rpm -Uvh glibc-headers-2.*

rpm -Uvh pdksh-5*

rpm -Uvh libaio-0.*

rpm -Uvh libaio-devel-0.*

rpm -Uvh libgcc-4.*

rpm -Uvh libstdc++-4.*

rpm -Uvh libstdc++-devel-4.*

rpm -Uvh make-3.*

rpm -Uvh sysstat-7.*

rpm -Uvh unixODBC-2.*

rpm -Uvh unixODBC-devel-2.*

(一些依赖包yum安装找不到可以尝试下载相关的rpm包安装)

备注:pdksh安装:

RHEL 6.7不提供pdksh包(有ksh包),需要单独下载(http://pkgs.org/ 或 centos5.6光盘)并使用rpm手动安装:

#所有节点均执行

[root@cheastrac01:~]$rpm -ivh pdksh-5.2.14-37.el5_8.1.i386.rpm

[root@cheastrac01:~]$rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

4) 虚拟机HOSTS和主机名配置(根据实际命名)

#所有节点均执行
[root@cheastrac01:~]#cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=cheastrac01

[root@cheastrac02:~]#cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=cheastrac02

5) 编辑/etc/hosts配置hosts(根据实际IP编辑):

#所有节点均执行
[root@cheastrac01:~]$cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#rac

116.1.1.57 cheastrac01

116.1.1.58 cheastrac02

116.1.1.59 cheastrac01-vip

116.1.1.60 cheastrac02-vip

4.4.4.35 cheastrac01-priv

4.4.4.36 cheastrac02-priv

116.1.1.61 cheastrac-scan

6) 防火墙、SELinux和NTP禁用

Ø 关闭服务器防火墙:

所有节点均执行

[root@cheastrac01:~]$service iptables stop

[root@cheastrac01:~]$chkconfig iptables off

Ø 禁用SELinux:

#所有节点均执行

[root@cheastrac01:~]$sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Ø 禁用NTP并删除其配置文件:(禁用ntp并删除配置文件后,rac的grid安装时会自动使用其自带的CTSS进行时间管理)(后续可能安装grid最后阶段会因为这个报错,如果报错可以忽略)

#所有节点均执行
[root@cheastrac01:~]$service ntpd stop

[root@cheastrac01:~]$chkconfig ntpd off

[root@cheastrac01:~]$mv /etc/ntp.conf /etc/ntp.conf.bak

7) 资源限额配置

a) 为grid和oracle配置资源限额。

  编辑/etc/sysctl.conf,添加以下内容:

#所有节点均执行
[root@cheastrac01:~]$cat /etc/sysctl.conf

......

#oracle rac

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824 # 1G

kernel.shmmax = 96636764160 #依当前内存而定,通常60%-80%左右,自己算一下1024*1024*1024

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500

[11:10 root@cheastrac01:~ 11]$sysctl -p #令配置生效

(修改/etc/sysctl.conf文件。其中的几个参数的含义
kernel.shmmax表示最大共享内存,如果小的话可以按实际情况而定,一般为物理内存的一半,不过我的虚拟机只有256M,所以就全部算进去了。
shmmni表示最小共享内存固定4096KB
shmall表示所有内存大小
sem 4个参数依次SEMMSL:每个用户拥有信号量最大数,SEMMNS:系统信号量最大数,SEMOPM:每次semopm系统调用操作数,SEMMNI:系统辛苦量集数最大数。这4个参数为固定内容大小。
file-max固定大小65536
ip_local_port_range表示端口的范围,为指定的内容。

一般來說,1-4G 的實體記憶體,可以直接設置shmmax為最大實體記憶體即可,那麼SGA 肯定在一個共用記憶體段中,32Bit Linux 系統實體記憶體大於4G 的設置為4G 即可 。

總之,一般設置shmmax >=SGA(32Bit 系統是否支援到1.7G 以上SGA 需要注意) ,缺省為32M,
如果是64Bit 的Linux 作業系統,shmmax 設置為大於SGA_MAX_SIZE即可。)

b) 编辑/etc/security/limits.conf,添加以下内容:

#所有节点均执行
[root@cheastrac01:~]$cat /etc/security/limits.conf

......

#oracle rac

grid soft nofile 1024

grid hard nofile 65536

grid soft nproc 2047

grid hard nproc 16384

grid soft stack 10240

grid hard stack 32768

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft stack 10240

oracle hard stack 32768

备注:Item:限制用户的资源类型

core——core文件大小(KB)

data——最大数据大小(KB)

fsize——最大文件大小(KB)

memlock——最大可用内存空间(KB)

nofile——最大可以打开的文件数量

rss——最大可驻留空间(KB)

stack——最大堆栈空间(KB)

cpu——最大CPU使用时间(MIN)

nproc——最大运行进程数

as——地址空间限制

maxlogins——用户可以登录到系统最多次数

locks——最大锁定文件数目

c) 编辑/etc/pam.d/login,添加以下内容:

#所有节点均执行

[root@cheastrac01:~]$echo "session required pam_limits.so" >> /etc/pam.d/login

d) 调整tmpfs大小(非必须)

如果内存较大,sga target不能超过tmpfs大小,因此需要将tmpfs调整到一个大于sga target的值。编辑/etc/fstab,修改tmpfs行:

#所有节点均执行
tmpfs                   /dev/shm                tmpfs   defaults,size=4G       0 0     #如服务器内存4B,sga target为1GB(后续oracle安装的时候会有设置),则可设置tmpfs为2GB
#所有节点均执行

[root@cheastrac01:~]$mount -o remount /dev/shm
[root@cheastrac01:~]$df -h

(如果没有生效,可以重启系统生效)

8) 用户和组配置

新建grid和oracle相关用户和组。

#所有节点均执行,且需保证所有节点对应的组和用户id相同
[root@cheastrac01:~]$groupadd -g 4321 oinstall

[root@cheastrac01:~]$groupadd -g 4322 dba

[root@cheastrac01:~]$groupadd -g 4323 oper

[root@cheastrac01:~]$groupadd -g 4324 asmdba

[root@cheastrac01:~]$groupadd -g 4325 asmadmin
[root@cheastrac01:~]$groupadd -g 4326 asmoper
[root@cheastrac01:~]$useradd -u 4321 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid -s /bin/bash -c "Grid Infrastructure Owner" grid
[root@cheastrac01:~]$useradd -u 4322 -g oinstall -G asmadmin,asmdba,dba,oper -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle
[root@cheastrac01:~]$echo "123456" | passwd --stdin grid #为grid和oracle用户设置密码
[root@cheastrac01:~]$echo "123456" | passwd --stdin oracle

设置密码为123456

新建grid和oracle安装目录

#所有节点均执行

[root@cheastrac01:~]$mkdir -p /u01/app/grid
[root@cheastrac01:~]$mkdir -p /u01/app/oracle
[root@cheastrac01:~]$mkdir -p /u01/app/11.2.0/grid
[root@cheastrac01:~]$chown -R grid:oinstall /u01
[root@cheastrac01:~]$chown -R oracle:oinstall /u01/app/oracle
[root@cheastrac01:~]$chmod -R 775 /u01

 配置grid和oracle用户环境变量

grid环境变量:编辑/home/grid/.bash_profile文件,添加以下内容:

#所有节点均执行
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ less .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
ORACLE_SID=+ASM1; export ORACLE_SID #节点2设置成+ASM2
JAVA_HOME=/usr/local/java;export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm;export ORACLE_TERM
NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=american_america.ZHS16GBK
alias sqlplus="rlwrap sqlplus"
umask 022

oracle环境变量:编辑/home/oracle/.bash_profile文件,添加以下内容:

#所有节点均执行
[grid@rac1 ~]$ su - oracle
Password:
[oracle@rac1 ~]$ less .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
ORACLE_SID=test1; export ORACLE_SID #节点2设置成test2
ORACLE_UNQNAME=test; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
umask 022

9) SSH互信配置

 配置所有节点间ssh无密码登录,保证节点间文件互传。需要分别配置grid和oracle用户的ssh互信,root用户可配可不配。本项目只有两个节点:cheastrac01, cheastrac02。以配置grid用户的ssh互信为例:

在所有节点上登录到grid用户,执行以下命令:

#所有节点均执行

[grid@cheastrac01:~]$rm -rf ~/.ssh
[grid@cheastrac01:~]$mkdir ~/.ssh
[grid@cheastrac01:~]$chmod 700 ~/.ssh
[grid@cheastrac01:~]$/usr/bin/ssh-keygen -t rsa     #提示输入时一路回车即可

 在节点1上执行以下命令:

#仅节点1执行
[grid@cheastrac01:~]$ssh cheastrac01 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
[grid@cheastrac01:~]$ssh cheastrac02 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
[grid@cheastrac-1:~]$scp ~/.ssh/authorized_keys cheastrac02:.ssh/authorized_keys

在节点2上执行以下命令:

#仅节点2执行
[grid@cheastrac02:~]$chmod 600 ~/.ssh/authorized_keys

 测试ssh互信是否配置成功:

#所有节点均执行,以下命令第一次执行需要输入密码,以后则不需要,表示配置成功
[grid@cheastrac01:~]$ssh cheastrac01 date
[grid@cheastrac01:~]$ssh cheastrac02 date
[grid@cheastrac02:~]$ssh cheastrac01 date
[grid@cheastrac02:~]$ssh cheastrac02 date

登录到oracle账号下,重复以上操作。

编辑/etc/ssh/sshd_config, 将#LoginGraceTime 2m 改为LoginGraceTime 0,使ssh认证不超时。

10) 共享存储配置 (所有节点都要执行)

l 服务端创建共享磁盘

这里我们有现成的iscsi服务端,可以直接在服务端上面创建一个共享磁盘,这里我创建了一个30G的盘,设置共享目标为节点1的IP地址,同样重复添加该共享盘到目标节点2;

l iscsi客户端安装

yum install -y install iscsi-initiator-utils

service iscsi restart

l 连接共享盘,输入命令如下:

iscsiadm -m discovery -t sendtargets -p 192.168.0.119

iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login

此处target-name为上一步发现target时的获得的。

此时通过fdisk -l就可以看到映射过来的磁盘,该磁盘可以像使用本地磁盘一样进行格式化,分区等操作。

提示成功,则表示连接共享盘成功

然后查看到iscsi挂载盘成功,fdisk –l查看为sdc

将sdc分成3个分区,sdc1,sdc2,sdc3,无需格式化;

l 对共享盘进行udev设置)

也可以用oracle的oracleasm,本次用undev对共享盘进行设置

,配置规则,新建规则文件: vim /etc/udev/rules.d/60-raw.rules

添加如下内容:

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

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

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

KERNEL=="raw[1]", MODE="0660", GROUP="asmadmin", OWNER="grid"

KERNEL=="raw[2]", MODE="0660", GROUP="asmadmin", OWNER="grid"

KERNEL=="raw[3]", MODE="0660", GROUP="asmadmin", OWNER="grid"

wq保存退出。

输入start_udev 命令时规则生效,进入/dev/raw查看,如图:

二、Grid安装

grid安装需要登录到grid用户下进行,绝大多数操作仅需在节点1上执行即可。

将rac安装文件拷贝到/home/grid/目录下,将rac安装文件grid的权限修改为chown -R grid:oinstall grid,并解压安装包;

在grid的rpm目录下有一个cvuqdisk的rpm包,在所有节点上分别安装:

#所有节点均执行(以root用户安装)

[root@cheastrac01:~]rpm -ivh /home/grid/rpm/cvuqdisk-1.0.9-1.rpm

执行安装前环境确认,检查各项需求是否通过:

#仅节点1执行

[grid@cheastrac01:~]$cd grid

[grid@cheastrac01:grid]$./runcluvfy.sh stage -pre crsinst -n cheastrac01,cheastrac02 -verbose

如有检查项未通过,请对照提示逐一修正后再次检查,直到检查项全部通过为止(因本项目没有配置DNS服务,因此DNS相关检查项会失败,安装系统为64位, 32位依赖包也会检查失败,尽量补全32位的依赖包。如果忽略,后面执行安装发现也能成功)

例如:yum install unixODBC-devel.i686 -y

正式安装grid。先暂时将系统环境变量LANG设置为英文,防止grid安装界面中文乱码:

#仅节点1执行

[grid@cheastrac01:~]$export LANG=en_US

启动安装程序:

#仅节点1执行

[grid@cheastrac01:~]$./runInstaller

 选择跳过软件更新,下一步:

 选择为集群安装grid,下一步:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

选择高级安装,下一步:

  选择英文和简体中文支持,下一步:

 

设置集群名称和scan名称,其中集群名称随意,scan名称必须与/etc/hosts文件中scan ip的映射名相同;不配置GNS,下一步:

默认会识别节点1,将其他节点手动添加到列表中(Public Hostname和Virtual Hostname均与/etc/hosts中的映射相同)

下一步:

会自动识别之前配置好的公网段和私网段,(如果没识别出来那就是网络配置有问题,需要重新配置网络)保持默认,下一步:

选择使用Oracle自动存储管理方式管理数据库磁盘,下一步:

配置仲裁盘和Oracle集群注册表磁盘组,本项目命名为OCR,因只分配了一个磁盘,故Reduandancy选择External,查看磁盘列表选择事先准备好的共享盘(如果没有识别出来,可以点击Change Discovery Path,更改磁盘搜索路径,让安装程序搜索到为asm准备的磁盘):

选中asmocr磁盘(一个磁盘)加入仲裁磁盘组,下一步:

选择为所有的ASM磁盘组管理账号使用相同的密码(本项目设置为123456),下一步:

 选择不使用IPMI,下一步:

安装程序会自动识别ASM相关管理组,保持默认,下一步:

安装程序会根据当前用户的环境变量自动识别Base和Grid目录,保持默认,下一步:

使用默认的Inventory目录,下一步:

安装程序会自动检查所有先决条件是否满足,下图列出的警告项可忽略,失败项为DNS检查,也可忽略。勾选忽略所有,下一步:

弹出警告框,选是,出现grid的完整安装配置响应文件,确认无误后点击安装:

建议保存响应文件。开始安装:

 耐心等待安装完成。

 弹出提示要求以root账户在所有节点上执行两个脚本文件。注意:请依次在所有节点执行!所有节点脚本执行完成之前,不要关闭下图弹出框!

执行orainsRoot.sh脚本

执行root.sh文件时,所有需要输入的地方均保持默认即可

l 执行脚本之前:

进入/lib64目录,然后执行

[root@web1 lib64]# ls -lrt libcap

libcap-ng.so.0 libcap-ng.so.0.0.0 libcap.so.2 libcap.so.2.16

[root@web1 lib64]# ls -lrt libcap.so.2

lrwxrwxrwx. 1 root root 14 12月 23 21:21 libcap.so.2 -> libcap.so.2.16

[root@web1 lib64]# ln -s libcap.so.2.16 libcap.so.1

(为了解决一个报错:Oracle Rac root.sh报错 Failed to create keys in the OLR, rc = 127 libcap.so.1)

l 注意:这里由于oracle的一个BUG,在执行root.sh的时候,必须重新开启一个控制台反复执行一个命令,一边执行该root.sh脚本,一边执行脚本:

执行脚本

/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

所有节点脚本执行完毕后,点击OK关闭弹出框,继续完成安装。

弹出集群确认单元失败的错误,可以直接忽略:

点击OK关闭弹出框,下一步:选择继续:

关闭安装界面,完成安装。

 检查集群状态:

#所有节点均执行(grid用户)

[grid@cheastrac01:~]$crsctl check cluster
[grid@cheastrac01:~]$srvctl status nodeapps
[grid@cheastrac01:~]$srvctl config nodeapps

三、创建ASM磁盘组

使用ASM配置Oracle RAC集群通常需要创建三个ASM磁盘组:

OCR磁盘组:自Oracle 11.2版以后,votedisk(表决盘:记录集群节点信息,提供仲裁防止脑裂)和ocr(oracle集群注册表:记录并维护整个集群的配置信息)已经支持放置于同一个ASM磁盘组中。因此这里为votedisk和ocr提供一个磁盘组:OCR。

FRA磁盘组:快速恢复区,用于支持数据库快速闪回,同时也是默认的归档日志存放位置。单独创建一个磁盘组。

DATA磁盘组:用于存放数据文件的磁盘组。

在安装GRID的时候,已经创建了必要的OCR磁盘组,接下来需要使用ASM配置助手创建其他两个磁盘组以便完成Oracle数据库的创建。以grid用户输入以下命令开始配置:

 在安装GRID的时候,已经创建了必要的OCR磁盘组,接下来需要使用ASM配置助手创建其他两个磁盘组以便完成Oracle数据库的创建。以grid用户输入以下命令开始配置:

#仅在节点1执行

[grid@cheastrac01:~]$asmca

 弹出配置窗口,选择disk groups

分别按下图创建FRA和DATA磁盘组:

 

 磁盘组创建完成,退出ASM配置助手。

四、ORACLE软件安装

集群框架GRID安装完成并开启后,剩下的所有操作均只需在节点1执行即可,其余节点会自动完成配置同步。接下来登入节点1的oracle账户,开始oracle数据库软件的安装。

如同验证grid先决条件一样,先运行runcluvfy.sh验证数据库软件的先决条件(如果按照之前的准备工作做下来,应该还是只有DNS与32位依赖包检查失败,可以忽略):

#仅节点1执行

[grid@cheastrac01:grid]./runcluvfy.sh stage -pre dbinst -n cheastrac01,cheastrac02 -verbose

转入解压安装文件后产生的database目录,执行runInstaller脚本开始安装:

#仅节点1执行

[oracle@cheastrac01:database]export LANG=en_US

[oracle@cheastrac01:database]./runInstaller

 弹出安装界面:

不提供邮箱和oracle支持密码,下一步:

忽略提示,下一步:

选择跳过软件更新,下一步:

选择仅安装数据库软件(其实如果先完成了ASM磁盘组的创建的话,也可以选择安装软件并配置数据库,这里还是分开操作比较保险),下一步:

选择为Oracle RAC安装,并勾选所有节点,会将数据库软件同时安装到所有节点,下一步:

选择英文和简体中文,下一步:

选择企业版,另外有可选项可以选择Oracle数据库的一些高级特性,这里保持默认即可,下一步:

安装程序会自动根据之前环境变量的设置来判断oracle软件的base目录和home目录,下一步:

安装程序会自动根据之前创建的用户组判断数据库管理的相关组,下一步:

开始检查Oracle软件安装的先决条件:

查看到相应的faild,可以点击“FIX&check again”检查并执行相应的脚本解决;

关于依赖包,这些报错的依赖包可能就是之前检查出的缺少32位。

以下检查项可以忽略,所有点击忽略所有,下一步:

点击是进行忽略,下一步:

 生成安装响应文件,建议保存,点击安装:

开始安装,等待安装完成:

按照提示,分别在所有节点上以root用户执行上述脚本:

#所有节点均执行

[root@cheastrac01:~]sh /u01/oracle/product/db11g/root.sh

关闭弹窗,完成安装。

五、数据库创建

 开始实例和数据库的创建,以oracle用户登录节点1,开启数据库配置助手开始创建:

#仅节点1执行,进入数据库home底下

[oracle@cheastrac01:~]export LANG=en_US

[oracle@cheastrac01:~]dbca

弹出配置界面:

选择Oracle RAC数据库,下一步:

选择创建数据库,下一步:

 选择事务型数据库,下一步:

选择管理员管理方式,填写实例名(数据库与实例一一对应,通常数据库名和实例名相同),选中全部节点(请点击Select All),安装程序会将数据库创建到所有节点,下一步:

启用EM,即web管理控制台,如果不使用的话,这里不启用也行,下一步:

 选择为所有数据库管理账号设置相同的密码,下一步:

选择自动存储管理和OMF管理数据文件,数据库位置选择之前创建的DATA磁盘组,下一步:

 输入之前给ASM管理账号ASMSNMP配置的密码(安装GRID过程中曾要求给ASM相关管理账号设置一个密码),OK确认,下一步:

勾选启用闪回区,闪回区位置为之前配置的FRA磁盘组,大小不高于FRA磁盘组大小即可,根据需要选择是否启用归档。下一步:

 根据需要选择是否需要安装样本schema(通常练习安装,生产不安装),下一步:

内存配置:选择典型配置,内存占用配置为70%左右,启用自动内存管理;

size配置:块大小默认,最大并发进程数(关联最大并发会话连接数)通常设置为CPU核数的3倍,也可适当增减,下一步:

字符集:数据库字符集按需选择,通常为UTF8或者GBK;

  连接模式:保存默认的独享服务器模式即可,下一步:

设置数据库存储相关参数,保持默认即可,下一步:

勾选创建数据库,下一步:

生成总结文件,建议保存,点击OK确认,开始配置:

 等待配置完成:

  配置完成,数据库相关账号密码默认只启用SYS和SYSTEM账号,其他账号被锁定,如需解锁/锁定或者更改密码的需要,可以打开账号配置页面进行配置。

  在Oracle RAC中,配置完数据库后会自动配置监听器(无论配置多少实例,GRID都会自动配置监听器),所以无需再进行监听器的配置。

  至此,全部的Oracle RAC配置完成。

Ps:检查

检查crs资源状态

[grid@rac2 ~]$ crs_stat -t

[oracle@rac2 ~]$ sqlplus / as sysdba

六、基本测试与使用

检查 RAC 状态

$ srvctl config database -d rac

Database unique name: rac

Database name: rac

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: /u01/oradata/rac/spfilerac.ora

Domain: localdomain

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools: rac

Database instances: rac1,rac2

Disk Groups:

Services:

Database is administrator managed

$

$ srvctl status database -d rac

Instance rac1 is running on node rac1

Instance rac2 is running on node rac2

$

V$ACTIVE_INSTANCES视图还可以显示当前状态的实例。

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 26 19:04:19 2009

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

SQL> SELECT inst_name FROM v$active_instances;

INST_NAME

--------------------------------------------------------------------------------

rac1.localdomain:rac1

rac2.localdomain:rac2

SQL>

检查创建的数据库

srvctl 工具可以显示当前的 RAC 数据库配置和状态。

显示 AKA 群集数据库的配置信息:

oracle@RAC1> srvctl config database -d AKA

所有实例和服务的状态:

oracle@RAC1> srvctl status database -d AKA

某个特定节点上应用程序状态:

oracle@RAC1> srvctl status nodeapps -n node1

显示节点应用程序配置信息(VIP,GSD,ONS,监听器)

oracle@RAC1> srvctl config nodeapps -n node1 -a -g -s -l

VIP exists.: /gentic-vip/192.168.138.130/255.255.255.0/eth0

GSD exists.

ONS daemon exists.

Listener exists.

群集中运行的所有实例:

sqlplus system/manager@AKA1

SELECT inst_id,

instance_number,

instance_name,

parallel,

status,

database_status,

active_state,

host_name host

FROM gv$instance

ORDER BY inst_id;

视图 V$ACTIVE_INSTANCES 也可以显示当前实例的状态:

SELECT * FROM v$active_instances;

最后,GV$ 允许你显示整个 RAC 的全局信息:

SELECT inst_id, username, sid, serial#

FROM gv$session

WHERE username IS NOT NULL;

七、拓展之共享盘是多路径+UDEV规则

一、multipath在redhat 6.2中的基本配置:

1. 通过命令:lsmod |grep dm_multipath 检查是否正常安装成功。如果没有输出说明没有安装那么通过yum功能安装一下软件包:yum –y install device-mapper device-mapper-multipath

接着通过命令:multipath –ll 查看多路径状态查看模块是否加载成功

[root@liujing ~]# multipath –ll 查看多路径状态

Mar 10 19:18:28 | /etc/multipath.conf does not exist, blacklisting all devices.

Mar 10 19:18:28 | A sample multipath.conf file is located at

Mar 10 19:18:28 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf

Mar 10 19:18:28 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf

Mar 10 19:18:28 | DM multipath kernel driver not loaded ----DM模块没有加载

如果模块没有加载成功请使用下列命初始化DM,或重启系统

---Use the following commands to initialize and start DM for the first time:

# modprobe dm-multipath

# modprobe dm-round-robin

# service multipathd start

# multipath –v2

初始化完了之后再通过multipath -ll命令查看是否加载成功

[root@liujing ~]# multipath -ll

Mar 10 19:21:14 | /etc/multipath.conf does not exist, blacklisting all devices.

Mar 10 19:21:14 | A sample multipath.conf file is located at

Mar 10 19:21:14 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf

Mar 10 19:21:14 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf

DM multipath kernel driver not loaded ----这个提示没了说明DM模块已加载成功。

从上面的提示可以看到,DM模块是成功加载,但是/etc/下没有multipath.conf 配置文件,下一步介绍如何配置multipath.conf 文件。

2. 配置multipath:

从文档里拷贝一个配置文件到/etc目录中。

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc

编辑/etc/multipath.conf

参考链接:

获取wwid的方法:

(1) 默认情况下,将使用 /etc /multipath/bindings 内的配置设定具体每个多路径设备名,如果在/etc/multipath.conf中有设定各wwid 别名,别名会覆盖此设定。

(2) multipath -v3命令查找

编辑完成后保存配置,同时通过命令:

# /etc/init.d/multipathd start #开启mulitipath服务

如果出现无法开启服务的情况,没有提示OK的话如下:

[root@liujing mapper]# service multipathd start

Starting multipathd daemon: 没有提示OK

重新开关一下服务就可以解决了。

[root@liujing mapper]# /etc/init.d/multipathd stop

Stopping multipathd daemon: [ OK ]

[root@localhost mapper]# /etc/init.d/multipathd start

Starting multipathd daemon: [ OK ] -----提示OK 正常开启服务

3.多路径服务查看

1. 通过命令查看:

[root@liujing mapper]# multipath –ll

2. 查看目录文件夹

目录/dev/mapper/ 下多了三个文件夹mpatha 和mpathap1。

启动成功后,我们会在dev目录下看到下面的目录:

/dev/mapper/mpathn,

/dev/mpath/mpathn,

/dev/dm-n.

说明: 其中/dev/mapper/mpathn 是软件虚拟出来的多路径设备,这个可以被我们用来挂载使用。

/dev/mpath/mpathn 这个是udev设备管理器创建的,不能用来挂载。

/dev/dm-n 这个是软件自身使用的,不能被软件以外使用。不可挂载。

3. 同时fdisk –l的命令下也多了三个设备标识:

4.将multipathd服务设置成开机自启动

chkconfig multipathd on

5.其他命令

# multipath -F #删除现有路径 两个新的路径就会被删除

# multipath -v2 #格式化路径 格式化后又出现

二、使用UDEV绑定ASM多路径磁盘

1. 找出目标磁盘dm-*的wwid(具体dm名称根据多路径盘的映射查找)

使用命令/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/dm-*

得出result

2. 新建/etc/udev/rules.d/99-oracle-permissions.rules规则文件,将result替换到文件的result

KERNEL=="dm-[0-9]*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360003ff3419a5dc0a4319dba3fd76579", OWNER="grid", GROUP="asmadmin", MODE="0660",SYMLINK+="asmdata1"

KERNEL=="dm-[0-9]*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360003ff3419a5dc0a0eef4368193eeed", OWNER="grid", GROUP="asmadmin", MODE="0660",SYMLINK+="asmdata2"

KERNEL=="dm-[0-9]*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360003ff3419a5dc0b837f3b33c12b545", OWNER="grid", GROUP="asmadmin", MODE="0660",SYMLINK+="asmdata3"

3. 重启多路径服务

# service multipathd restart

4. 检查权限是否设置正确

5. 确保多路径设备的ASM符号链接已经存在# ls -l /dev/asm*

三、实际rac使用注意事项

安装grid过程中,提示选择仲裁盘时,需要修改asm路径为/dev/asm*

参考下图:

四、参考链接

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐