当前位置:Gxlcms > 数据库问题 > rhel7.4安装oracle 11G 11.2.0.4.0 RAC

rhel7.4安装oracle 11G 11.2.0.4.0 RAC

时间:2021-07-01 10:21:17 帮助过:15人阅读

一、操作系统

red hat 7.4
oracle数据库版本
11.2.0.4
oracle grid版本
11.2.0.4
对应的文件
p13390677_112040_Linux-x86-64_1of7.zip - database software
p13390677_112040_Linux-x86-64_2of7.zip - database software
p13390677_112040_Linux-x86-64_3of7.zip - grid software

IP地址规划:
DNS server:192.168.1.168
db node1:192.168.1.212 public
192.168.1.213 VIP
10.0.1.2 private
db node2:192.168.1.214 public
192.168.1.215 VIP
10.0.1.3 private
scan: 192.168.1.216

二、基本配置

1、修改主机名称:
vi /etc/hostname配置文件

hostnamectl set-hostname <计算机名>
A: redhat-212
B: redhat-214

2、动态IP修改为静态IP
cd /etc/sysconfig/network-scripts/
BOOTPROTO="static" #dhcp改为static

3、修改两个rac节点网卡配置:
节点1:

cat /etc/sysconfig/network-scripts/ifcfg-ens192 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=2a2b7809-26ac-4fc6-95d0-124c7348171a
DEVICE=ens192
ONBOOT=yes
IPADDR=192.168.1.212
PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-ens224 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=6da67cdc-933c-4bfe-a3b1-2896175be86b
DEVICE=ens224
ONBOOT=yes
IPADDR=10.0.1.2
PREFIX=24

节点2:

cat /etc/sysconfig/network-scripts/ifcfg-ens192 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=aeead365-1e33-41c3-b0e9-b147c4a2e688
DEVICE=ens192
ONBOOT=yes
IPADDR=10.0.1.3
PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=e4fe8fed-6e97-43b4-aec6-80ce42588ead
DEVICE=ens224
ONBOOT=yes
IPADDR=192.168.1.214
PREFIX=24

#vim /etc/resolv.conf
nameserver 218.2.2.2

分别重启一下网卡:
systemctl restart network.service

禁用该可预测命名规则。对于这一点,你可以在启动时传递“net.ifnames=0 biosdevname=0 ”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0 biosdevname=0 ”到GRUBCMDLINELINUX变量来实现的。

cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed ‘s, release .*$,,g‘ /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

3、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

4、关闭selinux
#vim /etc/selinux/config
修改文件
SELINUX=disabled
临时关闭
#setenforce 0

5、内部DNS解析两个rac节点:
NODE1:

vim /etc/hosts   127.0.0.1这一行修改一下名字racdb1,末尾添加如下:
127.0.0.1   racdb1 localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.216  cluster clusterscan
192.168.1.212  redhat-212
192.168.1.214  redhat-214
192.168.1.213  redhat-212-vip
192.168.1.215  redhat-214-vip
10.0.1.2       raca-priv
10.0.1.3       racb-priv

NODE2:

vim /etc/hosts   127.0.0.1这一行修改一下名字racdb2,末尾添加如下
127.0.0.1   racdb2 localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.216  cluster clusterscan
192.168.1.212  redhat-212
192.168.1.214  redhat-214
192.168.1.213  redhat-212-vip
192.168.1.215  redhat-214-vip
10.0.1.2       raca-priv
10.0.1.3       racb-priv

三、openfiler来划分存储空间

这个软件挺好用的,在vmware环境下安装,其实就是个linux系统,我们创建vmdisk就行了。配置登陆一个网页https://ip:446
在网络存储服务器 (openfiler1) 上执行以下安装。
在两个 Oracle RAC 节点上进行网络配置之后,下一步是将 Openfiler 软件安装到网络存储服务器 (openfiler1)。稍后会将网络存储服务器配置为 iSCSI 存储设备,以满足 Oracle Clusterware 和 Oracle RAC 的所有共享存储需求。
安装 Openfiler步骤可参考oracle官网:
http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-083834-zhs.html

