本实验中需在VMware 中共配置3台服务器,节点1创建并配置后,可克隆出节点2(修改相关参数),另外一台模拟存储。
操作系统:redhat6.6(建议最小化安装,会缺几个包,可配置本地yum源后yum安装)
oracle12c(linuxx64_12201_database.zip)
12cgrid(linuxx64_12201_grid_home.zip)
序号 |
组件 |
内存需求 |
1 |
Oracle Grid Infrastructure installations |
4GB以上 |
2 |
Oracle Database installations |
最小1GB,建议2GB以上 |
序号 |
组件 |
1 |
Oracle Linux 7 with the Unbreakable Enterprise kernel: |
2 |
Oracle Linux 7 with the Red Hat Compatible kernel: |
3 |
Oracle Linux 6.4 with the Unbreakable Enterprise kernel 2: |
4 |
Oracle Linux 6 with the Red Hat Compatible kernel: |
5 |
Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later |
6 |
Red Hat Enterprise Linux 6: 2.6.32-358.el6.x86_64 or later |
7 |
SUSE Linux Enterprise Server 12: 3.12.28-4-default or later |
8 |
SUSE Linux Enterprise Server 11 SP2: 3.0.13-0.27 or later |
3.1 IP地址规划
服务器至少需要2块网卡,一块是public,一块给prive。
prive IP 跟其他IP 不属于同一网段,私网IP。
VIP IP 和SCAN IP 属于虚拟IP 表现为网卡子接口,如eth0:1,eth0:2。
192.168.12.95 public
192.168.12.97 vip
10.0.0.5 prive1###与节点2prive1、存储sp1组成vlan10,从而实现多路径
10.0.0.11 prive2###与节点2prive2、存储sp2组成vlan20
192.168.12.96 public
192.168.12.98 vip
10.0.0.6 prive1
10.0.0.22 prive2
192.168.12.90
192.168.12.92
10.0.0.111 sp1
10.0.0.222 sp2
多网卡必要时需配置本机路由指向公共网段网关
上述操作重启后失效,若需要永久生效则需把命令行的操作命令route add default gw 192.168.12.1
在/etc/rc.local里面添加:
添加路由命令为:直接将在命令行操作的命令复制到该文件中,保存退出即可。
序号 |
分区名称 |
大小 |
用途说明 |
1 |
/boot |
200MB |
引导分区 |
2 |
/ |
剩余所有空间 (总分区建议40G以上) |
根分区 |
3 |
swap |
8192MB |
最少4GB以上 |
|
参考(https://blog.csdn.net/weixin_40283570/article/details/80928858)
$ vi /etc/hosts ##根据规划增加如下配置
#eth0 public
192.168.12.95 jydb1
192.168.12.96 jydb2
#eth0 vip
192.168.12.97 jydb1-vip
192.168.12.98 jydb2-vip
#eth1 private
10.0.0.5 jydb1-priv
10.0.0.6 jydb2-priv
10.0.0.11 jydb1-priv2
10.0.0.22 jydb2-priv2
#scan ip
192.168.12.90 jydb-cluster-scan
或者按照主机方式配置,如:#jydb1 #jydb2 #scanip 来配置
从oracle 11GR2开始,引入了SCAN IP 概念,相当于在客户端和数据库之间增加一层虚拟的网络层。在客户端tnsnames.ora配置文件中,只需要配置SCAN IP即可,客户端通过SCAN IP、SCANP IP Listener来访问数据库。使用SCAN IP的好处是,当后台RAC数据库添加、删除节点时,客户端配置信息无需修改。可以通过配置DNS服务器或者GNS来配置SCAN.
注意:主机名不要用下划线,否则安装可能会报错
[root@jydb1 ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libaio libaio-devel libXext libXtst libX11 libXau libxcb libXi make sysstat nfs-utils
binutils-2.20.51.0.2-5.46.el6.x86_64
compat-libcap1-1.10-1.x86_64
compat-libstdc++-33-3.2.3-69.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gcc-c++-4.4.7-18.el6.x86_64
glibc-2.12-1.209.el6.x86_64
glibc-devel-2.12-1.209.el6.x86_64
ksh-20120801-33.el6.x86_64
libgcc-4.4.7-18.el6.x86_64
libstdc++-4.4.7-18.el6.x86_64
libaio-0.3.107-10.el6.x86_64
libaio-devel-0.3.107-10.el6.x86_64
libXext-1.3.3-1.el6.x86_64
libXtst-1.2.3-1.el6.x86_64
libX11-1.6.4-3.el6.x86_64
libXau-1.0.6-4.el6.x86_64
libxcb-1.12-4.el6.x86_64
libXi-1.7.8-1.el6.x86_64
make-3.81-23.el6.x86_64
sysstat-9.0.4-33.el6.x86_64
nfs-utils-1.2.3-75.el6.x86_64
如出现未安装则yum安装,亲测本地yum能满足所有包的安装。关于如何配置本地yum源,可查看《配置本地yum源》。
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
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
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/
gird 用户
[root@jydb1 ~]# cat /home/grid/.bash_profile
export ORACLE_SID=+ASM1;
#export ORACLE_SID=+ASM2;###节点2用这个
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
oracle用户
[root@jydb1 ~]# cat /home/oracle/.bash_profile
export ORACLE_SID=racdb1;
#export ORACLE_SID=racdb2; ###节点2 用这个
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;
环境变量 | grid用户 | Oracle用户 |
ORACLE_BASE | /u01/app/grid | /u01/app/oracle |
ORACLE_HOME |
/u01/app/12.2.0/grid | /u01/app/oracle/product/12.2.0/db_1 |
ORACLE_SID[NODE1] | racdb1 | racdb2 |
ORACLE_SID[NODE2] | +ASM1 | +ASM2 |
grid用户的BASE和HOME变量是平行目录(如果设成父子目录会出错),而Oracle是父子目录。
rpm -qi cvuqdisk
CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
rpm -iv cvuqdisk-1.0.10-1.rpm
另外由于本系统是最小化安装,安装是会报错如下:
Preparing packages for installation... ls: 无法访问/usr/sbin/smartctl: 没有那个文件或目录 /usr/sbin/smartctl not
解决方案:
yum install smartmontools
再次安装即可成功。
vi /etc/ntp.conf
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 192.168.12.92
添加时间源服务器(测试用存储服务器作为时间源),注释已有同步服务器
vi /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
修改成
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
chkconfig ntpd on
service ntpd restart
如时间同步未配置成功,重启节点后可能会出现时间误差大,导致某一个节点无法正常运行。
第二种方法是关闭NTP服务,利用RAC自带的时间同步机制(本实验未成功,重启后一台节点无法启动)。
service iptables stop
chkconfig iptables off
修改/etc/selinux/config
编辑文本中的SELINUX=enforcing为SELINUX=disabled
立即生效,setenforce 0
#在/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/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
修改生效:sysctl -p
针对rp_filter部分,如果没有多张私有网卡,则不需要配置,测试中注释掉也未影响。
vi /etc/pam.d/login 添加如下内容:
session required pam_limits.so
vi /etc/sysconfig/network增加以下内容
NOZEROCONF=yes
nsswitch.conf保存的是域名检索顺序。在一些系统配置中,NIS(Network Information System)可能会引起SCAN域名解析异常。为了避免这种问题的发生,对nsswitch.conf做如下调整
#vi /etc/nsswitch.conf
修改行
hosts: files dns
为
hosts: files dns nis
为节省时间,完成以上所有步骤后,可直接克隆 节点2 ,克隆完成后需修改环境变量、主机名及网卡信息。(查看如何修改网卡信息)
以grid用户为例,oracle用户同样要配置互信(两个节点都要配置),主要作用在于方便安装过程中自动在多节点安装软件:
①先生成节点一grid的公钥
[grid@jydb1 ~]$ ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa):
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
The key fingerprint is:
b6:07:65:3f:a2:e8:75:14:33:26:c0:de:47:73:5b:95 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .. .o|
| .. o . .E |
| . ...Bo o |
| . .=.=. |
| S.o o |
| o = . . |
| . + o |
| . . o |
| . |
+-----------------+
把它通过命令传到节点二,
[grid@jydb1 ~]$ ssh-copy-id -i .ssh/id_rsa.pub [email protected]
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
②在第二个节点上也生成公钥,并追加到authorized_keys
[grid@jydb2 .ssh]$ ssh-keygen -t rsa -P ''
......
[grid@jydb2 .ssh]$ cat id_rsa.pub >> authorized_keys
[grid@jydb2 .ssh]$ scp authorized_keys [email protected]:.ssh/
The authenticity of host '10.0.0.1 (10.0.0.1)' can't be established.
RSA key fingerprint is d1:21:03:35:9d:f2:a2:81:e7:e1:7b:d0:79:f4:d3:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.1' (RSA) to the list of known hosts.
[email protected]'s password:
authorized_keys 100% 792 0.8KB/s 00:00
③验证
[grid@jydb1 .ssh]$ ssh jydb1 date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb1 .ssh]$ ssh jydb2 date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb1 .ssh]$ ssh jydb1-priv date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb2 .ssh]$ ssh jydb2-priv date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb1 ~]$ ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa):
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
The key fingerprint is:
b6:07:65:3f:a2:e8:75:14:33:26:c0:de:47:73:5b:95 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .. .o|
| .. o . .E |
| . ...Bo o |
| . .=.=. |
| S.o o |
| o = . . |
| . + o |
| . . o |
| . |
+-----------------+
把它通过命令传到节点二,
[grid@jydb1 ~]$ ssh-copy-id -i .ssh/id_rsa.pub [email protected]
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
②在第二个节点上也生成公钥,并追加到authorized_keys
[grid@jydb2 .ssh]$ ssh-keygen -t rsa -P ''
......
[grid@jydb2 .ssh]$ cat id_rsa.pub >> authorized_keys
[grid@jydb2 .ssh]$ scp authorized_keys [email protected]:.ssh/
The authenticity of host '10.0.0.1 (10.0.0.1)' can't be established.
RSA key fingerprint is d1:21:03:35:9d:f2:a2:81:e7:e1:7b:d0:79:f4:d3:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.1' (RSA) to the list of known hosts.
[email protected]'s password:
authorized_keys 100% 792 0.8KB/s 00:00
③验证
[grid@jydb1 .ssh]$ ssh jydb1 date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb1 .ssh]$ ssh jydb2 date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb1 .ssh]$ ssh jydb1-priv date
2018年 03月 30日 星期五 08:01:20 CST
[grid@jydb2 .ssh]$ ssh jydb2-priv date
2018年 03月 30日 星期五 08:01:20 CST
由于内容太多,分了几部分记录,第二部分地址
https://blog.csdn.net/weixin_40283570/article/details/80926694