暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RAC安装配置

原创 sdy337969667 2021-04-06
1461

查看rac连接哪个实例:
select INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME from v$instance;
集群中各个节点的实例名名称后面加1、2、3一次类推,ASM实例名也是类似,配置oracle和
grid用户环境变量时需要注意按照规则进行配置。
11gR2 RAC数据库安装
前期准备
调整各种参数调整,创建用户及相关配置。
1、创建共享硬盘
1.1两台手动添加一个共享磁盘(一台添加:独立永久—立即分配所有空间­磁盘为单个文件;
另外一台共享第一台的磁盘)。
1.2把2台虚拟机修改vmx配置文件添加如下参数
disk.locking = “false”
diskLib.dataCacheMaxReadAheadSize = “0”
diskLib.DataCacheMinReadAheadSize = “0”
diskLib.dataCachePageSize = “4096”
diskLib.maxUnsyncedWrites = “0”
1.3在其中一个节点针对共享磁盘进行分区。
disk.EnableUUID = "TRUE"­­­­配置oracle共享存储,识别设备sda的wwid设备代码
安装操作系统上传安装包
将操作系统安装成带图形的模式,并copy安装光盘到/mnt目录下或者通过其他方式配置
yum,创建YUM配置文件(编辑yum配置文件,结尾必须是.repo):
vi /etc/yum.repos.d/myoel.repo
添加以下内容:
[dvdinfo]
name=myoel
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
保存退出后运行Server#yum makecache(将该挂载后的mnt/iso/Server目录中的软件写入到
软件库中)
上传oracle软件安装包p13390677_112040_Linux­x86­64_1of7.zip,
p13390677_112040_Linux­x86­64_2of7.zip,p13390677_112040_Linux­x86­64_3of7.zip,并解压。
创建组和用户及目录
在两台服务器上创建dba、grid组及grid、oracle用户,修改用户密码,两边建议一致。
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba
useradd -g oinstall -G dba,asmdba,asmadmin,asmoper,oper oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
passwd oracle
passwd grid
网络配置
1、先配置两台服务器公有ip和私有ip,所有公有ip和私有ip在每台服务器上都能ping通,
修改两台服务器/etc/hosts文件,且两台服务器名与hosts文件中一致。修
改/etc/sysconfig/network文件hostname。
vi /etc/hosts
192.168.1.11 rac01.example.com rac01
192.168.1.12 rac02.example.com rac02
192.168.1.111 rac01-vip.example.com rac01-vip
192.168.1.112 rac02-vip.example.com rac02-vip
1.1.1.11 rac01-priv.example.com rac01-priv
1.1.1.12 rac02-priv.example.com rac02-priv
192.168.1.100 rac-scan.ofilm.com.cn rac-scan
2、删除文件/etc/udev/rule.d/70-XXX-net-XXX
3、删除文件/etc/resolv.conf ,或者将nameserver条目删除,不使用dns解析,只使用
hosts解析。# mv /etc/resolv.conf /etc/resolv.conf.bak
4、禁止防火墙及SELINUX

vi /etc/selinux/config

SELINUX=enforcing -> SELINUX=disabled

sestatus

setenforce 0

chkconfig --level 2345 iptables off

chkconfig --list |grep iptable

5、检查服务器时间,如果与标准时间不一致,或者两台服务器时间不一致,需要同步标准
时间:
ntpdate 192.168.0.190
配置grid用户的环境变量:
rac01节点修改grid用户.bash_profile文件
export ORACLE_BASE=/u01/app/grid
export GRID_HOME=/u01/app/11.2.0/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM1
export PATH=${PATH}:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:${LD_LIBRARY_PATH}
rac02节点修改grid用户.bash_profile文件
export ORACLE_BASE=/u01/app/grid
export GRID_HOME=/u01/app/11.2.0/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM2
export PATH=${PATH}:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:${LD_LIBRARY_PATH}
配置oracle用户的环境变量:
设置环境变量
所有节点修改oracle用户下的.bash_profile文件
export ORACLE_SID=oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/perl/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PERL5LIB=$ORACLE_HOME/perl/lib/5.10.0:$ORACLE_HOME/perl/lib/site_perl/5.10.0export PATH LD_LIBRARY_PATH PERL5LIB
配置ssh信任
1、运行以下脚本配置信任关系(用root用户分别执行一次即可):
/mnt/grid/sshsetup/sshUserSetup.sh -user grid -hosts “rac01 rac02” -advanced -
noPromptPassphrase
/mnt/grid/sshsetup/sshUserSetup.sh -user oracle -hosts " rac01 rac02" -advanced
-noPromptPassphrase
2、分别用grid和oracle用户执行以下命令,确认不用输入密码可以执行,如有循环输入密
码,再次执行配置信息关系(步骤1)
ssh rac01 date
ssh rac02 date
ssh rac01-priv date
ssh rac02-priv date
设置系统参数
检查系统版本(2.6.32-71.el6.x86_64 or later)
uname ­r
2.6.32-279.el6.x86_64
2.6.32-100.28.5.el6.x86_64 or later(oracle linux)
内存容量swap区
grep MemTotal /proc/meminfo
MemTotal: 264407324 kB
grep SwapTotal /proc/meminfo
SwapTotal: 106559480 kB
检查系统包都安装(两个节点都要安装)
yum install -y binutils
yum install -y compat-libcap1
yum install -y compat-libstdc*
yum install -y gcc
yum install -y gcc-c++
yum install -y glibc
yum install -y glibc-devel
yum install -y ksh
yum install -y libgccyum install -y libstdc++
yum install -y libaio
yum install -y make
yum install -y sysstat
yum install -y compat-libcap1
yum install -y compat-libstdc++
yum install -y glibc-devel
yum install -y ksh
yum install -y libstdc++
yum install -y libaio
yum install -y libaio-devel
配置SWAP空间至少2G
[root@host /]# free -m
[root@host /]# dd if=/dev/zero of=/home/swap bs=1024 count=64048000
[root@host /]# mkswap /home/swap
[root@host /]# swapon /home/swap
[root@host /]# free -m
大于256G以上的内存配置大页
修改资源限制