1、使用 Openfiler 配置 iSCSI 卷
OpenFiler设置 iSCSI / 逻辑卷卷名卷描述
racdb-crs1 racdb-ASM CRS Volume 1
racdb-crs2 racdb-ASM CRS Volume 2
racdb-crs3 racdb-ASM CRS Volume 3
racdb-data1 racdb-ASM Data Volume 1
racdb-data2 racdb-ASM Data Volume 2
racdb-data3 racdb-ASM Data Volume 3
racdb-fra1 racdb-ASM FRA Volume 1
racdb-fra2 racdb-ASM FRA Volume 2
racdb-fra3 racdb-ASM FRA Volume 3

2、ISCSI路径名称命名
iqn.2006-01.com.openfiler:racdb.crs1
iqn.2006-01.com.openfiler:racdb.crs2
iqn.2006-01.com.openfiler:racdb.crs3
iqn.2006-01.com.openfiler:racdb.data1
iqn.2006-01.com.openfiler:racdb.data2
iqn.2006-01.com.openfiler:racdb.data3
iqn.2006-01.com.openfiler:racdb.fra1
iqn.2006-01.com.openfiler:racdb.fra2
iqn.2006-01.com.openfiler:racdb.fra3

3、两个节点安装iscsi客户端

#yum install -y iscsi-initiator-utils
#systemctl start iscsid.service
#service iscsid start

4、设置iscsi客户端开机启动

systemctl enable iscsid.service
systemctl enable iscsi.service

5、查看服务状态

#systemctl list-unit-files |grep iscsi*
iscsi-shutdown.service                        static  
iscsi.service                                 enabled 
iscsid.service                                enabled 
iscsiuio.service                              disabled
iscsid.socket                                 enabled 
iscsiuio.socket                               enabled 

6、发现ISCSI服务端磁盘路径

#iscsiadm -m discovery -t sendtargets -p openfiler1-priv 为你的openfiler的IP地址,我这里地址是10.0.1.100
#iscsiadm -m discovery -t sendtargets -p 10.0.1.100
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.fra3
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.fra2
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.fra1
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.data3
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.data2
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.data1
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.crs3
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.crs2
10.0.1.100:3260,1 iqn.2006-01.com.openfiler:racdb.crs1

7、每个 Oracle RAC 节点都能够从网络存储服务器中发现可用目标。下一步是手动登录每个可用目标,这可以使用 iscsiadm 命令行接口完成。这需要在两个 Oracle RAC 节点上运行。注意,我必须指定网络存储服务器的 IP 地址而非其主机名 (openfiler1-priv) — 我认为必须这么做,因为上述发现使用 IP 地址显示目标。
登陆ISCSI远程磁盘
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs2 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs3 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data1 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data2 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data3 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra1 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra2 -p 10.0.1.100 -l
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra3 -p 10.0.1.100 -l

8、设置开机启动自动连接磁盘

iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs2 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs3 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data1 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data2 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data3 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra1 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra2 -p 10.0.1.100 --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra3 -p 10.0.1.100 --op update -n node.startup -v automatic

9、查看远程磁盘路径和关联的磁盘路径
#(cd /dev/disk/by-path; ls -l openfiler | awk ‘{FS=" "; print $9 " " $10 " " $11}‘)
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs1-lun-0 -> ../../sdc
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs2-lun-0 -> ../../sdd
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs3-lun-0 -> ../../sde
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data1-lun-0 -> ../../sdf
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data2-lun-0 -> ../../sdg
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data3-lun-0 -> ../../sdh
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra1-lun-0 -> ../../sdi
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra2-lun-0 -> ../../sdj
ip-10.0.1.100:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra3-lun-0 -> ../../sdk

10、安装udev设备管理器(rac_udev建立磁盘方式安装grid)
#yum install -y udev
查看磁盘串号

-----------------------------------------------------------------------------------------------------------------
for disk in `ls /dev/sd*`
                  do
                    echo $disk
                    /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=$disk
                  done   \\回车
-----------------------------------------------------------------------------------------------------------------
 /dev/sda
