rhel7.4安装oracle 11G 11.2.0.4.0 RAC

纵饮孤独 提交于 2019-11-25 20:21:58

一、操作系统

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  或下面加了stack最大栈大小,一般我使用都是上面多些 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768  grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768

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块盘的,这里图片只是参考的;有时候会找不到盘,可以试重新执行加载rules文件(rac_udev建立磁盘方式安装grid))



设置密码: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 

我们这里安装完毕!!!

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

grid和oracle用户都可以执行,在其中一个节点执行即可:
1、RAC监听启停:
$ srvctl status listener #检查TNS listener的状态
$ srvctl config listener -a #检查TNS listener的配置
$ srvctl start listener #开启监听
$ srvctl stop listener #停掉监听
$ srvctl stop listener -n redhat212 #停掉指定节点监听
$ srvctl start listener -n redhat212 #启动指定节点监听

例子:
RAC启动数据库监听,进入grid用户来启停端口
#su - grid
$ srvctl start|stop|status listener

2、RAC启停数据库:
srvctl status database -d RAC # 检查数据库的状态


srvctl status instance -d RAC -i rac1 #检查指定实例的状态
srvctl start database -d orcl # 启动数据库
srvctl stop database -d orcl # 关闭数据库
srvctl start instance -d orcl -i orcl1 # 启动指定的实例
srvctl stop instance -d orcl -i orcl2 # 关闭指定实例

例子:在nodes1上关闭一个实例,分别查看两个节点状态


或下面方式

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扩展不做限制。  增加表空间: alter tablespace CP_TM add datafile '+DATADB/orcl/datafile/cp_tm_08.dbf' size 20480M; RAC方式给CP_TM表空间增加cp_tm_08.dbf数据文件大小为20G。  alter tablespace CP_TM add datafile  +DATADB/orcl/datafile/cp_tm_09.dbf' size 10240M autoextend on next 50m maxsize 20480;   RAC增加表空间cp_tm_-09.dbf初始为10G,按50M增加最大到20G。 

十二、语法简汇

集群信息grid和oracle用户都可以执行
10.1、数据库与实例:

列出所有的配置数据库
$ srvctl config database

检查数据库相关的信息 (-d参数后面是您server_name)
$ srvctl config database -d orcl -a

$ srvctl config database -d orcl -t

srvctl status database -d RAC # 检查数据库的状态
srvctl status instance -d RAC -i rac1 #检查指定实例的状态
srvctl start database -d rac # 启动数据库
srvctl stop database -d rac # 关闭数据库
srvctl start instance -d rac -i rac1 # 启动指定的实例
srvctl stop instance -d rac -i rac2 # 关闭指定实例

ASM状态
$ srvctl status asm
ASM配置
$ srvctl status asm -a

10.2、网络相关的命令
TNS监听器状态以及配置
$ srvctl status listener #检查TNS listener的状态
$ srvctl config listener -a #检查TNS listener的配置
$ srvctl start listener #开启监听
$ srvctl stop listener #停掉监听
$ srvctl stop listener -n redhat212 #停掉指定节点监听
$ srvctl start listener -n redhat212 #启动指定节点监听

SRVCTL的参数-n 实例节点名,不是实例sid

查看某个节点ASM信息
srvctl config listener -n node2

SCAN状态以及配置
$ srvctl status scan
$ srvctl config scan

VIP各个节点的状态以及配置
$ srvctl status vip -n rac1
$ srvctl status vip -n rac2

$ srvctl config vip -n rac1
$ srvctl config vip -n rac2

节点应用程序配置(VIP、GSD、ONS、监听器)
$ srvctl config nodeapps -a -g-s -l

10.3、查看集群状态(nodeapps节点应用程序,ASM实例,数据库等)
$ crs_stat -t
状态检查也可以使用如下命令:
crsctl stat resource –t 或者 crsctl stat resource

番外

这里还要强调一下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. ORCL =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.216)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = orcl)     )   )
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!