使用Vbox 搭建centos7 11.2.0.4 RAC

来源:互联网 发布:周继红 田亮 知乎 编辑:程序博客网 时间:2024/06/05 14:49

虚拟机:VBOX
系统:Centos7
数据库:11.2.0.4

实验规划

服务器主机名 rac1 rac2 公共IP地址(第一个网卡)(可以用xshell连接的ip地址) 192.168.31.205 192.168.31.207 虚拟IP地址(与第一个网卡IP地址网段一样,只需在hosts文件中配置解析) 192.168.31.206 192.168.31.208 私用IP地址(第二个网卡)(必须与第一个网卡不在同一网段) 192.168.2.100 192.168.2.200 ORACLE RAC SID orcl3 orcl4 名称 SCAN IP 192.168.31.254 集群实例名称 orcl 操作系统 Centos7 存储 Raw Device Oracle 11.2.0.4

1.RAW(裸设备)

冗余策略 卷划分及大小说明 OCRVOTING Ocrvoting01 OCRVOTING Ocrvoting02 OCRVOTING Ocrvoting03 OCRVOTING Data01 OCRVOTING Data02 OCRVOTING Fra01 OCRVOTING Fra02

一、window上创建共享磁盘

把vbox软件目录加入到本机windows环境变量中,不然在执行命令式提示不存在
先创建一个文件夹为一个共享的磁盘目录
E:\rac\sharedisk2

创建虚拟机
ora11gRAC_S3
ora11gRAC_S4

创建虚拟介质

C:\Users\zhjfo>E:E:\>cd rac\sharedisk2VBoxManage createhd --filename ocrvoting01.vdi --size 1024 --format VDI --variant FixedVBoxManage createhd --filename ocrvoting02.vdi --size 1024 --format VDI --variant FixedVBoxManage createhd --filename ocrvoting03.vdi --size 1024 --format VDI --variant FixedVBoxManage createhd --filename data01.vdi --size 8192 --format VDI --variant FixedVBoxManage createhd --filename data02.vdi --size 8192 --format VDI --variant FixedVBoxManage createhd --filename fra01.vdi --size 8192 --format VDI --variant FixedVBoxManage createhd --filename fra02.vdi --size 8192 --format VDI --variant Fixed

将虚拟设备加入到我们之前创建的虚拟机中

E:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 1 --device 0 --type hdd --medium ocrvoting01.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 2 --device 0 --type hdd --medium ocrvoting02.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 3 --device 0 --type hdd --medium ocrvoting03.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 4 --device 0 --type hdd --medium data01.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 5 --device 0 --type hdd --medium data02.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 6 --device 0 --type hdd --medium fra01.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S3 --storagectl "SATA" --port 7 --device 0 --type hdd --medium fra02.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 1 --device 0 --type hdd --medium ocrvoting01.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 2 --device 0 --type hdd --medium ocrvoting02.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 3 --device 0 --type hdd --medium ocrvoting03.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 4 --device 0 --type hdd --medium data01.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 5 --device 0 --type hdd --medium data02.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 6 --device 0 --type hdd --medium fra01.vdi --mtype shareableE:\rac\sharedisk2>VBoxManage storageattach ora11gRAC_S4 --storagectl "SATA" --port 7 --device 0 --type hdd --medium fra02.vdi --mtype shareable

配置虚拟介质共享

E:\rac\sharedisk2>VBoxManage modifyhd ocrvoting01.vdi --type shareableE:\rac\sharedisk2>VBoxManage modifyhd ocrvoting02.vdi --type shareableE:\rac\sharedisk2>VBoxManage modifyhd ocrvoting03.vdi --type shareableE:\rac\sharedisk2>VBoxManage modifyhd data01.vdi --type shareableE:\rac\sharedisk2>VBoxManage modifyhd data02.vdi --type shareableE:\rac\sharedisk2>VBoxManage modifyhd fra01.vdi --type shareableE:\rac\sharedisk2>VBoxManage modifyhd fra02.vdi --type shareable

给虚拟机添加两个网卡,RAC必须有两个网卡的机器上搭建
注意这里的网卡配置只需要配置公共ip地址和私用IP地址,公共ip地址是用来给外部设备连接的,私有ip地址是数据库内部使用只要两台机器能够互相ping通。