/dev/sda1
/dev/sda2
/dev/sdb
/dev/sdb1
/dev/sdc
14f504e46494c45527763443337452d557347312d514f3049
/dev/sdd
14f504e46494c4552715837527a472d78444f522d6e6b5774
/dev/sde
14f504e46494c45523045727559352d706674422d43666c59
/dev/sdf
14f504e46494c455262664b78684c2d51796e512d30464179
/dev/sdg
14f504e46494c45526c36533367792d6a6265712d45705648
/dev/sdh
14f504e46494c45524159783651312d4a4554742d4f74776f

在两个 Oracle RAC 节点:
映射关联磁盘

#vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45527763443337452d557347312d514f3049", SYMLINK+="asm_ocr_1_1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c4552715837527a472d78444f522d6e6b5774", SYMLINK+="asm_ocr_1_2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45523045727559352d706674422d43666c59", SYMLINK+="asm_data_1_1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c455262664b78684c2d51796e512d30464179", SYMLINK+="asm_data_1_2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45526c36533367792d6a6265712d45705648", SYMLINK+="asm_fra_1_1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", ENV{ID_SERIAL}=="14f504e46494c45524159783651312d4a4554742d4f74776f", SYMLINK+="asm_fra_1_2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

加载rules文件(rac_udev建立磁盘方式安装grid)
#udevadm control --reload-rules
#udevadm trigger

11、查看关联路径情况
#ls -l /dev/asm*
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_data_1_1 -> sdf
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_data_1_2 -> sdg
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_fra_1_1 -> sdh
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_fra_1_2 -> sdi
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_ocr_1_1 -> sdc
lrwxrwxrwx. 1 root root 3 12月 26 17:30 /dev/asm_ocr_1_2 -> sdd
lrwxrwxrwx. 1 root root 3 1月 8 14:00 /dev/asm_ocr_1_3 -> sde

四、创建任务角色划分操作系统权限组、用户和目录

1、创建用户:
groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
groupadd -g 1300 dba
groupadd -g 1301 oper
2、创建组:
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper grid
useradd -u 1101 -g oinstall -G dba,oper,asmdba oracle
3、创建密码:
passwd grid
passwd oracle
4、设置互信关系,这里记住oracle和grid用户都要设置互信
#su - grid
$ mkdir ~/.ssh(有则不创建)
两个节点执行以下操作
ssh-keygen -t rsa
ssh-keygen -t dsa
这里一步一步直接回车的
技术分享图片

以下操作在一个节点上执行即可(id_rsa是密钥,id_rsa.pub是公钥)
cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys --公钥存在authorized_keys文件中,写到本机
cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
ssh redhat-214 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --第二个节点的公钥写到本机
ssh redhat-214 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
技术分享图片
技术分享图片
scp ~/.ssh/authorized_keys secdb2:~/.ssh/authorized_keys
技术分享图片
两个节点上分别验证
ssh redhat-212 date
ssh redhat-214 date
ssh raca-priv date
ssh racb-priv date

#su - oracle
两个节点执行以下操作:
ssh-keygen -t rsa
ssh-keygen -t dsa
技术分享图片
以下操作在一个节点上执行即可
cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys --公钥存在authorized_keys文件中,写到本机
cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
ssh redhat-214 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --第二个节点的公钥写到本机
ssh redhat-214 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
技术分享图片
scp ~/.ssh/authorized_keys redhat-214:~/.ssh/authorized_keys --上传本机公钥到第二个节点管理
技术分享图片
两个节点上分别验证
ssh redhat-212 date
ssh redhat-214 date
ssh raca-priv date
ssh racb-priv date

5、为grid用户设置环境变量
如下操作也需要在两个节点上同样进行,这里需要注意的是grid用户的SID和oracle用户的SID,是不一样的,这里大家明白原理的话就不会出错。
以 grid 用户帐户分别登录到两个 Oracle RAC 节点并创建以下登录脚本 (.bash_profile):
注: 在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的 Oracle SID。对于此示例,我使用:
racnode1:ORACLE_SID=+ASM1
racnode2:ORACLE_SID=+ASM2
Node1:

[root@racnode1 ~]# su - grid
vi .bash_profile
export TMP=/tmp  
export TMPDIR=$TMP  
export ORACLE_SID=+ASM1  
export ORACLE_BASE=/u01/grid  
export ORACLE_HOME=/u01/app/grid/11.2.0  
export NLS_DATE_FORMAT=‘yyyy/mm/dd hh24:mi:ss‘  
export TNS_ADMIN=$ORACLE_HOME/network/admin  
export PATH=/usr/sbin:$PATH  
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
export LANG=en_US
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
umask 022 

Node2:

#su - grid
vi .bash_profile
export TMP=/tmp  
export TMPDIR=$TMP  
export ORACLE_SID=+ASM2  
export ORACLE_BASE=/u01/grid  
export ORACLE_HOME=/u01/app/grid/11.2.0  
export NLS_DATE_FORMAT=‘yyyy/mm/dd hh24:mi:ss‘  
export TNS_ADMIN=$ORACLE_HOME/network/admin  
export PATH=/usr/sbin:$PATH  
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  
export LANG=en_US  
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
umask 022

6、为 oracle 用户设置环境变量
以 oracle 用户帐户分别登录到两个 Oracle RAC 节点并创建以下登录脚本 (.bash_profile):
注: 在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的 Oracle SID。对于此示例,我使用:
racnode1:ORACLE_SID=orcl1
racnode2:ORACLE_SID=orcl2

#su - oracle
vi .bash_profile
export TMP=/tmp  
export TMPDIR=$TMP  
export ORACLE_HOSTNAME=rac1  
export ORACLE_SID=orcl1  
export ORACLE_BASE=/u01/app/oracle  
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1  
export ORACLE_UNQNAME=orcl  
export TNS_ADMIN=$ORACLE_HOME/network/admin  
#export ORACLE_TERM=xterm  
export PATH=/usr/sbin:$PATH  
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  
export LANG=en_US  
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
export NLS_DATE_FORMAT=‘yyyy/mm/dd hh24:mi:ss‘  
umask 022

Node2:

#su - oracle
vi .bash_profile
export TMP=/tmp  
export TMPDIR=$TMP  
export ORACLE_HOSTNAME=rac2  
export ORACLE_SID=orcl2  
export ORACLE_BASE=/u01/app/oracle  
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1  
export ORACLE_UNQNAME=orcl  
export TNS_ADMIN=$ORACLE_HOME/network/admin  
#export ORACLE_TERM=xterm  
export PATH=/usr/sbin:$PATH  
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  
export LANG=en_US  
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
export NLS_DATE_FORMAT=‘yyyy/mm/dd hh24:mi:ss‘  
umask 022

7、创建 Oracle 基目录路径
最后一步是配置 Oracle 基路径,要遵循最佳灵活体系结构 (OFA) 的结构及正确的权限。需要以 root 用户身份在集群的两个 Oracle RAC 节点上完成此任务。
本指南假设在根文件系统中创建 /u01 目录。请注意,这样做是为了简便起见,不建议将其作为通用做法。通常会将 /u01 目录作为配置了硬件或软件镜像功能的单独文件系统供应。
#mkdir -p /u01/grid
#mkdir -p /u01/app/grid/11.2.0
#chown -R grid:oinstall /u01
#mkdir -p /u01/app/oracle
#chown oracle:oinstall /u01/app/oracle
#chmod -R 775 /u01
8、为 Oracle 软件安装用户设置资源限制:
8.1 在每个 Oracle RAC 节点上,在 /etc/security/limits.conf 文件中添加以下几行代码(下面的示例显示软件帐户所有者 oracle 和 grid):

#vi /etc/security/limits.conf
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

8.2 在每个 Oracle RAC 节点上,在 /etc/pam.d/login 文件中添加或编辑下面一行内容(如果不存在此行):

#vi /etc/pam.d/login
session    required     pam_limits.so

8.3 修改内核参数

#vim /etc/sysctl.conf 
fs.aio-max-nr = 1048576  
fs.file-max = 6815744  
kernel.shmall = 1073741824  
kernel.shmmax = 4398046511104  
kernel.shmmni = 4096  
kernel.sem = 250 32000 100 128  
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

