1、實驗環境說明
本實驗中需在VMware 中共配置3臺服務器,節點1創建並配置後,可克隆出節點2(修改相關參數),另外一臺模擬存儲。
操作系統:redhat6.6(建議最小化安裝,會缺幾個包,可配置本地yum源後yum安裝)
oracle12c(linuxx64_12201_database.zip)
12cgrid(linuxx64_12201_grid_home.zip)
2、oracle 12C R2 軟硬件要求
2.1硬件最低配置要求
序號 |
組件 |
內存需求 |
1 |
Oracle Grid Infrastructure installations |
4GB以上 |
2 |
Oracle Database installations |
最小1GB,建議2GB以上 |
2.2oracle 12C R2認證的OS軟件版本
序號 |
組件 |
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、整體規劃
3.1 IP地址規劃
注:
服務器至少需要2塊網卡,一塊是public,一塊給prive。
public IP 、VIP IP 以及SCAN IP 必須是同一網段,而且公網IP(局域網)。
prive IP 跟其他IP 不屬於同一網段,私網IP。
VIP IP 和SCAN IP 屬於虛擬IP 表現爲網卡子接口,如eth0:1,eth0:2。
節點一:jydb1
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
節點二:jydb2
192.168.12.96 public
192.168.12.98 vip
10.0.0.6 prive1
10.0.0.22 prive2
scan ip
192.168.12.90
storage(存儲)
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裏面添加:
添加路由命令爲:直接將在命令行操作的命令複製到該文件中,保存退出即可。
3.2操作系統本地磁盤分區規劃
序號 |
分區名稱 |
大小 |
用途說明 |
1 |
/boot |
200MB |
引導分區 |
2 |
/ |
剩餘所有空間 (總分區建議40G以上) |
根分區 |
3 |
swap |
8192MB |
最少4GB以上 |
|
4、操作系統配置部分
4.1.修改主機名
參考(https://blog.csdn.net/weixin_40283570/article/details/80928858)
4.2 配置hosts文件
$ 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.
注意:主機名不要用下劃線,否則安裝可能會報錯
4.3 檢查RPM依賴包
[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
4.4 創建用戶組
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
4.5 創建文件目錄及權限配置
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/
4.6 配置環境變量
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是父子目錄。
4.7安裝cvuqdisk(在grid介質cv/rpm目錄下,也可以網上下載)
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
再次安裝即可成功。
5、修改操作系統配置
5.1修改時間同步(最小化安裝未安裝ntpd服務,需手動安裝)
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自帶的時間同步機制(本實驗未成功,重啓後一臺節點無法啓動)。
5.2 關閉防火牆
service iptables stop
chkconfig iptables off
5.3 禁用selinux
修改/etc/selinux/config
編輯文本中的SELINUX=enforcing爲SELINUX=disabled
立即生效,setenforce 0
5.4 配置/etc/security/limits.conf,用戶shell的限制
#在/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
5.5 配置/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
修改生效:sysctl -p
針對rp_filter部分,如果沒有多張私有網卡,則不需要配置,測試中註釋掉也未影響。
5.7 配置/etc/pam.d/login,加載 pam_limits.so插入式認證模塊
vi /etc/pam.d/login 添加如下內容:
session required pam_limits.so
5.8 配置NOZEROCONF
vi /etc/sysconfig/network增加以下內容
NOZEROCONF=yes
5.9 修改nsswitch.conf(未驗證)
nsswitch.conf保存的是域名檢索順序。在一些系統配置中,NIS(Network Information System)可能會引起SCAN域名解析異常。爲了避免這種問題的發生,對nsswitch.conf做如下調整
#vi /etc/nsswitch.conf
修改行
hosts: files dns
爲
hosts: files dns nis
爲節省時間,完成以上所有步驟後,可直接克隆 節點2 ,克隆完成後需修改環境變量、主機名及網卡信息。(查看如何修改網卡信息)
5.10配置各節點ssh互信
以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