Centos7.8静默安装11gRAC
一、基本信息与配置
节点基本信息:
| 节点一 | 节点二 | |
|---|---|---|
| 主机名 | ora1 | ora2 |
| 操作系统 | Centos7.8 | Centos7.8 |
| grid用户名/密码 | grid | grid |
| Oracle用户名/密码 | oracle | oracle |
| Oracle 版本 | 11g Enterprise Edition Release 11.2.0.4.0 | 11g Enterprise Edition Release 11.2.0.4.0 |
| oracle用户SID | rac1 | rac2 |
| grid用户SID | +ASM1 | +ASM2 |
| GI安装位置 | /u01/app/grid/base | /u01/app/grid/base |
| 数据库安装位置 | /u01/app/oracle/base | /u01/app/oracle/base |
| 公网IP | 192.168.3.64/21 | 192.168.3.65/21 |
| 私网IP | 192.168.122.2/24 | 192.168.122.3/24 |
需要准备的文件
# 安装包
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
# 补丁
p19404309_112040_Linux-x86-64.zip
p18370031_112040_Linux-x86-64.zip
# rpm
pdksh-5.2.14-37.el5_8.1.x86_64.rpm
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
同时挂载本地系统镜像方便yum安装,本文档需要安装的大部分依赖在本地系统镜像中足够安装。
1、用户配置
-
gird用户配置
-
创建用户
groupadd oinstall groupadd dba groupadd oper groupadd asmadmin groupadd asmdba groupadd asmoper useradd -g oinstall -G asmadmin,asmdba,asmoper,dba grid echo "grid" | passwd grid --stdin -
编辑Grid用户的
.bash_profile注: ora1的grid用户的ORACLE_SID=+ASM1,ora2的grid用户的ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid/base export ORACLE_HOME=/u01/app/grid/home export ORACLE_SID=+ASM1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin export PATH -
生效环境变量
. ~/.bash_profile
-
-
oracle 用户配置
-
新建oracle用户
useradd -g oinstall -G oper,dba,asmdba -d /home/oracle oracle echo "oracle" | passwd oracle --stdin -
编辑oracle用户的
.bash_profile注:ora1的ORACLE_SID=rac1,ora2的ORACLE_SID=rac2
export ORACLE_SID=rac1 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin export PATH
-
2、文件夹设置
-
双库创建相同的文件夹结构(root用户执行)
mkdir -p /u01/app/oracle/product/11.2.0/db_1 mkdir -p /u01/app/grid/base mkdir -p /u01/app/grid/home chown -R grid:oinstall /u01 chown -R oracle:oinstall /u01/app/oracle -
文件放置,zip包自行解压
root家目录下的文件(双节点)
pdksh-5.2.14-37.el5_8.1.x86_64.rpm compat-libstdc++-33-3.2.3-72.el7.x86_64.rpmgrid家目录下的文件(仅节点一)
p13390677_112040_Linux-x86-64_3of7.zip p19404309_112040_Linux-x86-64.zip p18370031_112040_Linux-x86-64.ziporacle家目录下的文件(仅节点一)
p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip
3、系统配置
-
修改每个节点的/etc/hosts(IP根据实际情况填写)
参考文档:RAC的几种IP:https://cloud.tencent.com/developer/article/1578494
192.168.3.64 ora1 192.168.3.65 ora2 192.168.122.2 ora1-priv 192.168.122.3 ora2-priv # 以下三个IP交给安装包进行配置,所以安装之前无需ping通以下IP 192.168.3.88 ora1-vip 192.168.3.89 ora2-vip 192.168.3.90 ora-scan -
关闭防火墙和SELinux
systemctl disable firewalld systemctl stop firewalld # 永久关闭SELINUX且临时关闭 sed -i 's/=enforcing/=disabled/g' /etc/selinux/config && setenforce 0 # 重启(可选) reboot
4、内核参数
-
修改内核参数文件/etc/sysctl.conf
cat << EOF > /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 16451328 kernel.shmmax = 33692319744 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 EOF -
生效内核参数
sysctl -p -
修改/etc/security/limits.conf
cat << EOF > /etc/security/limits.conf oracle soft nproc 131072 oracle hard nproc 131072 oracle soft nofile 131072 oracle hard nofile 131072 oracle soft core unlimited oracle hard core unlimited oracle soft memlock 50000000 oracle hard memlock 50000000 grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 EOF -
在/etc/pam.d/login下添加
session required pam_limits.so这使得用户将加载PAM的pam_limits.so,设置用户登录的硬性设置
5、安装依赖
-
本地系统镜像中可直接安装(双节点执行)
yum install -y binutils-* libc* compat-libstdc++-* elfutils-libelf-* elfutils-libelf-* elfutils-libelf-devel-static-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* kernel-headers-* libaio-* libaio-devel-* libgcc-* libgomp-* libstdc++-* libstdc++-devel-* make-* sysstat-* compat-libcap* smartmontools -
额外需要(双节点执行)
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm # 如果 pdksh 与 (已安裝) ksh-20120801-142.el7.x86_64 冲突 # rpm -e ksh-20120801-142.el7.x86_64 rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm -
推荐安装
yum install -y -q net-tools telnet unzip -
安装cvuqdisk包(仅节点一)
# 进入安装文件夹 cd grid/ rpm -ivh rpm/cvuqdisk-1.0.9-1.rpm
二、配置共享磁盘
除iscsi服务端外,其他步骤双节点执行
参考:iscsi安装参考文档
1、配置iscsi服务端
-
安装
yum install -y target* -
启动并自启
systemctl enable target systemctl start target -
将未格式化、未分区的硬盘进行分区通过
fdisk -l检查到/dev/sdb是我们需要进行共享的磁盘,先将它分区,但不需要格式化[root@ora1 grid]# fdisk /dev/sdb 命令(输入 m 获取帮助):n Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-41943039,默认为 2048):2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):13981696 命令(输入 m 获取帮助):n Select (default p): p 分区号 (2-4,默认 2):2 起始 扇区 (13981697-41943039,默认为 13983744):13983744 Last 扇区, +扇区 or +size{K,M,G} (13983744-41943039,默认为 41943039):27962026 命令(输入 m 获取帮助):n Select (default p): p 分区号 (3,4,默认 3):3 起始 扇区 (13981697-41943039,默认为 27963392):27963392 Last 扇区, +扇区 or +size{K,M,G} (27963392-41943039,默认为 41943039):41943039 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 -
查看分区
ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 6G 0 part ├─sdb2 8:18 0 6G 0 part └─sdb3 8:19 0 8G 0 part sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso -
进入子系统
[root@ora1 ~]# targetcli -
添加硬盘信息格式
/> /backstores/block create DB1 /dev/sdb1 /> /backstores/block create DB2 /dev/sdb2 /> /backstores/block create DB3 /dev/sdb3 -
创建iscsi
格式:/iscsi create 格式.年份-月份.*.com.自定义名称 /> /iscsi create iqn.2021-06.30.com.oracle -
关联block和target
/> /iscsi/iqn.2021-06.30.com.oracle/tpg1/luns create /backstores/block/DB1 /> /iscsi/iqn.2021-06.30.com.oracle/tpg1/luns create /backstores/block/DB2 /> /iscsi/iqn.2021-06.30.com.oracle/tpg1/luns create /backstores/block/DB3 -
创建acl
/> /iscsi/iqn.2021-06.30.com.oracle/tpg1/acls create iqn.2021-06.30.com.oracle:ora1 -
退出
/> exit Global pref auto_save_on_exit=true Configuration saved to /etc/target/saveconfig.json -
重启服务
systemctl restart target注:此时会有端口开放
[root@ora1 ~]# netstat -tunlp |grep 3260 tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN -
2、配置iscsi客户端
-
安装
yum install -y iscsi* -
开机自启
systemctl enable iscsid -
发现target
注:有输出才是被发现,-p 后面的参数是iscsi服务端的ip
[root@ora1 ~]# iscsiadm -m discovery -t st -p 192.168.3.64 192.168.3.64:3260,1 iqn.2021-06.30.com.oracle -
修改/etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-06.30.com.oracle:ora1 -
重启服务
systemctl restart iscsid -
登录
注:需要发现后,才能登陆
iscsiadm -m node -T iqn.2021-06.30.com.oracle -p 192.168.3.64 -l如果在主机A格式化了共享盘,在B上其实有了,但可能需要重新登录后,才能在
lsblk中看见,不登录也可以直接用格式化的磁盘 -
检查,其中sdc,sdd,sde就是我们共享盘啦
[root@ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 6G 0 part ├─sdb2 8:18 0 6G 0 part └─sdb3 8:19 0 8G 0 part sdc 8:32 0 6G 0 disk sdd 8:48 0 8G 0 disk sde 8:64 0 6G 0 disk sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso -
在节点一分区(),并在节点二重新登录
节点一:
[root@ora1 ~]# fdisk /dev/sdc 命令(输入 m 获取帮助):n Partition type:p 分区号 (1-4,默认 1):1 起始 扇区 (2048-13978965,默认为 2048):2048 Last 扇区, +扇区 or +size{K,M,G} (2048-13978965,默认为 13978965):13978965 命令(输入 m 获取帮助):w The partition table has been altered! 正在同步磁盘。 [root@ora1 ~]# fdisk /dev/sdd 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): 起始 扇区 (2048-13980330,默认为 2048): Last 扇区, +扇区 or +size{K,M,G} (2048-13980330,默认为 13980330): 命令(输入 m 获取帮助):w The partition table has been altered! 正在同步磁盘。 [root@ora1 ~]# fdisk /dev/sde 命令(输入 m 获取帮助):n Partition type: 分区号 (1-4,默认 1):1 起始 扇区 (2048-13979647,默认为 2048):2048 Last 扇区, +扇区 or +size{K,M,G} (2048-13979647,默认为 13979647):13979647 命令(输入 m 获取帮助):w The partition table has been altered! 正在同步磁盘。节点二:
# 注销 [root@ora2 ~]# iscsiadm -m node -T iqn.2021-06.30.com.oracle -p 192.168.3.64 -u Logging out of session [sid: 6, target: iqn.2021-06.30.com.oracle, portal: 192.168.3.64,3260] Logout of [sid: 6, target: iqn.2021-06.30.com.oracle, portal: 192.168.3.64,3260] successful. # 重新登录 [root@ora2 ~]# iscsiadm -m node -T iqn.2021-06.30.com.oracle -p 192.168.3.64 -l Logging in to [iface: default, target: iqn.2021-06.30.com.oracle, portal: 192.168.3.64,3260] (multiple) Login to [iface: default, target: iqn.2021-06.30.com.oracle, portal: 192.168.3.64,3260] successful. # 可以看到磁盘被分区了 [root@ora1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part ├─centos-root 253:0 0 45.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 6G 0 part ├─sdb2 8:18 0 6G 0 part └─sdb3 8:19 0 8G 0 part sdc 8:32 0 6G 0 disk └─sdc1 8:33 0 6G 0 part sdd 8:48 0 8G 0 disk └─sdd1 8:49 0 8G 0 part sde 8:64 0 6G 0 disk └─sde1 8:65 0 6G 0 part sr0 11:0 1 4.5G 0 rom loop0 7:0 0 4.5G 1 loop /mnt/iso
3、配置多路径
参考文档:
-
安装软件
yum install device-mapper* -y -
启用模块
modprobe dm-multipath modprobe dm-round-robin -
查看是否启用
[root@ora1 ~]# lsmod | grep ^dm_m[uo] dm_multipath 27792 1 dm_round_robin dm_mod 124501 9 dm_multipath,dm_log,dm_mirror -
生成Multipath而配置文件
mpathconf --enable --find_multipaths y --with_module y --with_multipathd y -
添加共享磁盘的wwid
# 将添加到/etc/multipath/wwid [root@ora2 multipath]# multipath -a /dev/sdb wwid '3600140579f3599c229346da8e86734e4' added [root@ora2 multipath]# multipath -a /dev/sdc wwid '36001405faacac4444884193b7de477e6' added [root@ora2 multipath]# multipath -a /dev/sdd wwid '36001405c8e49d885e6843d9bdc448d26' added -
修改/etc/multipath.conf配置文件
defaults { user_friendly_names yes # 启用多路径策略 path_grouping_policy multibus find_multipaths yes path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } # 将本地磁盘排除 blacklist { devnode "^sd[ab]" devnode "sr0" } multipaths { multipath { # 根据multipath -a /dev/命令输出的wwid # 或根据/lib/udev/scsi_id -g -u /dev/sdb 中每个磁盘的WWID来对应 wwid 3600140579f3599c229346da8e86734e4 alias RAC-OCRVOTE } multipath { wwid 36001405faacac4444884193b7de477e6 alias RAC-FRA } multipath { wwid 36001405c8e49d885e6843d9bdc448d26 alias RAC-DATA } } -
重启服务
systemctl restart multipathd -
检查
此时查看
multipath -v3 | grep "not in wwids file, skipping",没有报错。查看
[root@ora1 ~]# ll /dev/mapper/ 总用量 0 lrwxrwxrwx 1 root root 7 7月 4 13:13 centos-root -> ../dm-0 lrwxrwxrwx 1 root root 7 7月 4 13:13 centos-swap -> ../dm-1 crw------- 1 root root 10, 236 7月 4 13:13 control lrwxrwxrwx 1 root root 7 7月 4 13:32 RAC-DATA -> ../dm-4 lrwxrwxrwx 1 root root 7 7月 4 13:32 RAC-DATA1 -> ../dm-7 lrwxrwxrwx 1 root root 7 7月 4 13:32 RAC-FRA -> ../dm-2 lrwxrwxrwx 1 root root 7 7月 4 13:32 RAC-FRA1 -> ../dm-5 lrwxrwxrwx 1 root root 7 7月 4 13:32 RAC-OCRVOTE -> ../dm-3 lrwxrwxrwx 1 root root 7 7月 4 13:32 RAC-OCRVOTE1 -> ../dm-6查看
[root@ora1 ~]# multipathd show paths hcil dev dev_t pri dm_st chk_st dev_st next_check 3:0:0:2 sdd 8:48 1 active ready running .......... 1/20 3:0:0:0 sdc 8:32 1 active ready running .......... 1/20 3:0:0:1 sde 8:64 1 active ready running .......... 1/20到此multipath 配置完成!
4、配置udev
参考文档:udev简介及配置
通过UDEV配置,能够让Oracle对磁盘名进行持久化并改变磁盘访问权限为grid:asmadmin。这样在ASM的配置过程中能够看到磁盘。今后增加磁盘也不会改变原有的磁盘名称。该步骤可使用ASMLIB
-
根据共享盘查看dm_uuid
[root@ora1 ~]# for i in RAC-OCRVOTE1 RAC-DATA1 RAC-FRA1; do printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/$i |grep -i -o dm_uuid.*)"; done RAC-OCRVOTE1 DM_UUID=part1-mpath-3600140579f3599c229346da8e86734e4 RAC-DATA1 DM_UUID=part1-mpath-36001405c8e49d885e6843d9bdc448d26 RAC-FRA1 DM_UUID=part1-mpath-36001405faacac4444884193b7de477e6 -
添加udev规则
编辑/etc/udev/rules.d/99-oracle-asmdevices.rules
ENV{DM_UUID}==""依次为上诉查找的结果,SYMLINK(该名称作为/dev/…)依次为asm-ocrvote,asm-data,asm-fra
# 模板 # KERNEL=="dm-*",SYMLINK+="",ENV{DM_UUID}=="",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",ENV{DM_UUID}=="part1-mpath-3600140579f3599c229346da8e86734e4",SYMLINK+="asm-ocrvote",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",ENV{DM_UUID}=="part1-mpath-36001405c8e49d885e6843d9bdc448d26",SYMLINK+="asm-data",OWNER="grid",GROUP="asmadmin",MODE="0660" KERNEL=="dm-*",ENV{DM_UUID}=="part1-mpath-36001405faacac4444884193b7de477e6",SYMLINK+="asm-fra",OWNER="grid",GROUP="asmadmin",MODE="0660" -
双节点添加完规则后,重启udev服务
udevadm control --reload-rules udevadm trigger --type=devices --action=change -
测试文件是否生效
在查看
ll /dev/mapper/时,能够发现RAC-FRA1 -> ../dm-5,RAC-OCRVOTE1 -> ../dm-6,RAC-DATA1 -> ../dm-7,针对dm-5、dm-6、dm-7进行查看。udevadm test /sys/block/dm-5查看权限分配是否正确
[root@ora1 rules.d]# ll /dev/dm-5 brw-rw---- 1 grid asmadmin 253, 5 7月 4 14:06 /dev/dm-5
三、安装Grid Infrastructure
标题无特殊特殊说明的步骤,均使用grid用户执行
1、grid用户互信
配置RAC的节点互信,注:在主节点执行一次即可,验证互信的方式:ssh 主机名 date,能免密执行。
sshsetup/sshUserSetup.sh -hosts "ora1 ora2" -user grid -advanced -noPromptPassphrase
2、配置GI
-
执行检查
./runcluvfy.sh stage -pre crsinst -n ora1,ora2 -fixup -verbose -
修改response/grid_install.rsp
注:主节点修改该文件即可,其他节点将被复制安装文件
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0 # 主机名 ORACLE_HOSTNAME=ora1 # INVENTORY 目录 INVENTORY_LOCATION=/u01/app/grid/oraInventory SELECTED_LANGUAGES=en oracle.install.option=CRS_CONFIG # ORACLE_HOME:不能在ORACLE_BASE之下且不相同 ORACLE_BASE=/u01/app/grid/base ORACLE_HOME=/u01/app/grid/home oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin # scanName:scan ip oracle.install.crs.config.gpnp.scanName=ora-scan oracle.install.crs.config.gpnp.scanPort=1521 # cluster Name:集群名 oracle.install.crs.config.clusterName=rac oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.gpnp.gnsSubDomain= oracle.install.crs.config.gpnp.gnsVIPAddress= oracle.install.crs.config.autoConfigureClusterNodeVIP=false # cluster node:前者公网,后者VIP oracle.install.crs.config.clusterNodes=ora1:ora1-vip,ora2:ora2-vip # networkInterfaceList:填写网关,前者公网,后者私网,均为真实网卡,填写该IP的网段号,接口3是未被使用 oracle.install.crs.config.networkInterfaceList=eth0:192.168.0.0:1,eth5:192.168.122.0:2 oracle.install.crs.config.storageOption=ASM_STORAGE oracle.install.crs.config.sharedFileSystemStorage.diskDriveMapping= oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=NORMAL oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=NORMAL oracle.install.crs.config.useIPMI=false oracle.install.crs.config.ipmi.bmcUsername= oracle.install.crs.config.ipmi.bmcPassword= oracle.install.asm.SYSASMPassword=Oracle123 # 表决盘 oracle.install.asm.diskGroup.name=OCRVOTE # NORMAL模式需要指定三块,EXTERNAL模式只需要制定一块盘 # 剩下2块盘,留作创建磁盘组 oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=1 # 指定表决盘盘路径,根据ll /dev/RAC-ORAVOTE指向的路径 oracle.install.asm.diskGroup.disks=/dev/dm-7 # 发现其他asm磁盘 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/dm-* # password oracle.install.asm.monitorPassword=Oracle123 oracle.install.crs.upgrade.clusterNodes= oracle.install.asm.upgradeASM=false oracle.installer.autoupdates.option=SKIP_UPDATES oracle.installer.autoupdates.downloadUpdatesLoc= AUTOUPDATES_MYORACLESUPPORT_USERNAME= AUTOUPDATES_MYORACLESUPPORT_PASSWORD= PROXY_HOST= PROXY_PORT=0 PROXY_USER= PROXY_PWD= PROXY_REALM= -
进入安装文件夹,并执行下列命令,开始静默安装(约十分钟)
./runInstaller -ignorePrereq -silent -force -responseFile `pwd`/response/grid_install.rsp -showprogress注:图形化安装窗口异常的问题解决命令:
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0注:通过
echo $?是否返回0来判断安装成功,一般出现CAUSE:就是失败了
3、关于执行root.sh前的补丁p18370031
该脚本针对CentOS7的服务
-
没有补丁的解决方案
不打补丁时,执行root.sh将提示Adding Clusterware entries to inittab
-
编写启动脚本
cat << EOF > /usr/lib/systemd/system/ohasd.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 EOF -
修改服务
chmod 755 /usr/lib/systemd/system/ohasd.service systemctl daemon-reload systemctl enable ohasd.service -
在运行root.sh时,
/etc/init.d/目录出现inint.ohasd时启动服务systemctl start ohasd.service
-
-
有补丁的解决方案
打补丁后,执行root.sh将提示Adding Clusterware entries to oracle-ohasd.service
注:节点一打补丁后,根据可以选择是否在其他节点上执行
-
进入补丁目录
cd 18370031/ -
安装补丁
安装过程中
/u01/app/grid/home/OPatch/opatch apply -
检查安装历史记录
/u01/app/grid/home/OPatch/opatch lshistory
-
4、执行脚本(root用户执行)
-
以root用户执行
注:第一个节点执行完俩条命令后,再去二个节点执行,务必双节点执行。否则安装数据库找不到没有执行root.sh的主机
注,出错时多检查日志,执行完毕后可
ehco $?查看返回值,0则正确/u01/app/grid/oraInventory/orainstRoot.sh # 约十分钟 /u01/app/grid/home/root.sh完美执行脚本Root.sh 日志如下,仅供参考
Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Using configuration parameter file: /u01/app/grid/home/crs/install/crsconfig_params Creating trace directory User ignored Prerequisites during installation Installing Trace File Analyzer OLR initialization - successful root wallet root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert peer root cert TP profile reader root cert TP pa root cert TP peer pa cert TP pa peer cert TP profile reader pa cert TP profile reader peer cert TP peer user cert pa user cert Adding Clusterware entries to oracle-ohasd.service CRS-2672: Attempting to start 'ora.mdnsd' on 'ora1' CRS-2676: Start of 'ora.mdnsd' on 'ora1' succeeded CRS-2672: Attempting to start 'ora.gpnpd' on 'ora1' CRS-2676: Start of 'ora.gpnpd' on 'ora1' succeeded CRS-2672: Attempting to start 'ora.cssdmonitor' on 'ora1' CRS-2672: Attempting to start 'ora.gipcd' on 'ora1' CRS-2676: Start of 'ora.cssdmonitor' on 'ora1' succeeded CRS-2676: Start of 'ora.gipcd' on 'ora1' succeeded CRS-2672: Attempting to start 'ora.cssd' on 'ora1' CRS-2672: Attempting to start 'ora.diskmon' on 'ora1' CRS-2676: Start of 'ora.diskmon' on 'ora1' succeeded CRS-2676: Start of 'ora.cssd' on 'ora1' succeeded 已成功创建并启动 ASM。 已成功创建磁盘组OCRVOTE。 clscfg: -install mode specified Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. CRS-4256: Updating the profile Successful addition of voting disk 214e1a35dd694f02bf891fa4259699f3. Successfully replaced voting disk group with +OCRVOTE. CRS-4256: Updating the profile CRS-4266: Voting file(s) successfully replaced ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 214e1a35dd694f02bf891fa4259699f3 (/dev/dm-7) [OCRVOTE] Located 1 voting disk(s). CRS-2672: Attempting to start 'ora.asm' on 'ora1' CRS-2676: Start of 'ora.asm' on 'ora1' succeeded CRS-2672: Attempting to start 'ora.OCRVOTE.dg' on 'ora1' CRS-2676: Start of 'ora.OCRVOTE.dg' on 'ora1' succeeded 软件包准备中... cvuqdisk-1.0.9-1.x86_64 Configure Oracle Grid Infrastructure for a Cluster ... succeeded -
在主节点以grid用户执行
/u01/app/grid/home/cfgtoollogs/configToolAllCommands RESPONSE_FILE=<response_file>注:response_file请使用绝对路径
注:plug-in Automatic Storage Management Configuration Assistan失败关系不大($?返回3)
注:如果不执行该语句,安装数据库时会提示没有安装GI,因此务必执行。
四、安装并创建数据库
1、安装oracle软件(oracle用户)
-
oracle用户互信
# 进入安装目录 cd database sshsetup/sshUserSetup.sh -hosts "ora1 ora2" -user oracle -advanced -noPromptPassphrase注:互信检查方式为:
ssh 主机名 date,能免密执行 -
资源文件操作
备份资源文件
cp response/db_install.rsp response/db_install.rsp.save修改response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY # hostname ORACLE_HOSTNAME=ora1 UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oracle/Inventory SELECTED_LANGUAGES=en # ORACLE_HOME ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.EEOptionsSelection=false oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,o oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba # node oracle.install.db.CLUSTER_NODES=ora1,ora2 oracle.install.db.isRACOneInstall=false oracle.install.db.racOneServiceName= oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # globalDBName oracle.install.db.config.starterdb.globalDBName=racdb oracle.install.db.config.starterdb.SID=rac oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.memoryOption=false oracle.install.db.config.starterdb.memoryLimit= oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=false oracle.install.db.config.starterdb.password.ALL=Oracle#123 oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.SYSMAN= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL= oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.automatedBackup.osuid= oracle.install.db.config.starterdb.automatedBackup.ospwd= oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword=Oracle#123 MYORACLESUPPORT_USERNAME= MYORACLESUPPORT_PASSWORD= SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true PROXY_HOST= PROXY_PORT= PROXY_USER= PROXY_PWD= PROXY_REALM= COLLECTOR_SUPPORTHUB_URL= oracle.installer.autoupdates.option=SKIP_UPDATES oracle.installer.autoupdates.downloadUpdatesLoc= AUTOUPDATES_MYORACLESUPPORT_USERNAME= AUTOUPDATES_MYORACLESUPPORT_PASSWORD= -
节点1执行进行安装
./runInstaller -ignorePrereq -silent -force -responseFile `pwd`/response/db_install.rsp -showProgress注:每个节点需要有相同文件结构(已实施)
注:其他远程节点会自动复制,远程节点的$ORACLE_HOME大约有4.2G,可查看进度(大约十五分钟)
注:安装之间再检查下oracle用户是否属于dba组,否则安装失败,会提示
CAUSE: The installation user account must be a member of all groups required for installation.注:不要输出
........94% Done和Setup files successful.作为安装结束的标志,多等一会。。每个节点的文件大小基本相同,刚出这两条日志时,节点二还没达到4.2G的大小 -
HAIP:如果使用云服务器搭建,最好关闭HAIP,否则会造成无法连接节点的169.254地址,节点二的+ASM2实例无法启动
export HAIP_UNSUPPORTED=YES -
使用root用户执行root.sh脚本
/u01/app/oracle/product/11.2.0/db_1/root.sh
2、创建磁盘组(grid用户)
-
以grid用户进入SQLPLUS,其中节点1的ORALCE_SID=+ASM1,节点二的ORALCE_SID=+ASM2
sqlplus / as sysasm -
查看当前磁盘组
SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup; GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB ------------ ------------------------------ ----------- ---------- ---------- 1 OCRVOTE MOUNTED 6140 5744 -
创建磁盘组
SQL> CREATE DISKGROUP DATA external REDUNDANCY disk '/dev/dm-6' ATTRIBUTE 'au_size'='1M','compatible.asm'='11.2'; Diskgroup created. SQL> CREATE DISKGROUP FRA external REDUNDANCY disk '/dev/dm-5' ATTRIBUTE 'au_size'='1M','compatible.asm'='11.2'; Diskgroup created. -
再次查看当前磁盘组
SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup; GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB ------------ ------------------------------ ----------- ---------- ---------- 1 OCRVOTE MOUNTED 6140 5744 2 DATA MOUNTED 6140 6088 3 FRA MOUNTED 8187 8135注:另一节点上也可看到创建的磁盘组
3、安装数据库(oracle用户)
-
备份资源文件
cd $ORACLE_HOME cp assistants/dbca/dbca.rsp !#:1.save -
修改$ORACLE_HOME/assistants/dbca/dbca.rsp
[CREATEDATABASE] GDBNAME = "racdb" templateName=General_Purpose.dbc # 该文件SID指定的是前缀 # 所以oracle的用户的ORACLE_SID应该是rac1与rac2 SID = "rac" NODELIST="ora1,ora2" SYSPASSWORD = "password" SYSTEMPASSWORD = "password" SYSMANPASSWORD = "password" DBSNMPPASSWORD = "password" DATAFILEDESTINATION ="+DATA" RECOVERYAREADESTINATION="+DATA" STORAGETYPE="ASM" CHARACTERSET = "AL32UTF" NATIONALCHARACTERSET= "UTF8" DISKGROUPNAME=DATA OBFUSCATEDPASSWORDS=FALSE SAMPLESCHEMA=FALSE -
使用dbca安装数据库
dbca -silent -createDatabase -responseFile `pwd`/assistants/dbca/dbca.rsp注:如果$?不是0,可以去/u01/app/oracle/cfgtoollogs/dbca查看日志
注:当节点一执行后,可在节点二的oracle用户(ORALCE_SID=rac2)实时查看新建的数据库
五、结束
到此安装结束!下面是部分命令
-
检查RAC状态
[grid@ora1 ~]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.DATA.dg ora....up.type ONLINE ONLINE ora1 ora....ER.lsnr ora....er.type ONLINE ONLINE ora1 ora....N1.lsnr ora....er.type ONLINE ONLINE ora2 ora....N2.lsnr ora....er.type ONLINE ONLINE ora1 ora....N3.lsnr ora....er.type ONLINE ONLINE ora1 ora.asm ora.asm.type ONLINE ONLINE ora1 ora.cvu ora.cvu.type ONLINE ONLINE ora1 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE ora1 ora.oc4j ora.oc4j.type ONLINE ONLINE ora1 ora.ons ora.ons.type ONLINE ONLINE ora1 ora....SM1.asm application ONLINE ONLINE ora1 ora....A1.lsnr application ONLINE ONLINE ora1 ora.ora1.gsd application OFFLINE OFFLINE ora.ora1.ons application ONLINE ONLINE ora1 ora.ora1.vip ora....t1.type ONLINE ONLINE ora1 ora....SM2.asm application ONLINE ONLINE ora2 ora....A2.lsnr application ONLINE ONLINE ora2 ora.ora2.gsd application OFFLINE OFFLINE ora.ora2.ons application ONLINE ONLINE ora2 ora.ora2.vip ora....t1.type ONLINE ONLINE ora2 ora.scan1.vip ora....ip.type ONLINE ONLINE ora2 ora.scan2.vip ora....ip.type ONLINE ONLINE ora1 ora.scan3.vip ora....ip.type ONLINE ONLINE ora1 [grid@ora1 ~]$ crsctl check crs CRS-4638: Oracle High Availability Services is online CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online注:gsd结尾项状态为OFFLINE是正常
注:启动/关闭集群需要root权限,可以把grid用户变量复制到root用户的.bash_profile下
-
用root用户直接关闭并启动集群
# 关得快 [root@ora1 ~]# crsctl stop cluster -all # 启动慢 [root@ora1 ~]# crsctl start cluster -all