使sysctl生效
#sysctl -p
8.3 安装相关的开发工具包
#yum -y install glibc \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel \
pdksh \
compat-libcap1 \
compat-libstdc++-33 \
elfutils-libelf-devel \
gcc \
gcc-c++ \
smartmontools \
pdksh \
compat-libstdc \
cvuqdisk

9、RHEL 7 安装oracle rac 11.2.0.4执行root.sh报错ohasd failed to start
报错原因:
因为RHEL 7使用systemd而不是initd运行进程和重启进程,而root.sh通过传统的initd运行ohasd进程。

9.1、 解决方法:
在RHEL 7中ohasd需要被设置为一个服务,在运行脚本root.sh之前。
以root用户创建服务文件
#touch /usr/lib/systemd/system/ohas.service
#chmod 777 /usr/lib/systemd/system/ohas.service

9.2、 将以下内容添加到新创建的ohas.service文件中

#vim /usr/lib/systemd/system/ohas.service
[Unit]
Description=Oracle High Availability Services
After=syslog.target

[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple
Restart=always

[Install]
WantedBy=multi-user.target

9.3、以root用户运行下面的命令
#systemctl daemon-reload
#systemctl enable ohas.service
#systemctl start ohas.service

9.4、查看运行状态
#systemctl status ohas.service

五、安装GI集群软件

1、连接操作中的 Xmanager
#su - grid
$ cd /home/grid/
$ unzip p13390677_112040_Linux-x86-64_3of7.zip

#yum install xhost + -y
#su - grid
$ export DISPLAY=ip:0.0 //ip为你本机ip
$ xhost +
$ export LANG=en_US
$ ./runInstaller

若需要添加中文语言包
#mkdir -p /usr/share/fonts/zh_CN/TrueType
将zysong.ttf文件放至/usr/share/fonts/zh_CN/TrueType目录中

2、安装截图
出来下面安装界面,选择最下面的Skip software updates,然后选next
技术分享图片
选择第一个安装和配置集群环境,next
技术分享图片
选择第二个高级安装,next
技术分享图片
选上添加简体中文,next
技术分享图片
此处集群名自己取,SCAN名需要和/etc/hosts中的scan ip别名一致,端口默认,不选GNS,next
技术分享图片
添加busrac2节点
技术分享图片
点next(上面设置互信关系一定执行过,不然这一步如果next会出错的)
技术分享图片
或如果没有设置互信关系的话可以点SSH Connectivity,输入grid用户的密码(注两点节点grid用户与密码要一致),在点setup,最后next
技术分享图片
技术分享图片
这里只需要确认一下网络接口,安装向导已经把我们填写,next(这里是自动识别到你服务器上IP是哪段的)
技术分享图片
存储选择:选择ASM,next
技术分享图片
这里让我们创建asm disk group,给一个名字“ORC",建立OCR盘,选择3块盘 next(这里要求至少3块盘的,这里图片只是参考的)
技术分享图片
技术分享图片
设置密码:next
技术分享图片
这里选择第二项不使用IPMI
技术分享图片
给ASM指定不同的组,next
技术分享图片
这里安装向导会帮你填写集群软件的安装路径,我们继续next,这里我们需要注意的是oracle_Home不能是oracle_base的子目录
技术分享图片
技术分享图片
技术分享图片
以root身份执行脚本:root用户执行两个脚本,一个节点执行完后再执行第二个节点(root.sh执行可能会长一点)
技术分享图片
我们会看到这个报错,其实这个问题我查看了mos知识库,说的比较含糊,可以忽略这个错误,不影响我们的安装和未来的使用
技术分享图片
直接finish了,这里我们集群软件安装完成。
技术分享图片

六、安装oracle 11.2.0.4软件

#su - oracle
$ export DISPLAY=ip:0.0 //ip为你本机ip
$ xhost +
$ export LANG=en_US
$ cd database
$ ./runInstaller
在解压database运行安装脚本,这里和安装grid一样,启动安装向导
我们不填写mos账号,又不联网没意义,点击next,这里我们还是在rac1节点上安装
技术分享图片
技术分享图片
我们这里只安装数据库软件,点击next
技术分享图片
这里选择集群安装方式,有以下3种选项之一:
Single instance database installation(单实例数据库安装) 这一选项允许仅在本地节点上安装单实例数据库软件。
Oracle Real Application Cluster database installation(Oracle RAC数据库安装) 这一选项允许在集群中的选定节点上选择和安装Oracle RAC二进制文件。
Oracle RAC One Node database installation 这个选项在选定节点上安装Oracle RAC One Node数据库二进制文件。
在这个界面上,选择Oracle Real Application Cluster database installation选项。
选择“select All”,点击next
技术分享图片
还是选择语言为”English/Simplified Chinese“,点击next
技术分享图片
选择”Enterprise Edition“ 点击”next“
技术分享图片
这里是oracle_base和oracle_home,点击next
技术分享图片
这个对应到组就可以了,继续next
技术分享图片
这一步会check你的安装环境,我们只要配置参数正确就没问题,这里基本上都是succeeded,点击next(导致这个错误的原因是在/etc/hosts中配置了SCAN的地址,尝试ping这个地址信息,如果可以成功,则这个错误可以忽略。我尝试ping scan ip可以ping通,所以暂时也就忽略了这个错误。)
技术分享图片
summary一下,我们就可以‘install‘了
技术分享图片
这里安装会比较快
技术分享图片
出现如下错误
技术分享图片
查看日志报错如下:
#vi /u01/oraInventory/logs/installActions2018-01-10_02-56-55PM.log

INFO: collect2: error: ld returned 1 exit status

INFO: make[1]: *** [/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl] Error 1

INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib‘

INFO: make: *** [emdctl] Error 2

INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target ‘agent nmhs‘ of makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk‘. See ‘/u01/oraInventory/logs/installActions2018-01-10_02-56-55PM.log‘ for details.
Exception Severity: 1

解决方法:
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk

$vi /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
搜索以下行:
$(MK_EMAGENT_NMECTL)
改变为:
$(MK_EMAGENT_NMECTL) -lnnz11

然后点击:retry,可以。
技术分享图片
完成后同样也要执行一个脚本,也是要在root用户下去执行,分别两个节点上
技术分享图片
至此数据库软件已安装完成。
技术分享图片

七、创建ASM磁盘组

1、在安装GI集群软件的时候我们就配置过asm磁盘,现在我们还有一个disk分区没有加入到asm磁盘组中,我们通过asmca来实现
$ su - grid
$ export DISPLAY=ip:0.0
运行命令asmca,我们看到下面配置向导。这里可以看到我们之前配置过的disk group,我们点击create后
技术分享图片
来到这里,我们给disk group起个名字,选择redundancy Normal,勾选data_1_1和data_1_2,我们ok一下
技术分享图片
会有一个10秒的等待创建磁盘组,完成后提示成功
技术分享图片
选择redundancy Normal,勾选fra_1_1和fra_1_2,我们ok一下
技术分享图片
技术分享图片
这里我们就能看到有三个disk group了!!!退出即可。。
技术分享图片

八、配置oracle database

我们直接su - oracle,运行dbca命令来配置数据库
$ export DISPLAY=IP:0.0
$ export LANG=en_US
$ dbca
技术分享图片
来到如下界面后,我们选择第一项集群模式,然后next
技术分享图片
这个就不用考虑了,直接选择create a database,继续next
技术分享图片
这个也是选择general purpose,继续next
技术分享图片
配置类型选择admin-managed,Global database name和sid相同为test,最下面我们选择”select all“,然后next
技术分享图片
这里我们还是选择默认推荐的配置,EM和amt都选择配置,继续next
技术分享图片
把sys、system、dbsnmp都给一个相同的密码,这里你自己给吧!!然后next
技术分享图片
这里我们选择用存储类型为asm,使用omf管理数据文件。
技术分享图片
我安装数据库勾选OEM的时候,这个地方就要输入ASMSNMP密码的,设置好后点ok
技术分享图片
这里选择闪回恢复区,看个人情况
技术分享图片
或是我们这里不选择闪回恢复区,我这里就不配置了,以后手动改spfile吧!!
技术分享图片
不选择装sample schemas
技术分享图片
或是装上sample schemas,以后就有数据可以测试玩一把了!! 继续next
技术分享图片
这里我们字符集会有所设置,ZHS16GBK-GBK,国际字符集默认的就行。其它的选项卡没有特殊配置,在以后都可以去改spfile,我们继续next
技术分享图片
技术分享图片
技术分享图片
这个是数据库的存储配置页面,我们看一下控制文件等等都要开始安装了,next
技术分享图片
继续finish
技术分享图片
技术分享图片
等待吧,这个也是比较久的,如果SSD和cpu比较给力,速度基本上10分钟吧!!
技术分享图片
安装完后,点击exit
技术分享图片
我们就退出安装配置向导了!!!

九、检查

1、检查crs资源状态

[grid@redhat212 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATADB.dg  ora....up.type ONLINE    ONLINE    redhat212   
ora.FRA.dg     ora....up.type ONLINE    ONLINE    redhat212   
ora....ER.lsnr ora....er.type ONLINE    ONLINE    redhat212   
ora....N1.lsnr ora....er.type ONLINE    ONLINE    redhat212   
ora.ORC.dg     ora....up.type ONLINE    ONLINE    redhat212   
ora.asm        ora.asm.type   ONLINE    ONLINE    redhat212   
ora.cvu        ora.cvu.type   ONLINE    ONLINE    redhat212   
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
ora....network ora....rk.type ONLINE    ONLINE    redhat212   
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    redhat212   
ora.ons        ora.ons.type   ONLINE    ONLINE    redhat212   
ora.orcl.db    ora....se.type ONLINE    ONLINE    redhat212   
ora....SM1.asm application    ONLINE    ONLINE    redhat212   
ora....12.lsnr application    ONLINE    ONLINE    redhat212   
ora....212.gsd application    OFFLINE   OFFLINE               
ora....212.ons application    ONLINE    ONLINE    redhat212   
ora....212.vip ora....t1.type ONLINE    ONLINE    redhat212   
ora....SM2.asm application    ONLINE    ONLINE    redhat214   
ora....14.lsnr application    ONLINE    ONLINE    redhat214   
ora....214.gsd application    OFFLINE   OFFLINE               
ora....214.ons application    ONLINE    ONLINE    redhat214   
ora....214.vip ora....t1.type ONLINE    ONLINE    redhat214   
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    redhat212 

我们看到ora.gsd、ora.214(RAC2).gsd是offline状态,其实两个进程对我们的数据库是没有任何影响的,我们把他们打开就行了
2、查看节点的状态

[grid@redhat212 ~]$ srvctl status nodeapps -n redhat212
VIP redhat212-vip is enabled
VIP redhat212-vip is running on node: redhat212
Network is enabled
Network is running on node: redhat212
GSD is disabled
GSD is not running on node: redhat212
ONS is enabled
ONS daemon is running on node: redhat212

3、开启节点

[grid@redhat212 ~]$ srvctl enable nodeapps
PRKO-2415 : VIP is already enabled on node(s): redhat212,redhat214
PRKO-2416 : Network resource is already enabled.
PRKO-2417 : ONS is already enabled on node(s): redhat212,redhat214
开节点后在查看节点状态
[grid@redhat212 ~]$ srvctl status nodeapps
VIP redhat212-vip is enabled
VIP redhat212-vip is running on node: redhat212
VIP redhat214-vip is enabled
VIP redhat214-vip is running on node: redhat214
Network is enabled
Network is running on node: redhat212
Network is running on node: redhat214
GSD is enabled
GSD is not running on node: redhat212
GSD is not running on node: redhat214
ONS is enabled
ONS daemon is running on node: redhat212
ONS daemon is running on node: redhat214

4、启动节点

$ srvctl start nodeapps
PRKO-2421 : Network resource is already started on node(s): redhat212,redhat214
PRKO-2420 : VIP is already started on node(s): redhat212
PRKO-2420 : VIP is already started on node(s): redhat214
PRKO-2422 : ONS is already started on node(s): redhat212,redhat214

5、我们在来查看一下所有的组件是否online

$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATADB.dg  ora....up.type ONLINE    ONLINE    redhat212   
ora.FRA.dg     ora....up.type ONLINE    ONLINE    redhat212   
ora....ER.lsnr ora....er.type ONLINE    ONLINE    redhat212   
ora....N1.lsnr ora....er.type ONLINE    ONLINE    redhat212   
ora.ORC.dg     ora....up.type ONLINE    ONLINE    redhat212   
ora.asm        ora.asm.type   ONLINE    ONLINE    redhat212   
ora.cvu        ora.cvu.type   ONLINE    ONLINE    redhat212   
ora.gsd        ora.gsd.type   ONLINE   ONLINE   redhat212               
ora....network ora....rk.type ONLINE    ONLINE    redhat212   
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    redhat212   
ora.ons        ora.ons.type   ONLINE    ONLINE    redhat212   
ora.orcl.db    ora....se.type ONLINE    ONLINE    redhat212   
ora....SM1.asm application    ONLINE    ONLINE    redhat212   
ora....12.lsnr application    ONLINE    ONLINE    redhat212   
ora....212.gsd application    ONLINE   ONLINE    redhat212             
ora....212.ons application    ONLINE    ONLINE    redhat212   
ora....212.vip ora....t1.type ONLINE    ONLINE    redhat212   
ora....SM2.asm application    ONLINE    ONLINE    redhat214   
ora....14.lsnr application    ONLINE    ONLINE    redhat214   
ora....214.gsd application    ONLINE   ONLINE      redhat214          
ora....214.ons application    ONLINE    ONLINE    redhat214   
ora....214.vip ora....t1.type ONLINE    ONLINE    redhat214   
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    redhat212 

我们这里安装完毕!!!

6、集群信息grid和oracle用户都可以执行
查看集群状态 crs_stat -t
查看集群资源信息 srvctl config database -d orcl -a
查看连接信息 srvctl config database -d orcl -t
技术分享图片
查看ASM信息 srvctl config listener -n node2
技术分享图片

十、关于RAC数据库与监听启动与停止命令

在其中一个节点执行即可:
RAC启动数据库监听,进入grid用户来启停端口
#su - grid
$ srvctl start|stop|status listener

RAC启动数据库,进入oracle用户
#su - oracle
$ sqlplus sys/**** as sysdba
SQL> select status from v$instance; //查看数据库状态
SQL>startup; //启动数据库
SQL>shutdown immediate; //停数据库

十一、添加表空间步骤:

ssh root 进入 192.168.1.212 
su  - oracle
source .bash_profile
sqlplus /nolog
connect /as sysdba

SQL>CREATE SMALLFILE TABLESPACE "TEST" DATAFILE ‘+DATADB/ORCL/DATAFILE/test001.dbf‘ SIZE 1024M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

添加TEST表空间中的存储test001.dbf文件在ASM的+DATADB/ORCL/DATAFILE/目录下,初始大小为1G,自动500MB扩展不舍限制。

番外

这里还要强调一下11.2.0.1版本的一个bug,就是客户端无法通过scan连接到数据库解决方法如下:
[oracle@redhat212 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 19 11:29:58 2014
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> show parameter local_listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      (DESCRIPTION=(ADDRESS_LIST=(AD
                                                 DRESS=(PROTOCOL=TCP)(HOST=redhat212
                                                 -vip)(PORT=1521))))
SQL> show parameter remot_listener;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string      clusterscan:1521
remote_login_passwordfile            string      EXCLUSIVE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
result_cache_remote_expiration       integer     0
SQL> alter system set local_listener=‘(DESCRIPTION=(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.216)(PORT = 1521))))‘ sid=‘orcl1‘;    

System altered.

SQL> alter system set remote_listener=‘clusterscan:1521‘;

System altered.

SQL> alter system register;

System altered.

最后配置客户端tnsname.ora文件指向scan listener

#tnsnames.ora.rac1 Network Configuration File: /u01/app/11.2.0/grid/network/admin/tnsnames.ora.rac1
#Generated by Oracle configuration tools.
TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.216)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

rhel7.4安装oracle 11G 11.2.0.4.0 RAC

标签:main   空间步骤   shu   col   not   over   ec2   actions   serial   

人气教程排行