#设置主机名 双
hostnamectl set-hostname rac01
#关闭selinux 双
vi /etc/selinux/config
SELINUX=disabled
setenforce 0
#hostname 双节点
改 /etc/hosts
#### For Oracle Rac ####
#public ip
10.81.4.31 rac01
10.81.4.32 rac02
#private ip
172.16.100.11 rac01-pri
172.16.100.12 rac02-pri
#vip
10.81.4.29 rac01-vip
10.81.4.30 rac02-vip
#scanip
10.81.4.35 rac-scan
#firewall 双
systemctl stop firewalld
systemctl disable firewalld
#关闭NetworkManager 双
systemctl stop NetworkManager
systemctl disable NetworkManager
#关闭时间同步ntpd服务 双
检查两节点时间,时区是否相同,并禁止ntp
systemctl disable ntpd.service
systemctl stop ntpd.service
mv /etc/ntp.conf /etc/ntp.conf.orig
systemctl status ntpd
时区设置
# timedatectl #看时区是否正确
# timedatectl list-timezones |grep Shanghai #查找中国时区的完整名称
Asia/Shanghai
# timedatectl set-timezone Asia/Shanghai
#复制UTC时间到 /etc/localtime
cp /usr/share/zoneinfo/UTC /etc/localtime
#创建软连接 /etc/localtime
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
#显示时间和时区
date
##配置bond0 双
cd /etc/sysconfig/network-scripts
vi ifcfg-bond0
BOOTPROTO=static
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
IPADDR=10.81.4.31
PREFIX=24
GATEWAY=10.81.4.254
BONDING_OPTS="miimon=100 mode=1" #miimon指网络检查的频率
vi /etc/sysconfig/network-scripts/ifcfg-eno1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eno1
NAME=eno1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vi /etc/sysconfig/network-scripts/ifcfg-eno2
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eno2
NAME=eno2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
再以同样的方式绑定其他口
#重启网络服务,使bond0生效
systemctl restart network
#user,group,目录权限,密码 双
groupadd -g 1010 oinstall
groupadd -g 1020 asmadmin
groupadd -g 1021 asmdba
groupadd -g 1022 asmoper
groupadd -g 1031 dba
groupadd -g 1032 oper
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba -d /home/grid -m grid
useradd -u 1101 -g oinstall -G dba,asmdba,oper -d /home/oracle -m oracle
mkdir -p /u01/app/12.1.0/grid
mkdir -p /u01/app/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
#设置grid、oracle密码
passwd grid
passwd oracle
echo oracle | passwd --stdin oracle
echo oracle | passwd --stdin grid
#.bash_profile 双 节点2将+ASM1改成+ASM2,orcl1改成orcl2
#grid用户
vim /home/grid/.bash_profile
=>
ORACLE_SID=+ASM1; export ORACLE_SID
JAVA_HOME=/usr/local/java;export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/12.1.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用户
vim /home/oracle/.bash_profile
=>
ORACLE_SID=gpp1; export ORACLE_SID
ORACLE_UNQNAME=gpp; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.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
#修改root环境变量
加入grid用户$ORACLE_HOME
[root@rac1 opt]# vi ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/u01/app/12.1.0/grid/bin:$HOME/bin
export PATH
#### sysctl,limits,login #### 双
vim /etc/sysctl.conf
=>
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 219902325555
kernel.shmall = 53687091
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
执行sysctl -p使配置生效
备注:kernel.shmmax = 3865470566
shmmax Linux进程可以分配的单独共享内存段的最大值
2g物理内存,shmmax=2*1024*1024*1024*0.9 大于SGA,小于物理内存
kernel.shmall = 943718
2g物理内存 shmall=shmmax/1024/4
#ORACLE SETTING 双
vim /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 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
#修改20-nproc.conf
在两个节点修改/etc/security/limits.d/20-nproc.conf
vi /etc/security/limits.d/20-nproc.conf
# Change this
#注释这行* soft nproc 1024
# To this增加下面一行
* - nproc 16384
#修改login
在两个节点修改/etc/pam.d/login文件
vi /etc/pam.d/login
#ORACLE SETTING
session required pam_limits.so
#修改/etc/systemd/logind.conf文件
使用centos 7.2 安装grid时,需要修改这个参数,不然asm组件会起不来,crs时好时不好
vim /etc/systemd/logind.conf
RemoveIPC=no
systemctldaemon-reload
systemctlrestart systemcd-logind
#iso作为yum镜像源
cd /etc/yum.repos.d/
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old
将iso挂载
vi base.repo
[Base]
name=base -Base
baseurl=file:///mnt/iso
gpgcheck=0
enabled=1
yum clean all
yum makecache
yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat unixODBC unixODBC-devel readline libtermcap-devel pdksh
上传compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
#停止avahi-daemon服务
两个节点分别操作
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service
ps -ef|grep avahi-daemon
kill -9 pid avahi-daemon
#关闭透明大页
安装tuned
yum -y install tuned
tuned-adm active
throughput-performance
cd /usr/lib/tuned/
vi tuned.conf
然后就是配置关闭透明大页的关键,在tuned.conf文件中,增加以下内容
[vm]
transparent_hugepage=never
tuned-adm profile throughput-performance
#扫描磁盘
for host in $(ls /sys/class/scsi_host/);do echo "- - -" >/sys/class/scsi_host/${host}/scan; done
#multipath
获取设备wwid .
for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `/lib/udev/scsi_id --whitelist --replace-whitespace /dev/$i`"; done
模块没有加载成功使用下列命初始化DM、重启系统 .
// DM multipath kernel driver not loaded ----这个提示说明DM模块没有加载成功 !!
# modprobe dm-multipath
# modprobe dm-round-robin
# service multipathd start
# multipath –v2
#修改共享存储、udev规则
在节点1和节点2,固定设备名称并且赋予grid属性,执行如下命令,用来生成udev规则
--CentOS/RHEL6
[root@rac1]#
for i in b c d
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id--whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done
--CentOS/RHEL7直接编辑如下文件,修改result
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c2916521e6dbec5e963be5ab3947", RUN+="/bin/sh -c 'mknod /dev/asm-crs b $major $minor; chown grid:asmadmin /dev/asm-crs; chmod 0660 /dev/asm-crs'"
--MULTIPATH存储规则
for i in asm-ocr1 asm-ocr2 asm-ocr3 asm-data1; do printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/$i | grep -i dm_uuid)"; done
ACTION=="add|change",ENV{DM_UUID}=="mpath-360050768108204eea800000000000024",OWNER="grid",GROUP="asmadmin",MODE="0660",SYMLINK+="asm-ocr1"
ACTION=="add|change",ENV{DM_UUID}=="mpath-360050768108204eea800000000000025",OWNER="grid",GROUP="asmadmin",MODE="0660",SYMLINK+="asm-ocr2"
ACTION=="add|change",ENV{DM_UUID}=="mpath-360050768108204eea800000000000026",OWNER="grid",GROUP="asmadmin",MODE="0660",SYMLINK+="asm-ocr3"
ACTION=="add|change",ENV{DM_UUID}=="mpath-360050768108204eea800000000000027",OWNER="grid",GROUP="asmadmin",MODE="0660",SYMLINK+="asm-data1"
两个节点重启udev
systemctl restart systemd-udev-trigger.service
或者
/sbin/udevadm trigger --type=devices --action=change
/sbin/udevadm control --reload
检查共享磁盘分区
在两个节点检查udev重新生效后,有关asm磁盘是否可以识别
[root@rac01 ~]#ls /dev/asm* -l
brw-rw---- 1 grid asmadmin 8, 48 Apr 30 14:20 /dev/asm-arch
brw-rw---- 1 grid asmadmin 8, 16 Apr 30 14:20 /dev/asm-crs
brw-rw---- 1 grid asmadmin 8, 32 Apr 30 14:20 /dev/asm-data
#上传集群包软件包等
#安装集群CVUQDISK包 双
[root@rac1 grid]# cd rpm
[root@rac1 rpm]#export CVUQDISK_GRP=oinstall
[root@rac1 rpm]#rpm -ivh cvuqdisk-1.0.9-1.rpm
#集群安装
./runInstaller.sh
#数据库软件安装
./runInstaller.sh
#打补丁 双
解压OPatch包,替换的原来的包(grid和oracle)
查看版本是否更新
./opatch version
查看是否有补丁安装
./opatch lsInventory
解压补丁包
检查补丁包(grid和oracle)
cd 补丁包路径
/u01/app/12.1.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
/u01/app/oracle/product/12.1.0/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
安装补丁(grid和oracle)
/u01/app/12.1.0/grid/OPatch/opatch apply -oh /u01/app/12.1.0/grid -local 补丁包路径
/u01/app/oracle/product/12.2.0/dbhome_1/OPatch/opatch apply -oh $ORACLE_HOME -local 补丁包路径
#opatchauto apply安装命令
/u01/app/12.1.0/grid/OPatch/opatchauto apply /soft/patches/34204576_20220719/34204576/ -oh /u01/app/12.1.0/grid
/u01/app/oracle/product/12.1.0/dbhome_1/OPatch/opatchauto apply /soft/patches/34204576_20220719/34204576/ -oh /u01/app/oracle/product/12.1.0/dbhome_1
查看是否有补丁安装
./opatch lsInventory
#asm配置
asmca
#数据库安装
dbca
#监听等配置
netca