vi /etc/sysctl.conf

kernel.sem = 256 32000 100 142
#kernel.shmall= 2097152
kernel.shmmax=2147483648 #Half the size of the physical memory, and at least
2147483648
kernel.shmmni= 4096
kernel.msgmax= 8192
kernel.msgmnb= 65535
kernel.msgmni= 2878
fs.file-max= 6815745
net.ipv4.ip_local_port_range= 10000 65000
net.ipv4.tcp_tw_recycle= 0
net.core.rmem_default= 262144
net.core.rmem_max =4194304
net.core.wmem_default =262144
net.core.wmem_max =1048576fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

sysctl -p

vi /etc/security/limits.conf

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 20470
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft memlock unlimited
oracle hard memlock unlimited
修改系统参数,在以下行添加#,注释掉以下行内容:
vi /etc/security/limits.d/90-nproc.conf

* soft nproc 1024

ulimit -a --确认

关闭NTP
/sbin/service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.orig
rm /var/run/ntpd.pid
crontab –e --定义时钟同步内网ntp服务器
0 9 * * * /usr/sbin/ntpdate 192.168.0.190 >/dev/null 2>&1
安装必须的其它软件包
如果未安装,建议安装ftp、unzip、vnc软件,并配置ftp开机启动。

chkconfig --level 2345 vsftpd on

chkconfig --list |grep ftp

启用hugepage—慎重,将导致系统无法重启
修改配置文件/etc/sysctl.conf,增加以下行,执行sysctl -p生效。# vi /etc/sysctl.conf
vm.min_free_kbytes=2097152
vm.vfs_cache_pressure=120
vm.swappiness=40
vm.nr_hugepages=81920 # 256g总内存160g hugepages设置。
Hugepages需设置为比SGA略大一点,值为<total_size>/< Hugepagesize>,Hugepagesize
通过命令grep Hugepagesize /proc/meminfo查出。

vi /etc/security/limits.conf 添加以下行,值为总内存*0.9,单位kb(以下为

256G内存例子)。单个用户使用内存最大值。

  • soft memlock 238109184
  • hard memlock 238109184
    配置存储
    需要3个1g以上OCR的裸盘,1个用于归档的裸盘,1个以上存放数据盘(每个盘不能大于
    2T)。
    配置存储权限 ,先查看多路径设备对应的dm的文件号,或者文件名,避免重起后dm顺序该变
    导致权限变化问题。

ls -l /dev/mapper/

ls -l /dev/dm-*

vi /etc/udev/rules.d/99-asm.rules

