专栏首页从ORACLE起航,领略精彩的IT技术。Linux平台 Oracle 12cR2 RAC安装Part1:准备工作

Linux平台 Oracle 12cR2 RAC安装Part1:准备工作

Linux平台 Oracle 12cR2 RAC安装Part1:准备工作

本文安装环境:RHEL 6.5 + Oracle 12.2.0.1 GI & RAC

一、实施前期准备工作

1.1 服务器安装操作系统

配置完全相同的两台服务器,安装相同版本的Linux操作系统。留存系统光盘或者镜像文件。 我这里是RHEL6.5,系统目录大小均一致。对应RHEL6.5的系统镜像文件放在服务器上,供后面配置本地yum使用。

1.2 Oracle安装介质

Oracle 12.2.0.1 版本2个zip包(总大小6G+,注意空间):

linuxx64_12201_grid_home.zip

linuxx64_12201_database.zip

这个自己去Oracle官网下载,然后只需要上传到节点1即可。

1.3 共享存储规划

从存储中划分出两台主机可以同时看到的共享LUN,3个1G的盘用作OCR和Voting Disk,1个40G的盘做GIMR,其余规划做数据盘和FRA。

根据实际需要选择multipath或者udev绑定设备。这里选用multipath绑定。

multipath -ll
multipath -F
multipath -v2
multipath -ll

我这里实验环境,存储划分的LUN是通过一台iSCSI服务器模拟的,下面是服务端主要配置信息:

<target iqn.2017-09.com.cnblogs.jyzhao:alfreddisk>
    backing-store /dev/vg_storage2/lv2_lun1 # Becomes LUN 1
    backing-store /dev/vg_storage2/lv2_lun2 # Becomes LUN 2
    backing-store /dev/vg_storage2/lv2_lun3 # Becomes LUN 3
    backing-store /dev/vg_storage2/lv2_lun4 # Becomes LUN 4
    backing-store /dev/vg_storage2/lv2_lun5 # Becomes LUN 5
    backing-store /dev/vg_storage2/lv2_lun6 # Becomes LUN 6
</target>

1.4 网络规范分配

公有网络 以及 私有网络。 公有网络:两个物理网卡eth0和eth1先做的bonding,然后公网使用绑定后的设备bond0 bond0{public IP,VIP} ScanIP(1~3个); 私有网络:eth2,eth3{2组private IP}

二、安装前期准备工作

2.1 各节点系统时间校对

各节点系统时间校对:

--检验时间和时区确认正确
date 

--关闭ntp服务,移除ntp配置文件(后续使用ctss)
service ntpd status
mv /etc/ntp.conf /etc/ntp.conf_bak

2.2 各节点关闭防火墙和SELinux

各节点关闭防火墙:

service iptables stop
chkconfig iptables off

各节点关闭SELinux:

getenforce
修改/etc/selinux/config SELINUX= disabled
setenforce 0

2.3 各节点检查系统依赖包安装情况

Packages for Red Hat Enterprise Linux 6

The following packages (or later versions) must be installed:

binutils-2.20.51.0.2-5.36.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (i686)
e2fsprogs-1.41.12-14.el6 (x86_64)
e2fsprogs-libs-1.41.12-14.el6 (x86_64)
glibc-2.12-1.107.el6 (i686)
glibc-2.12-1.107.el6 (x86_64)
glibc-devel-2.12-1.107.el6 (i686)
glibc-devel-2.12-1.107.el6 (x86_64)
ksh
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6 (i686)
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6 (i686)
libX11-1.5.0-4.el6 (i686)
libX11-1.5.0-4.el6 (x86_64)
libXau-1.0.6-4.el6 (i686)
libXau-1.0.6-4.el6 (x86_64)
libXi-1.6.1-3.el6 (i686)
libXi-1.6.1-3.el6 (x86_64)
libXtst-1.2.1-2.el6 (i686)
libXtst-1.2.1-2.el6 (x86_64)
libgcc-4.4.7-3.el6 (i686)
libgcc-4.4.7-3.el6 (x86_64)
libstdc++-4.4.7-3.el6 (i686)
libstdc++-4.4.7-3.el6 (x86_64)
libstdc++-devel-4.4.7-3.el6 (i686)
libstdc++-devel-4.4.7-3.el6 (x86_64)
libxcb-1.8.1-1.el6 (i686)
libxcb-1.8.1-1.el6 (x86_64)
make-3.81-20.el6 (x86_64)
net-tools-1.60-110.el6_2 (x86_64) (for Oracle RAC and Oracle Clusterware)
nfs-utils-1.2.3-36.el6 (x86_64) (for Oracle ACFS)
smartmontools-5.43-1.el6 (x86_64)
sysstat-9.0.4-20.el6 (x86_64)

根据官档要求,检查系统这些RPM包是否安装:

rpm -q binutils compat-libcap1 compat-libstdc++-33 \
e2fsprogs e2fsprogs-libs glibc glibc-devel ksh libaio-devel libaio libgcc libstdc++ libstdc++-devel \
libxcb libX11 libXau libXi libXtst make \
net-tools nfs-utils smartmontools sysstat

compat-libstdc++-33-3.2.3-69.el6 (i686) glibc-2.12-1.107.el6 (i686) glibc-devel-2.12-1.107.el6 (i686) libaio-0.3.107-10.el6 (i686) libaio-devel-0.3.107-10.el6 (i686) libX11-1.5.0-4.el6 (i686) libXau-1.0.6-4.el6 (i686) libXi-1.6.1-3.el6 (i686) libXtst-1.2.1-2.el6 (i686) libgcc-4.4.7-3.el6 (i686) libstdc++-4.4.7-3.el6 (i686) libstdc++-devel-4.4.7-3.el6 (i686) libxcb-1.8.1-1.el6 (i686)