如下图
1

二、节点系统配置

安装系统、配置网卡IP地址、配置hosts文件,主机名建议使用小写(第一次搭建使用大写安装时候报错),关闭防火墙

所有节点IP地址
第一个网卡:公共地址
第二个网卡:私有地址

禁用防火墙

[root@rac3 ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.[root@rac3 ~]# systemctl stop firewalld

关闭selinux

[root@rac3 ~]# cat /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disable# SELINUXTYPE= can take one of three two values:#     targeted - Targeted processes are protected,#     minimum - Modification of targeted policy. Only selected processes are protected.#     mls - Multi Level Security protection.SELINUXTYPE=targeted

配置所有节点的 /etc/hosts

192.168.31.205    rac3 rac3-public192.168.2.100    rac3-priv192.168.31.206    rac3-vip192.168.31.207    rac4 rac4-public192.168.2.200    rac4-priv192.168.31.208    rac4-vip192.168.31.253    rac-scan

创建用户和用户组,设置用户密码

groupadd -g 1000 oinstallgroupadd -g 1200 asmadmingroupadd -g 1201 asmdbagroupadd -g 1202 asmopergroupadd -g 1300 dbagroupadd -g 1301 operuseradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid -s /bin/bash griduseradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash oraclegpasswd -a grid dba

配置UDEV

这里使用的是centos7的环境,命令如下:

[root@rac3 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb1ATA_VBOX_HARDDISK_VB55441993-6194626c

创建脚本:

[root@rac3 ~]# cat > asm.shfor i in b c d e f g h;doecho "KERNEL==\"sd*\", SUBSYSTEMS==\"scsi\", PROGRAM==\"/lib/udev/scsi_id -g -u  /dev/\$name\", RESULT==\"`/lib/udev/scsi_id -g -u /dev/sd$i`\", SYMLINK=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""done

运行脚本生成udev脚本,这里脚本和linux6中的区别使用SYMLINK参数,否则使用NAME参数会报错

[root@rac4 ~]# chmod +x asm.sh[root@rac3 ~]# ./asm.shKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB55441993-6194626c", SYMLINK="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc7b4be54-ca54136c", SYMLINK="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBb6357de3-19d0ad3a", SYMLINK="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc0e0bbaf-50e74b5b", SYMLINK="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBaad7ee12-9702015d", SYMLINK="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB3e2c146c-b8c42402", SYMLINK="asm-diskg", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB4195cc6e-d6f84e9a", SYMLINK="asm-diskh", OWNER="grid", GROUP="asmadmin", MODE="0660"

在所有节点配置UDEV RULES

[root@rac3 ~]# cat > /etc/udev/rules.d/99-oracle-asmdevices.rulesKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB55441993-6194626c", SYMLINK="asmKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc7b4be54-ca54136c", SYMLINK="asmKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBb6357de3-19d0ad3a", SYMLINK="asmKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBc0e0bbaf-50e74b5b", SYMLINK="asmKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBaad7ee12-9702015d", SYMLINK="asmKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB3e2c146c-b8c42402", SYMLINK="asmKERNEL=="sd*", SUBSYSTEMS=="scsi", PROGRAM=="/lib/udev/scsi_id -g -u  /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB4195cc6e-d6f84e9a", SYMLINK="asm

重启并查看是否成功

systemctl restart systemd-udevd.servicesystemctl status systemd-udevd.servicesystemctl restart systemd-udev-trigger.servicesystemctl status systemd-udev-trigger.service[root@rac1 ~]# ll /dev/sd*brw-rw----. 1 grid asmadmin 8,  16 Oct 12 23:19 /dev/sdbbrw-rw----. 1 grid asmadmin 8,  32 Oct 12 23:19 /dev/sdcbrw-rw----. 1 grid asmadmin 8,  48 Oct 12 23:19 /dev/sddbrw-rw----. 1 grid asmadmin 8,  64 Oct 12 23:19 /dev/sdebrw-rw----. 1 grid asmadmin 8,  80 Oct 12 23:19 /dev/sdfbrw-rw----. 1 grid asmadmin 8,  96 Oct 12 23:19 /dev/sdgbrw-rw----. 1 grid asmadmin 8, 112 Oct 12 23:19 /dev/sdh[root@rac1 ~]# ll /dev/asm*lrwxrwxrwx. 1 root root 3 Oct 12 11:39 /dev/asm-diskb -> sdblrwxrwxrwx. 1 root root 3 Oct 12 11:33 /dev/asm-diskc -> sdclrwxrwxrwx. 1 root root 3 Oct 12 11:33 /dev/asm-diskd -> sddlrwxrwxrwx. 1 root root 3 Oct 12 23:19 /dev/asm-diske -> sdelrwxrwxrwx. 1 root root 3 Oct 12 23:19 /dev/asm-diskf -> sdflrwxrwxrwx. 1 root root 3 Oct 12 23:19 /dev/asm-diskg -> sdglrwxrwxrwx. 1 root root 3 Oct 12 22:15 /dev/asm-diskh -> sdh

配置事件同步,这里我们使用oracle的CTSS服务,所以需要关闭ntp,这里我们是最小安装所以没有ntpd服务。关闭ntpd服务请参照上面关闭防火墙,并且删除/var/run/ntpd.pid文件

所有节点上创建目录

[root@rac3 ~]# mkdir -p /u01/app/gridsoft/11.2.0[root@rac3 ~]# mkdir -p /u01/app/gridbase[root@rac3 ~]# chown -R grid:oinstall /u01[root@rac3 ~]#[root@rac3 ~]# mkdir -p /u01/app/oracle/11.2.0/db_1[root@rac3 ~]# chown -R oracle:oinstall /u01/app/oracle[root@rac3 ~]# chmod -R 775 /u01

配置grid用户环境变量请注意两个节点环境变量的区别(这里使用ORACLE_HOME是为了方便用grid用户管理asm,否则会报错)
节点一

[grid@rac4 ~]$ cat .bash_profileexport ORACLE_SID=+ASM1#export ORACLE_SID=+ASM2export ORACLE_BASE=/u01/app/gridbaseexport ORACLE_HOME=/u01/app/gridsoft/11.2.0export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.export TEMP=/tmpexport TMP=/tmpexport TMPDIR=/tmpumask 022

节点二

[grid@rac3 ~]$ cat .bash_profile#export ORACLE_SID=+ASM1export ORACLE_SID=+ASM2export ORACLE_BASE=/u01/app/gridbaseexport ORACLE_HOME=/u01/app/gridsoft/11.2.0export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.export TEMP=/tmpexport TMP=/tmpexport TMPDIR=/tmpumask 022

配置oracle用户环境变量
节点一

[oracle@rac4 ~]$ cat .bash_profile#ORACLE_SID=orcl3; export ORACLE_SIDORACLE_SID=orcl4; export ORACLE_SIDORACLE_UNQNAME=orcl; export ORACLE_UNQNAMEJAVA_HOME=/usr/local/java; export JAVA_HOMEORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/11.2.0/db_1; export ORACLE_HOMEORACLE_TERM=xterm; export ORACLE_TERMNLS_DATA_FORMAT="YYYY:MM:DD HH24:MI:SS"; export NLS_DATE_FORMATNLS_LANG=american_america.ZHS16GBK; export NLS_LANGTNS_ADMIN=$ORACLE_HOME/network/admin/; export TNS_ADMINORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/binPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexport PATHLD_LIBRARY_PATH=$ORACLE_HOME/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexport LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRECLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexport CLASSPATHTHREADS_FLAG=native; export TGREADS_FLAGexport TEMP=/tmpexport TMPDIR=/tmpumask 022

节点二

[oracle@rac4 ~]$ cat .bash_profile#ORACLE_SID=orcl3; export ORACLE_SIDORACLE_SID=orcl4; export ORACLE_SIDORACLE_UNQNAME=orcl; export ORACLE_UNQNAMEJAVA_HOME=/usr/local/java; export JAVA_HOMEORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/11.2.0/db_1; export ORACLE_HOMEORACLE_TERM=xterm; export ORACLE_TERMNLS_DATA_FORMAT="YYYY:MM:DD HH24:MI:SS"; export NLS_DATE_FORMATNLS_LANG=american_america.ZHS16GBK; export NLS_LANGTNS_ADMIN=$ORACLE_HOME/network/admin/; export TNS_ADMINORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/binPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexport PATHLD_LIBRARY_PATH=$ORACLE_HOME/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexport LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRECLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexport CLASSPATHTHREADS_FLAG=native; export TGREADS_FLAGexport TEMP=/tmpexport TMPDIR=/tmpumask 022

设置用户资源限制

cat >> /etc/security/limits.conf <<EOFgrid soft nproc 2047grid hard nproc 16384grid soft nofile 1024grid hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536EOF

shell限制

[root@rac4 ~]# cat >> /etc/profile <<EOF> if [  \$USER = "oracle" ] || [  \$USER = "grid" ]; then>         if [ \$SHELL = "/bin/ksh" ]; then>                   ulimit -p 16384>                   ulimit -n 65536>         else>                   ulimit -u 16384 -n 65536>         fi>         umask 022> fi>> EOF[root@rac4 ~]# cat >> /etc/csh.login <<EOF> if ( \$USER == "oracle" || \$USER == "grid" ) then>             limit maxproc 16384>             limit descriptors 65536> endif> EOF

修改内核

[root@rac4 ~]# cat >> /etc/sysctl.conf <<EOF> kernel.shmmax = 4294967295> kernel.shmall = 2097152> kernel.shmmni = 4096> kernel.sem = 250 32000 100 128> fs.file-max = 6815744> 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> fs.aio-max-nr=1048576> EOF

使参数修改生效

[root@rac4 ~]# sysctl -p

重启下系统

三、安装grid软件

上传软件安装包(11.2.0.4)前三个包

安装软件包

yum install binutils \compat-libcap1 \gcc \gcc-c++ \glibc*.i686 \glibc \glibc-devel*.i686 \glibc-devel \ksh \libaio*.i686 \libaio \libaio-devel-*.i686 \libaio-devel \libgcc*.i686 \libgcc \libstdc++*.i686 \libstdc++ \libstdc++-devel*.i686 \libstdc++-devel \libXi*.i686 \libXi \libXtst*.i686 \libXtst \make \sysstat \unixODBC \unixODBC*.i686 \unixODBC-devel \unixODBC-devel*.i686 \elfutils-libelf-devel \libcap-devel*.i686 \libcap-devel \libcap-ng-devel*.i686 \libcap-ng-devel \compat-libcap1*.i686 \compat-libcap1 \libcap*.i686 \libcap \libcap-ng*.i686 \libcap-ng \compat-libstdc++-33 \

还需要安装cvuqdisk,在grid/rpm/中

[root@rac3 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpmPreparing...                          ################################# [100%]ls: cannot access /usr/sbin/smartctl: No such file or directory/usr/sbin/smartctl not found.error: %pre(cvuqdisk-1.0.9-1.x86_64) scriptlet failed, exit status 1error: cvuqdisk-1.0.9-1.x86_64: install failedyum -y install smartmontools[root@rac3 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpmPreparing...                          ################################# [100%]Using default group oinstall to install packageUpdating / installing...   1:cvuqdisk-1.0.9-1                 ################################# [100%]

安装前用grid用户检查下,只是检查前必须要提前做ssh互信,在安装的时候会有有生成ssh互信的操作。

[grid@rac3 ~]$ cd /database/grid/[grid@rac3 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac3,rac4 -verbose

配置界面图形

yum -y install xhostyum -y install xdpyinfoyum -y install xorg-x11-xauthyum -y install xtermyum -y install net-tools

使用xstart软件用grid用户登陆安装grid软件(这里我们在第一个节点上安装,如果先第二个节点安装,会默认把节点一的数据生成在节点二)
2

[grid@rac3 grid]$ ./runInstaller

3
4
5
6
7
8
9
10
11
12

删除/usr/local/bin 目录 使用命令 ln -s /usr/bin/ /usr/local/创建链接,发现还是有这个报错,再次查看,发现rac4中的hosts地址配置错误
13
14
15
16
17
18
19
20
21

这里我只是修改了swapsize的大小,其它两个忽略。
22

用root用户先执行第一个节点,两个脚本执行成功之后再在第二个节点执行,否者会在节点二生成节点一的文件。
23
执行脚本

[root@rac3 local]# source /u01/app/oraInventory/orainstRoot.shChanging permissions of /u01/app/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world.Changing groupname of /u01/app/oraInventory to oinstall.The execution of the script is complete.[root@rac3 local]# source /u01/app/gridsoft/11.2.0/root.shrm: remove fifo ‘/u01/app/gridsoft/11.2.0/install/root_rac3_2017-10-13_11-37-36.log.pipe’?Performing root user operation for Oracle 11gThe following environment variables are set as:    ORACLE_OWNER= grid    ORACLE_HOME=  /u01/app/gridsoft/11.2.0Enter the full pathname of the local bin directory: [/usr/local/bin]:   Copying dbhome to /usr/local/bin ...   Copying oraenv to /usr/local/bin ...   Copying coraenv to /usr/local/bin ...Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Using configuration parameter file: /u01/app/gridsoft/11.2.0/crs/install/crsconfig_paramsCreating trace directoryUser ignored Prerequisites during installationInstalling Trace File AnalyzerOLR 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 certAdding Clusterware entries to inittabohasd failed to startFailed to start the Clusterware. Last 20 lines of the alert log follow:2017-10-13 11:39:36.658:[client(4539)]CRS-2101:The OLR was formatted using version 3.

出现这个问题时,是因为安装的系统是linux 7 上服务的管理方式改变了
需要重新开一个ssh窗口,手动创建ohasd服务,创建完成后脚本执行创建口会继续执行成功

Failed to start the Clusterware. Last 20 lines of the alert log follow:2017-10-13 11:39:36.658:[client(4539)]CRS-2101:The OLR was formatted using version 3.[root@rac3 ~]# touch /usr/lib/systemd/system/ohasd.service[root@rac3 ~]# chmod 777 /usr/lib/systemd/system/ohasd.service[root@rac3 ~]# cat > /usr/lib/systemd/system/ohasd.service[Unit]Description=Oracle High Availability ServicesAfter=syslog.target[Service]ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simpleRestart=always[Install]WantedBy=multi-user.target[root@rac3 ~]# systemctl daemon-reload[root@rac3 ~]# systemctl enable ohasd.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/ohasd.service to /usr/lib/systemd/system/ohasd.service.[root@rac3 ~]# systemctl start ohasd.service

四、安装ORACLE软件,使用oracle用户

24

[oracle@rac3 database]$ pwd/database/database[oracle@rac3 database]$ ./runInstaller

25
26
27
设置ssh
28
29
30
31
32
33
34

报错的解决方式请参考:http://blog.csdn.net/zhjmozhi/article/details/78028719
35
执行脚本

五、创建数据库

创建数据库之前我们需要创建另外的两个ASM磁盘组
grid用户执行 asmca
36

登陆oracle用户dbca创建数据库
37
38
39
40
41
42
43
44
45
46

六、配置监听,实现负载均衡和故障转移

每个节点的tnsname 都配置

[oracle@rac3 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File: /u01/app/oracle/11.2.0/db_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.NODE1_LOCAL=  (ADDRESS = (PROTOCOL = TCP)(HOST = rac3-vip)(PORT = 1521))NODE2_LOCAL=  (ADDRESS = (PROTOCOL = TCP)(HOST = rac4-vip)(PORT = 1521))ORCL =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = orcl)    )  )

分别在每个节点测试测试并进行设置

tnsping node1_localtnsping node2_localtnsping orcl[oracle@rac4 admin]$ sqlplus / as sysdba

节点一

SQL> alter system set LOCAL_LISTENER='NODE1_LOCAL' scope=both sid='orcl3';System altered.SQL> alter system set REMOTE_LISTENER='ORCL' scope=both sid='*';System altered.

节点二

SQL> alter system set LOCAL_LISTENER='NODE2_LOCAL' scope=both sid='orcl4';System altered.SQL> alter system set REMOTE_LISTENER='ORCL' scope=both sid='*';System altered.

在客户段的tnsname.ora中添加

RAC =  (DESCRIPTION =    (ADDRESS_LIST =    (LOAD_BALANCE = yes)    (FAILOVER=ON)      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.206)(PORT = 1521))      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.208)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = orcl)    (failover_mode=(type=select)(method=basic))    )  )

测试使用客户端连接到rac集群然后查看当前连接的实例
使用命令停止该实例,看是否会自动跳转到另一实例上

例如:srvctl stop instance -d orcl -i orcl3