#KERNEL==“dm-[0-7]”, OWNER=“grid”, GROUP=“asmadmin”, MODE=“0660”
ENV{DM_NAME}“OCR*”, OWNER:=“grid”, GROUP:=“asmadmin”, MODE:=“660”
ENV{DM_NAME}
“ARCHIVE*”, OWNER:=“grid”, GROUP:=“asmadmin”, MODE:=“660”
ENV{DM_NAME}“DATA*”, OWNER:=“grid”, GROUP:=“asmadmin”, MODE:=“660”
重启操作系统后,确认上面配置未清除。
如果磁盘里添加过一个磁盘组则无法再次添加其他磁盘组,需要清理磁盘头(针对有数据的
盘禁止执行该命令):
dd if=/dev/zero of=/dev/asm_disk1 bs=4096k count=1024
dd if=/dev/zero of=/dev/asm_disk2 bs=4096k count=1024
dd if=/dev/zero of=/dev/asm_disk3 bs=4096k count=1024
workstation配置asm磁盘:
新增硬盘后,扫描磁盘:
echo “- - -” > /sys/class/scsi_host/host0/scan1、每一个共享磁盘组创建一个主分区(先挂主节点磁盘,再挂备节点。先对主节点磁盘进行
分区,正常情况下备节点可以刷新实时看到分区情况。)
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
fdisk /dev/sdf
2、查看磁盘UUID:
[root@rac01 rules.d]# /sbin/scsi_id -g -u -d /dev/sdb
360003ff44dc75adca44127e408e97955
3、创建UDEV配置文件:
[root@rac01 rules.d]# cd /etc/udev/rules.d/
[root@rac01 rules.d]# vim 99-oracle-asmdisk.rules
KERNEL
"sdb1", BUS==“scsi”, PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",
RESULT==“36000c29384892e6b963270d8a65b7521”, NAME=“asm_disk1”, OWNER=“grid”,
GROUP=“asmadmin”, MODE=“0660”
4、载入配置文件:
[root@rac01 rules.d]# udevadm control --reload-rules
5、启动UDEV service:
[root@rac01 rules.d]# start_udev
6、查看asm disks:
[root@rac01 rules.d]# ls -l /dev/asm*
运行校验脚本
执行以下脚本校验,安装条件基本通过:
chown -R grid:asmadmin/mnt/grid
su - grid
进入目录/mnt/grid/
运行以下命令:
./runcluvfy.sh stage -pre crsinst -n rac01,rac02 -fixup -verbose安装grid
在vnc里面执行命令开始安装grid
xhost +
su - grid
cd /mnt/grid
export LANG=C
./runInstaller输入密码oracle在俩台服务器上执行rm -rf /tmp/.oracle/
按照提示在rac1、rac2执行/u01/app/oraInventory/orainstRoot.sh
在rac1执行/u01/app/11.2.0/grid/root.sh(需要几分钟时间)
结束提示Configure Oracle Grid Infrastructure for a Cluster … succeeded
在rac2执行/u01/app/11.2.0/grid/root.sh查看日志发现,failed主要是rac-scan的错误,原因为在hosts里指定了scan ip , 请在
两个节点分别对 scan ip 进行ping操作,如果都能ping通,可暂时忽略此错误。检查安装状态
运行命令查看安装状态:

cd /u01/app/11.2.0/grid/bin

./crsctl check crs

CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

./crsctl check cluster -all


rac1:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online


rac2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online


./crs_stat -t

Name Type Target State
Host

ora…ER.lsnr ora…er.type ONLINE ONLINE rac1
ora…N1.lsnr ora…er.type ONLINE ONLINE rac1
ora.OCRDG.dg ora…up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE
rac1
ora.cvu ora.cvu.type ONLINE ONLINE
rac1
ora.gsd ora.gsd.type OFFLINE
OFFLINE
ora…network ora…rk.type ONLINE ONLINE rac1ora.oc4j ora.oc4j.type ONLINE ONLINE
rac1
ora.ons ora.ons.type ONLINE ONLINE
rac1
ora…SM1.asm application ONLINE ONLINE rac1
ora…C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE
OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora…t1.type ONLINE ONLINE rac1
ora…SM2.asm application ONLINE ONLINE rac2
ora…C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE
OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora…t1.type ONLINE ONLINE rac2
ora…ry.acfs ora…fs.type ONLINE ONLINE rac1
ora.scan1.vip ora…ip.type ONLINE ONLINE rac1

./crsctl stat res -t创建磁盘组

在vnc中grid用户执行asmca来创建磁盘组:
su - grid

export LANG=C

asmca

创建磁盘页面,点击显示高级选项,数据盘及归档盘unit size选择4M以上。裸盘不能大于2t。
出现问题,只磁盘组挂载了一边,重启服务器时没有先停crs,导致后面启动失败。安装数据库软件
数据库软件安装
用oracle用户安装数据库软件,登录vnc执行:

xhost +

chown ­R oracle:oinstall/mnt/database

su ­ oracle

export LANG=C

xclock

cd /mnt/database

./runInstaller分别在俩台服务器上执行/u01/app/oracle/product/11.2.0/root.sh脚本,再点击ok,再点击
finish。
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of “dbhome” have not changed. No need to overwrite.
The contents of “oraenv” have not changed. No need to overwrite.
The contents of “coraenv” have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product­specific root actions will be performed.
Finished product­specific root actions.
创建数据库
用oracle用户运行dbca创建数据库:

export LANG=C

dbca创建独立监听(可选)