没有安装的使用yum安装即可。 vi /etc/yum.repos.d/rhel-source.repo

[ISO]
name=iso
baseurl=file:///media/cdrom/Server
enabled=1
gpgcheck=0

yum安装:

yum install binutils compat-libcap1 compat-libstdc++-33 \
e2fsprogs e2fsprogs-libs glibc glibc-devel ksh libaio-devel libaio libgcc libstdc++ libstdc++-devel \
libxcb libX11 libXau libXi libXtst make \
net-tools nfs-utils smartmontools sysstat

另外这个包建议在安装软件前安装好:

rpm -qi cvuqdisk
CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
rpm -iv cvuqdisk-1.0.10-1.rpm

2.4 各节点配置/etc/hosts

编辑/etc/hosts文件:

#public ip
192.168.1.90  jydb1
192.168.1.92  jydb2
#virtual ip
192.168.1.91  jydb1-vip
192.168.1.93  jydb2-vip
#scan ip
192.168.1.95  jydb-scan

#private ip
10.10.1.90    jydb1-priv
10.10.1.92    jydb2-priv
10.10.2.90    jydb1-priv2
10.10.2.92    jydb2-priv2

2.5 各节点创建需要的用户和组

创建group & user:

groupadd -g 54321 oinstall  
groupadd -g 54322 dba  
groupadd -g 54323 oper  
groupadd -g 54324 backupdba  
groupadd -g 54325 dgdba  
groupadd -g 54326 kmdba  
groupadd -g 54327 asmdba  
groupadd -g 54328 asmoper  
groupadd -g 54329 asmadmin  
groupadd -g 54330 racdba  
  
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle  
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid  

然后给oracle、grid设置密码:

passwd oracle 
passwd grid

2.6 各节点创建安装目录

各节点创建安装目录(root用户):

mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

2.7 各节点系统配置文件修改

内核参数修改:vi /etc/sysctl.conf

# vi /etc/sysctl.conf  增加如下内容:
fs.file-max = 6815744  
kernel.sem = 250 32000 100 128  
kernel.shmmni = 4096  
kernel.shmall = 1073741824  
kernel.shmmax = 6597069766656
kernel.panic_on_oops = 1  
net.core.rmem_default = 262144  
net.core.rmem_max = 4194304  
net.core.wmem_default = 262144  
net.core.wmem_max = 1048576  
net.ipv4.conf.eth3.rp_filter = 2
net.ipv4.conf.eth2.rp_filter = 2
net.ipv4.conf.eth0.rp_filter = 1  
fs.aio-max-nr = 1048576  
net.ipv4.ip_local_port_range = 9000 65500  

修改生效:

# /sbin/sysctl -p

用户shell的限制:vi /etc/security/limits.conf

#在/etc/security/limits.conf 增加如下内容:
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

插入式认证模块配置:vi /etc/pam.d/login --加载 pam_limits.so 模块 使用 root 用户修改以下文件/etc/pam.d/login,增加如下内容:

session required pam_limits.so

说明:limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。

2.8 各节点设置用户的环境变量

第1个节点grid用户:

export ORACLE_SID=+ASM1;
export ORACLE_HOME=/u01/app/12.2.0/grid; 
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 

第2个节点grid用户:

export ORACLE_SID=+ASM2;
export ORACLE_HOME=/u01/app/12.2.0/grid; 
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

第1个节点oracle用户:

export ORACLE_SID=newdb11; 
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1;
export ORACLE_HOSTNAME=jydb1;
export PATH=$ORACLE_HOME/bin:$PATH; 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 

第2个节点oracle用户:

export ORACLE_SID=newdb12; 
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1;
export ORACLE_HOSTNAME=jydb2;
export PATH=$ORACLE_HOME/bin:$PATH; 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle RMAN 备份一例

    备份策略:周日0级备份,周一~周六1级备份,每6小时备份归档日志,每天清理历史文件夹.

    Alfred Zhao
  • Oracle查询存在外键约束但未创建对应索引的情况

    但也要注意,该脚本是查询当前连接用户存在外键约束但未创建对应索引的情况,且创建了表ck_log的,脚本最开始还会先删除表ck_log,如果业务不允许创建与业务无...

    Alfred Zhao
  • DG环境数据库RMAN备份策略制定 全库备份 归档备份 删除历史文件夹 删除归档

    Alfred Zhao
  • Python 【os.path()模块解析】

    实例6:os.path.getatime/os.path.getmtime/os.path.getctime

    IT茂茂
  • 33.Python字符串方法find以及与序列解包的技巧结合

    1.字符串方法split结合序列解包以及星号运算符来收集多余的值,可以轻松获取字符串分割之后的子字符串。

    用户4381798
  • JsonPath工具类封装

    在经历过一些波折之后,总算是把JsonPath工具类的封装类写好了,时间仓促。没有太严格的测试,等有机会我再用Groovy进行单元测试框架spock写一些单测来...

    FunTester
  • python 下利用os模块创建目录以及巧妙使用if not os.path.exits()创建

    一、单独使用os.makedirs(path,mode=0o777) import os path='d\\test' os.makedirs(path,0...

    学到老
  • python 下利用os模块创建目录以及巧妙使用if not os.path.exits()创建

    学到老
  • Detectron2学习四:build_train_loader流程

    DefaultTrainer类中函数build_train_loader(cfg)的实现流程

    CV_Learner
  • Python文件的读写

    说明:由于Windows和macOS文件目录系统的格式不同,在没有介绍到系统通配分隔符前,代码中的文件目录格式主要匹配macOS系统文件目录结构,下面是Pyth...

    小雨编程

扫码关注云+社区

领取腾讯云代金券