三 安装前的检查和设置
3.1 网络需求
每个节点一个 public IP
每个节点一个 public VIP
每个节点一个 private IP
一个用于集群的 SCAN 名称,和 public IP 同网段的 IP
public IP,VIP 和 scan IP 写入 /etc/hosts 文件
网络配置需要预先分配5个ip:
public 两个,心跳两个,scan一个
10.10.1.71 orcl1
10.10.1.72 orcl2
10.10.1.81 orcl1-vip
10.10.1.82 orcl2-vip
192.168.1.71 orcl1-priv
192.168.1.72 orcl2-priv
10.10.1.83 orcl-scan
3.2 关闭 NetworkManager
Linux 6 关闭 NetworkManager 操作:NetworkManager 管理主机网络配置信息,该服务如果出现down 的话会影响系统网络运行,建议关闭: 关闭运行中的服务#service NetworkManager stop 关闭操作系统自启动#chkconfig NetworkManager off 检查关闭情况# chkconfig --list NetworkManager Linux 7 无需再关闭 NetworkManager 备注:该操作需要当前所有的网卡均没有配置 IP ,也就是当前的网卡没有通过 NetworkManager 管理,如果先配置 IP 后关闭该服务,会导致网络不可识别。
3.3 关闭防火墙
Linux 6 关闭防火墙操作 : 关闭运行中的服务#service iptables stop 关闭操作系统自启动#chkconfig iptables off 检查关闭情况# chkconfig --list iptables Linux 7 关闭防火墙操作:# systemctl disable firewalld# systemctl stop firewalld
3.4 关闭 selinux
编辑/etc/selinux/config 文件[root@DBServer1 ~]# vi /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled. SELINUX=disabled# SELINUXTYPE= type of policy in use. Possible values are:# targeted - Only targeted network daemons are protected.# strict - Full SELinux protection.SELINUXTYPE=targeted
3.5 Linux7.2 新特性关闭
针对RHEL7.2 版本 ,如果设置了RemoveIPC=yes 的参数,会crash 掉Oracle asm 实例和Oracle database 实例,该问题也会在使用Shared Memory Segment (SHM) or Semaphores (SEM) 的应用程序中发生。 在RHEL7.2 中,systemd-logind 服务引入了一个新特性,该新特性是在一个user 完全退出OS 后会remove 掉所有的IPC 对象。 为避免改新特性,需要修改如下参数1). 设置/etc/systemd/logind.conf 中RemoveIPC=no2). 重启服务器或者重启systemd-logind 重启systemd-logind :# systemctl daemon-reload# systemctl restart systemd-logind
3.6 RPM 安装包
所有的oracle 安装都需要遵循基本的RPM 包安装,一下罗列各个操作系统下面RPM 包的安装: Linux 7 and Red Hat Enterprise Linux 7
|
binutils-2.23.52.0.1-12.el7.x86_64compat-libcap1-1.10-3.el7.x86_64compat-libstdc++-33-3.2.3-71.el7.i686compat-libstdc++-33-3.2.3-71.el7.x86_64gcc-4.8.2-3.el7.x86_64gcc-c++-4.8.2-3.el7.x86_64glibc-2.17-36.el7.i686glibc-2.17-36.el7.x86_64glibc-devel-2.17-36.el7.i686glibc-devel-2.17-36.el7.x86_64kshlibaio-0.3.109-9.el7.i686libaio-0.3.109-9.el7.x86_64libaio-devel-0.3.109-9.el7.i686libaio-devel-0.3.109-9.el7.x86_64libgcc-4.8.2-3.el7.i686libgcc-4.8.2-3.el7.x86_64libstdc++-4.8.2-3.el7.i686libstdc++-4.8.2-3.el7.x86_64libstdc++-devel-4.8.2-3.el7.i686libstdc++-devel-4.8.2-3.el7.x86_64libXi-1.7.2-1.el7.i686libXi-1.7.2-1.el7.x86_64libXtst-1.2.2-1.el7.i686libXtst-1.2.2-1.el7.x86_64make-3.82-19.el7.x86_64sysstat-10.1.5-1.el7.x86_64 |
Packages for Oracle Linux 6 and Red Hat Enterprise Linux 6
|
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) |
3.7 创建用户、组 ( 双节点创建执行 )
双节点创建grid 用户及oracle 用户:groupadd -g 501 oinstallgroupadd -g 502 dbauseradd -u 501 -g oinstall -G dba griduseradd -u 502 -g oinstall -G dba oracle passwd grid ---- 修改grid 用户密码passwd oracle ---- 修改oracle 用户密码
3.8 配置 oracle 安装 shell 限制
3.8.1 /etc/security/limits.conf 配置
vi /etc/security/limits.conf grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 10240 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 10240
3.8.2 /etc/pam.d/login 配置
编辑/etc/pam.d/login 添加如下内容:vi /etc/pam.d/login
session required pam_limits.so
3.8.3 /etc/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
3.9 内核参数设置
/etc/sysctl.conf kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6815744 fs.aio-max-nr = 3145728 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 = 1048576 kernel.panic_on_oops=1 #/sbin/sysctl -p 一般设置按照如上规则设置,如果文件中已经设置的值比计算结果大,以文件中本身的值为准
|
kernel.shmall = physical RAM size / pagesize For most systems, this will be the value 2097152 (64g 默认16777216 )kernel.shmmax = 1/2 of physical RAM (64g 默认68719476736 )fs.file-max = 512 x processes (默认6815744 ) |
3.10 环境变量设置
一节点:grid 用户:export ORACLE_BASE=/oracle/gridbaseexport ORACLE_HOME=/oracle/grid ### (此目录为grid 的解压目录)export ORACLE_SID=+ASM1export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH oracle 用户:export ORACLE_BASE=/oracle/appexport ORACLE_HOME=/oracle/app/product/12.2.0/db_1export ORACLE_SID= XXX1export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH 二节点:grid 用户:export ORACLE_BASE=/oracle/gridbaseexport ORACLE_HOME=/oracle/gridexport ORACLE_SID=+ASM2export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH oracle 用户:export ORACLE_BASE=/oracle/appexport ORACLE_HOME=/oracle/app/product/12.2.0/db_1export ORACLE_SID= XXX2export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
3.11 创建 oracle 安装目录 ( 使用 root 用户执行 )
3.11.1 创建 Oracle Inventory 目录
# mkdir -p /oracle/oraInventory
# chown -R grid:oinstall /oracle/oraInventory # chmod -R 775 /oracle/oraInventory
3.11.2 创建 grid 目录
# mkdir -p /oracle/gridbase # chown -R grid:oinstall /oracle/gridbase # chmod -R 775 /oracle/gridbase
# mkdir -p /oracle/grid # chown -R grid:oinstall /oracle/grid # chmod -R 775 /oracle/grid
3.11.3 创建 oracle base 目录
# mkdir -p /oracle/app
# chown -R oracle:oinstall /oracle/app # chmod -R 775 /oracle/app
3.12 多路径软件安装
3.12.1 安装多路径软件包
device-mapper-*
device-mapper-multipath-*
device-mapper-1*
安装以上rpm 包
3.12.2 启动多路径及配置多路径
启动多路径,通过mpathconf 命令创建默认模板。创建默认配置,启动和激活multipathd 进程,可以使用以下命令: mpathconf --enable --with_multipathd y 使用自带模板编辑多路径设备权限cp /usr/share/doc/ device-mapper-1.02.66/12-dm-permissions.rules /etc/udev/rules.d/vi /etc/udev/rules.d/12-dm-permissions.rules ENV{DM_NAME}=="mpath?", OWNER:="grid", GROUP:="oinstall", MODE:="660"ENV{DM_NAME}=="mpathe", OWNER:="grid", GROUP:="oinstall", MODE:="660"ENV{DM_NAME}=="mpathd", OWNER:="grid", GROUP:="oinstall", MODE:="660"ENV{DM_NAME}=="mpathc", OWNER:="grid", GROUP:="oinstall", MODE:="660"ENV{DM_NAME}=="mpathb", OWNER:="grid", GROUP:="oinstall", MODE:="660" 二节点也执行同样的操作 配置完成后建议重新启动多路径软件:/etc/init.d/multipathd restart 备注:启动完成后会在/etc/ 下生成multipath.conf 文件,以及在/etc/multipath 下生成bindings 及wwid ,其中wwid 记录了系统中所有挂载盘的盘唯一ID Bindings 记录了ID 对应的映射盘。 一般绑定完后会在/dev/mapper 下产生类似于mpathx 等文件 备注: RAC 安装需要确保双节点所有的盘符名字一致,可以检查 /etc/multipath/binding 文件,将一节点中除本地盘以外的所有记录覆盖二节点文件中的记录(注意不要将本地硬盘覆盖) Linux 6 重启 udev 操作: 两节点重启udev start_udev Linux 7 重启 udev 操作: /sbin/udevadm trigger --type=devices --action=change /dev 下面看盘dm* 是否改成grid ,如果是则完成配置
3.12.3 多路径维护基本命令
1. 启停多路径:/etc/init.d/multipathd stop/start/reatart2. 查看当前多路径链路状态及盘情况:multipath –ll3. 删除多路径设备:multipath –F4. 重新扫描设备:multipath –v35. 当在 DM-Multipath 中添加新设备时,这些新设备会位于 /dev 目录的两个不同位置: /dev/mapper/mpathn /dev/dm-n /dev/mapper 中的设备是在引导过程中生成的。可使用这些设备访问多路径设备,例如在生成逻辑卷时 所有 /dev/dm-n 格式的设备都只能是作为内部使用,请不要使用它们 [root@hlwdb01 multipath]# multipath -ll mpathe (360060e8016634c000001634c00000302) dm-5 HITACHI,OPEN-V size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 1:0:0:2 sdd 8:48 active ready running `- 2:0:0:2 sdg 8:96 active ready running mpathd (360060e8016634c000001634c00000301) dm-4 HITACHI,OPEN-V size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 1:0:0:1 sdc 8:32 active ready running `- 2:0:0:1 sdf 8:80 active ready running mpathc (360060e8016634c000001634c00000300) dm-3 HITACHI,OPEN-V size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 1:0:0:0 sdb 8:16 active ready running `- 2:0:0:0 sde 8:64 active ready running mpathb (360060e8016634c000001634c00000303) dm-2 HITACHI,OPEN-V size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='round-robin 0' prio=1 status=active |- 1:0:0:0 sdh 8:16 active ready running `- 2:0:0:0 sdi 8:64 active ready running 以上多路径设备包含:1G 盘一块,mpathb 用作OCRVOTE 盘100G 盘3 块mpathc ,mpathd ,mpathe 用作DATA 盘 配置 I/O 参数(三块仲裁盘) echo deadline > /sys/block/xxx/queue/scheduler echo deadline > /sys/block/xxx/queue/scheduler echo deadline > /sys/block/xxx/queue/scheduler 注意:xxx 代表盘符名,以上例子中xxx 为mpath* 。
3.13 时间同步
使用 oracle 时间同步服务
mv /etc/ntp.conf /etc/ntp.conf.bak
3.14 检查时区和时间一致性
$ echo $TZ
$date
确保时区一致,两台主机的时间相差不超过 1 分钟
