技术分享
Redhat7.0 Oracle 12C RAC部署手册
2022-03-29
目 录
1 环境介绍
1.1 网络环境介绍
1.2 系统环境介绍
1.3 安装包
2 基础环境配置
2.1 网络配置
2.2 域名解析配置
2.3 安装数据库依赖包
2.4 内核参数调整
2.5 关闭selinux、防火墙服务
2.6 创建用户组
2.7 软件资源限制
2.8 修改profile
2.9 修改csh.login
2.10 配置oracle、grid用户环境变量
2.11 配置ASM共享磁盘
2.12 配置swap分区
3 数据库软件安装
3.1 grid安装
3.2 DB软件安装
3.3 创建ASM磁盘
3.4 建库
4 备份前配置
4.1 开启共享归档
4.2 静态监听配置
1 环境介绍
数据库主机系统、图形化工具安装参考《 oracle RAC部署环境准备手册-1系统与工具安装》
1.1 网络环境介绍
Oracle RAC每个节点需要占用四个IP
PUBLIC IP:主机对外的通信IP
PRIVATE IP:RAC节点之间的通信IP
VIP:节点的虚拟IP,可以飘移
SCAN IP:RAC的集群服务IP,调节集群服务的IP
PUBLIC IP | PRIVATE IP | VIP | SCAN IP | |
rac1 | 192.168.93.31 | 10.10.10.31 | 192.168.93.131 | 192.168.93.133 |
rac2 | 192.168.93.32 | 10.10.10.32 | 192.168.93.132 |
PUBLIC IP、VIP、SCAN IP同段,PRICATE IP与其他三个IP不同段
节点共用SCAN IP
1.2 系统环境介绍
Oracle 12c操作系统兼容性如图:
本次采用Redhat7.0作为演示环境
1.3 安装包
在ftp相应路径获取,database1、2是数据库软件包、grid是集群管理软件包
2 基础环境配置
RAC基础环境配置需要在两个节点配置,此处以RAC1示例
2.1 网络配置
两个节点均需按预配置的IP设置PUBLIC IP和PRIVATE IP
vi /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0
HWADDR=00:50:56:94:07:01
TYPE=Ethernet
UUID=4efd263a-5b37-4340-a7e9-556255ce69a8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.93.31
NETMASK=255.255.192.0
GATEWAY=192.168.64.1
DNS1=61.139.2.69(可不配置)
vi /etc/sysconfig/network-script/ifcfg-eth1
DEVICE=eth1
HWADDR=00:50:56:94:0a:d6
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.10.10.131
NETMASK=255.255.255.0
2.2 域名解析配置
vi /etc/hosts
#PUBLIC
192.168.93.31 rac1
192.168.93.32 rac2
#PRIVATE
10.10.10.31 rac1-priv
10.10.10.32 rac2-priv
#VIP
192.168.93.131 rac1-vip
192.168.93.132 rac2-vip
192.168.93.133 rac-scan
配置完成后,可以检查一下两个节点hosts文件是否一致,可能会有隐藏符号
cat /etc/hosts 可以看到隐藏符号
注意:一定保证两个节点的hosts文件一致,不然后续grid安装会报错
2.3 安装数据库依赖包
参考《oracle RAC部署环境准备手册-2 yum源配置》文档配置
yum install bc binutils compat-libcap1 compat-libstdc++33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat kmod*
2.4 内核参数调整
vi /etc/sysctl.conf
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 104857
vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
sysctl –p 使参数生效
参数可以根据实际情况调整
2.5 关闭selinux、防火墙服务
sed -i 's/enforcing/disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
2.6 创建用户组
groupadd -g 1000 oinstall
groupadd -g 1001 dba
groupadd -g 1002 oper
groupadd -g 1003 asmadmin
groupadd -g 1004 asmdba
groupadd -g 1005 asmoper
useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba,asmoper grid
useradd -u 1002 -g oinstall -G dba,oper,asmadmin,asmdba oracle
echo 密码 |passwd --stdin grid
echo 密码 |passwd --stdin oracle
mkdir -p /oracle/app/oraInventory
chown -R grid:oinstall /oracle/app/oraInventory
chmod -R 775 /oracle/app/oraInventory
mkdir -p /oracle/app/grid
chown -R grid:oinstall /oracle/app/grid
chmod -R 775 /oracle/app/grid
mkdir -p /oracle/app/12.2.0/grid
chown -R grid:oinstall /oracle/app/12.2.0/grid
chmod -R 775 /oracle/app/12.2.0/grid
mkdir -p /oracle/app/oracle
chown -R oracle:oinstall /oracle/app/oracle
chmod -R 775 /oracle/app/oracle
mkdir -p /oracle/app/oracle/product/12.2.0/db_1
chown -R oracle:oinstall /oracle/app/oracle/product/12.2.0/db_1
chmod -R 775 /oracle/app/oracle/product/12.2.0/db_1
2.7 软件资源限制
vi /etc/security/limits.conf
oracle soft nofile 2048
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
grid soft nofile 2048
grid hard nofile 65536
grid soft nproc 16384
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
grid hard memlock 134217728
grid soft memlock 134217728
2.8 修改profile
vi /etc/profile
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
2.9 修改csh.login
vi /etc/csh.login
if ( \$USER = "oracle" || \$USER = "grid" ) then
limit maxproc 16384
limit descriptors 65536
endif
2.10 配置oracle、grid用户环境变量
修改grid用户环境变量
su - grid
vi .bash_profile
export ORACLE_BASE=/oracle/app/grid
export ORACLE_SID=+ASM1 ---节点2 为+ASM2
export ORACLE_HOME=/oracle/app/12.2.0/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
NAME=`hostname`
PS1="[$NAME:$LOGNAME]:\${PWD}>"
umask 022
红框的需要注释掉
source ~/.bash_profile
env |grep ORACLE
修改oracle环境变量
su - oracle
vi .bash_profile
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_SID=orcl1 ---节点2 为orcl2
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
NAME=`hostname`
PS1="[$NAME:$LOGNAME]:\${PWD}>"
umask 022
红框的需要注释掉
source ~/.bash_profile
env |grep ORACLE
2.11 配置ASM共享磁盘
参考《oracle RAC部署环境准备手册-2 ASM磁盘组建》文档
2.12 配置swap分区
注:安装软件如果预检查报错swap分区过小,可以用此种方法增加swap分区,安装前先配置增加一倍swap分区
创建swap分区
dd if=/dev/zero of=/oracle/swap1 bs=1M count=2048
创建一个swap类型文件,
mkswap /oracle/swap1
将swpf1生成swap文件
swapon /oracle/swap1
查看一下,swap1起作用了
free -m
实现开机后自动使用新添的swap1分区
vi /etc/fstab
添加swap行、tmpfs行
/oracle/swap1 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=2G 0 0
tmpfs重置一下,使其当下有效
mount -o remount /dev/shm
3 数据库软件安装
在oracle目录下解压数据库软件包 unzip linuxx64_12201_database.zip
在/oracle/app/12.2.0/grid/目录下解压grid安装包 unzip linuxx64_12201_grid_home.zip
rpm -ivh /oracle/app/19/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
3.1 grid安装
运行Xmanager中的Broadcast
记下图形化工具的窗口号
su - grid 进入grid用户下安装
cd /oracle/app/grid
export DISPLAY=192.168.93.51:1.0 (图形化工具安装主机IP)
./gridSetup.sh
选择 install and configure oracle grid infrastructure for a new cluster
选择configure an oracle standalone cluster
填入scan的名字,取消GNS的设置
选择add 添加节点2
输入grid用户密码,建立ssh连接
建立以后点test,出现如下界面则成功
查看配置是否正确,私网选择ASM&Private,下一步
选择configure ASM using block devices
选择 no
设置OCR磁盘组,选择50g的磁盘组成的磁盘组
如果选择flex,必须3块磁盘,以及剩余空间36352MB以上,如下图所示
这里需要特别说明下,如果你选了YES即为GIMR创建单独的MGMT磁盘组,那么OCR盘大小20GB左右就可以(当然你还需要为MGMT磁盘组准备存储,大概需要40G),如果你选择NO,那么请保证OCR盘至少40GB大小(准确数字忘了大概是38GB左右,不过40GB保险)。
设置通用密码 YUNqi123456
IPMI一般不设置
默认不设置EM
默认
默认
默认
选择不自动跑安装脚本
安装验证
出现PRVG-2019错误可以忽略,在安装grid的过程中会设置两个节点的grid用户互信
出现如下错误
Daemon process "avahi-daemon" is running on node "rac1"
解决方法(两个节点都执行):
ps -aux|grep avahi-daemon
kill -9 (两个进程号)
此处需要说明的是:
1)nfs-utils和net-tools无需安装,可忽略;
2)resolv.conf为DNS解析的配置,可忽略;
3)DNS这一项,可忽略;
除上述可忽略的几项外,如果还有其他的未满足项,则需要具体问题具体分析,待解决后再安装GRID。
因此可以选择“Ignore All”,然后单击“Next”按钮执行下一步,执行install安装:
Grid安装到这里时,需要去两个节点分别运行两个脚本
用root账户登录,分别先后在rac1 rac2执行两个脚本(执行完一个才能第二个)
rac1
rac2
如果有下图的报错,检查一下两个节点是否能ping通scan IP,如果能通,可以直接忽略
3.2 DB软件安装
在oracle用户下安装DB软件
cd /oracle/database
./runInstaller
取消“I wish to receive security updates via My Oracle Support”选项
选择install database software only
选择select all 并测试ssh是否连接成功
选择“Enterprise Edition(4.7GB)”
确认无误后下一步
默认
安装验证
出现一下界面
此处需要说明的是:
1)net-tools,可忽略;
2)resolv.conf为DNS解析的配置,可忽略;
3)DNS/INS,未配置DNS导致,可忽略;
4) Single Client Access Name(SCAN)这一项,为没有配置DNS所致,可忽略;
除上述可忽略的几项外,如果还有其他的未满足项,则需要具体问题具体分析,待解决后再安装数据库软件。
因此可以选择“Ignore All”,然后单击“Next”按钮执行下一步:
点install进入安装界面
接着出现一下界面
以root用户登陆系统,执行上面的脚本,顺序如下
3.3 创建ASM磁盘
以grid用户登录节点1执行ASMCA创建DATADG和ARCHDG
进入界面后点creat
创建FRA
创建FRA
创建ARCH
确认是否全部mount,如果是就exit
3.4 建库
以oracle用户登录节点1执行DBCA建库
注意要修改相关设置,如字符集、归档模式、redo log大小、multiplex redo log设置等
执行dbca后出现如下安装界面:
选择创建一个数据库
设置通用密码
4 备份前配置
4.1 开启共享归档
①查询是否开启归档
SQL> archive log list;
②创建共享目录
[grid@rac1 ~]$ export ORACLE_SID=+ASM1
[grid@rac1 ~]$ asmcmd
ASMCMD > ls
DATADG/
ARCHDG/
SYSDG/
ASMCMD > cd DATADG/
ASMCMD > ls
Orcl/
ASMCMD > mkdir arch
ASMCMD > cd arch
ASMCMD > pwd
+DATADG/arch
ASMCMD > exit
③将rac设置成单实例模式
SQL > show parameter cluster_database
SQL > alter system set cluster_database=false scope=spfile sid='*'; (两个节点都要执行命令)
④开启归档
分别关闭两个节点实例
shutdown immediate
将节点1启动至mount状态,开启归档,设置归档路径,格式,并打开数据库还原rac模式
SQL> startup mount
SQL> show parameter cluster_database 查看之前设置是否生效
SQL> alter database archivelog; 开启归档
SQL> alter system set log_archive_format='test_%t_%s_%r.log' scope=spfile; 设置归档格式
SQL> alter system set log_archive_start=true scope=spfile;
SQL> alter system set log_archive_dest_1='location=+DATADG/arch' scope=spfile;
SQL> alter database open;
SQL> alter system set cluster_database=true scope=spfile sid='*';
SQL> shutdown immediate;
归档格式说明:
%t 重做线程号
%s 日志序列号
%r resetlogs的id号
⑤打开所有节点数据库
[oracle@rac1 ~]$ srvctl start database -d orcl
使用集群服务打开所有节点数据库
查看是否生效
SQL> archive log list;
切换归档,查看归档是否正常工作
alter system switch logfile; 或者alter system archive log current;
4.2 静态监听配置
参考11g静态监听配置:
vi /oracle/app/11.2.0.4/grid/network/admin/listener.ora
关注云祺,获取更多精彩信息。
- 标签:
-
技术分享