创建非系统默认1521监听,运行netca来创建监听:手工添加独立监听

vi $ORACLE_HOME/network/admin/listener.ora

CCMQIS =(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)
(PORT=1523))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.242.3)(PORT=1523)(IP=FIRST))))
ADR_BASE_CCMQIS = /u01/app/oracle
SID_LIST_CCMQIS =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME= /u01/app/oracle/product/11.2.0)
(SID_NAME = CCMQIS1)
)
)
后续步骤
配置tnsnames.ora及监听
修改两台服务器上tnsnames.ora文件,添加以下内容:
OFPLM1_LOCAL=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.242.5)(PORT=1522))
OFPLM2_LOCAL=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.242.6)(PORT=1522))
OFPLM_REMOTE=
(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.242.5)(PORT=1522))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.242.6)(PORT=1522)) ) )
设置LOCAL_LISTENER及remote_listener(使用默认的grid监听,必须设置这个,否则不会
注册到异机,负载不均衡)

sqlplus / as sysdba

alter system set remote_listener=‘OFPLM_REMOTE’ scope=both sid=’*’;
alter system set local_listener=‘OFPLM1_LOCAL’ scope=both sid=‘OFPLM1’;
alter system set local_listener=‘OFPLM2_LOCAL’ scope=both sid=‘OFPLM2’;
oracle11g数据库密码过期规则修改:
alter profile DEFAULT limit password_life_time unlimited ;
客户端(pc等)访问tns信息如下(或简化):OFPLM-PROD=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.37.72)(PORT = 1521)) –IP先后顺序
不能乱,谁在前先连接谁,当前必须统一72在前
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.37.74)(PORT = 1521))
(LOAD_BALANCE = no) –关闭负载均衡
(FAILOVER = ON) –开启故障切换
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CCMWLC)
(FAILOVER_MODE=
(TYPE = SELECT)
(METHOD = BASIC)
(RETIRES = 20)
(DELAY = 15))
)
) 修
改rac的监听端口(可选)
srvctl modify listener -l LISTENER -p 1531
srvctl modify scan_listener -p 1531
修改grid用户下endpoints_listener.ora文件中1521端口为1531
修改数据库local_listener参数.
alter system set local_listener=’(ADDRESS=(PROTOCOL=TCP)(HOST=10.9.201.41)
(PORT=1531))’ scope=both sid=’+ASM1’;
alter system set local_listener=’(ADDRESS=(PROTOCOL=TCP)(HOST=10.9.201.42)
(PORT=1531))’ scope=both sid=’+ASM2’;
启停监听
srvctl stop listener
srvctl start listener
srvctl stop scan_listener
srvctl start scan_listener
停止整个CRS(仅记录)
root@rac1 /# /u01/app/11.2.0/grid/bin/crsctl stop crs
root@rac2 /# /u01/app/11.2.0/grid/bin/crsctl stop crs-------------------------------------------------
rac节点添加:
1、准备基础环境配置;
2、修改所有节点的vi /etc/hosts;
3、添加共享磁盘;
4、所有节点都配置互信(用root用户执行):
/mnt/grid/sshsetup/sshUserSetup.sh -user grid -hosts “rac01 rac02 rac03” -
advanced -noPromptPassphrase
/mnt/grid/sshsetup/sshUserSetup.sh -user oracle -hosts " rac01 rac02 rac03" -
advanced -noPromptPassphrase
5、所有节点都执行互信检查(分别再grid和oracle用户下执行):
ssh rac01 date
ssh rac02 date
ssh rac03 date
ssh rac01-priv date
ssh rac02-priv date
ssh rac03-priv date
5、安装前检查(grid用户下执行):
./runcluvfy.sh stage -pre crsinst -n rac01,rac02,rac03 -fixup -verbose
6、添加集群节点(grid用户下执行):
export IGNORE_PREADDNODE_CHECKS=Y
echo $IGNORE_PREADDNODE_CHECKS
cd/u01/app/11.2.0/grid/oui/bin/
./addNode.sh “CLUSTER_NEW_NODES={rac03}” “CLUSTER_NEW_VIRTUAL_HOSTNAMES={rac03-
vip}”
7、平衡集群节点(grid用户下执行):
cd/u01/app/11.2.0/grid/oui/bin/
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={rac03}”
CRS=true
8、添加RAC节点(oracle用户下执行)
cd $ORACLE_HOME/oui/bin
./addNode.sh “CLUSTER_NEW_NODES={rac03}”
9、DBCA添加库选择实例:接着在这里可以看到数据库名称及状态,在下面填写数据库管理员账号及密码
点击下一步可以看到已经存在的实例名及状态点击下一步可看到之前在配置文件中设置的节点名称及实例名称信息,直接下一
步可直接看到数据库清单列表信息

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论