文章目录

1 vmware安装oracle 11gr2 rac

  1.1 环境说明

    1.1.1 硬件环境

		 Window10+VMware Workstation 14 Pro
		 oracle linux6
		 oracle 11.2.0.1

    1.1.2 软件安装包:

		linux.x64_11gR2_database_1of2.zip
		linux.x64_11gR2_database_2of2.zip
		linux.x64_11gR2_grid.zip                        --rac中grid的安装包
		光盘安装镜像(将iso镜像挂载到虚拟机中,并且配置本地yum源)	

    1.1.3 文件相关目录

  • 虚拟机相关目录说明

      E:\vmware\oracle RAC\node1\Oracle Linux 6      rac中一节点的虚拟机目录(vmx)
      E:\vmware\oracle RAC\node2\Oracle Linux 6	rac中二节点的虚拟机目录(vmx)
      E:\vmware\oracle RAC\share_storage          共享磁盘的存储位置
    
  • 数据库安装目录:

目录名称所属用户所属用户组文件描述节点
/u01/app/11.2.0/gridgridoinstallGRID_HOMErac1,rac2
/u01/app/gridgridoinstallGRID_BASErac1,rac2
/u01/app/oracleoracleoinstallORACLE_BASErac1,rac2

    1.1.4 网络相关配置

IPGATEWAYDevicetypenodes
192.168.146.101192.168.146.2Eth0natNode1
192.168.233.101192.168.233.1Eth1natNode2
192.168.146.102192.168.146.2Eth0natNode1
192.168.233.102192.168.233.1Eth1natNode2
IP Address TypeNode NameIP Address
Public ip addressRAC1192.168.146.101
RAC2192.168.146.102
Private IP addressRAC1192.168.233.101
RAC2192.168.233.102
Virtual IP addressRAC1192.168.146.201
RAC2192.168.146.202
SCAN IP addressRAC1192.168.248.110
RAC2192.168.248.110

    1.1.5 共享存储(共享磁盘配置)

        Oracle RAC中的文件地址可以分为三种,第一种是OCR/VOTING,存储的是集群的一些信息和oracle节点故障时,节点的选举情况。第二种就是数据文件(DATA),数据文件包含的有,数据文件,在线重做日志文件(REDO),控制文件(CTL)等。第三种(FRA)指得就是恢复文件。
磁盘路径Asm磁盘组大小
E:\vmware\oracle RAC\share_storage\share_storage\ocrvote1.vmdkOCR1G
E:\vmware\oracle RAC\share_storage\share_storage\ocrvote2.vmdkOCR1G
E:\vmware\oracle RAC\share_storage\share_storage\ocrvote3.vmdkOCR1G
E:\vmware\oracle RAC\share_storage\share_storage\data.vmdkDATA10G
E:\vmware\oracle RAC\share_storage\share_storage\recover.vmdkOCR5G

  1.2 安装前的配置、安装数据库软件

        node1和node2都需要按照环境要求配置。

    1.2.1 虚拟机相关配置

       1.2.1.1 虚拟机网卡配置

        案例中,我们需要配置两块网卡,一块是host only上网方式的网卡,一块是nat方式上网的网卡(访问外网)。

  • 虚拟机菜单 > 编辑 > 虚拟网络编辑器

  配置网络连接的类型,如果网卡已经存在,需要修改如下配置:

  • Host only配置(仅主机模式配置)

    • VMnat信息 > 仅主机模式

      VMnat信息 > 将主机适配器连接到此网络(vmnat1)(勾选)

    • 子网ip设置为:192.168.146.0

    • Window下 > 网络连接 > VMware Virtual Ethernet Adapter for VMnet1 >

         设置ip地址为:192.168.146.1
         
         子网掩码:255.255.255.0
      
  • nat配置

    • VMnat信息 > 将主机适配器连接到此网络(vmnat8)(勾选)

    • 子网ip设置为:192.168.248.0

    • VMnat信息 > NAT模式 > NAT设置

         网关ip: 192.168.248.2
      
    • Window下 > 网络连接 > VMware Virtual Ethernet Adapter for VMnet8>

         设置ip地址为:192.168.248.1
      
         子网掩码:255.255.255.0
      
  • 虚拟机 > 编辑虚拟机配置 > 添加 > 网络适配器 > 自定义vmnet1(添加host only网卡)

  • 网络适配器(VMnet1) > 高级 > 生成mac地址:

这一步的作用主要是固定网卡和上网方式。假如生成的MAC地址为:
00:0C:29:CE:93:92

  • 虚拟机 > 编辑虚拟机配置 > 添加 > 网络适配器 > 自定义vmnet8(添加nat网卡)

  • 网络适配器(VMnet8) > 高级 > 生成mac地址:

这一步的作用主要是固定网卡和上网方式。假如生成的MAC地址为:
00:0C:29:CE:93:9C

  • 启动虚拟机 ,设置相关网卡如下:

  • 修改grub文件

    	cp /etc/grud.conf /etc/grub.cnf.bak
    	
    	修改/etc/grud.conf,添加biosdevname=0
    
  • 重命名网卡名称,

  • 删除/etc/udev/rules.d/70-persistent-net.rules文件

  • 重启服务器(reboot)

  • 网卡的配置文件如下

     /etc/sysconfig/network-scripts/ifcfg-eth0
     
     DEVICE=eth0
     TYPE=Ethernet
     UUID=537190ac-bffb-4e5c-8cef-a48260e16f63
     ONBOOT=yes
     NM_CONTROLLED=no
     BOOTPROTO=none
     
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
     HWADDR=00:0C:29:CE:93:9C
     IPADDR=192.168.109.101
     NETMASK=255.255.255.0
     GATEWAY=192.168.109.1
    
     /etc/sysconfig/network-scripts/ifcfg-eth1
     
     DEVICE=eth1
     TYPE=Ethernet
     UUID=537190ac-bffb-4e5c-8cef-a48260e16f63
     ONBOOT=yes
     NM_CONTROLLED=no
     BOOTPROTO=none
     DNS1=114.114.114.114
     
     USERCTL=no
     PEERDNS=yes
     IPV6INIT=no
     HWADDR=00:0C:29:CE:93:92
     IPADDR=192.168.248.101
     NETMASK=255.255.255.0
     GATEWAY=192.168.248.2
    
        1.2.1.2 vmware挂载u盘,安装相关的包

       vmware tool安装需要依赖gcc相关的库,

		[root@localhost ~]# yum  install gcc -y

       安装ntfs-3g,挂载u盘是,用到
		wget https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz -P  /upload
		
		cd /upload
		
		tar -xvf  ntfs-3g_ntfsprogs-2017.3.23.tgz
		
		cd ntfs-3g_ntfsprogs-2017.3.23
		
		./configure
		
		make && make install

* 运行 > services.msc > 确保VMUSBArbService运行
* 插入u盘,打开虚拟机,在虚拟机的右下角位置,点击USB Device,链接
* 挂载u盘,到虚拟机中
  • fdisk 命令确定U盘的位置:

  • 挂载u盘到/mnt/iso目录下
    mkdir /mnt/iso

     mount -t "ntfs-3g" /dev/sdb1 /mnt/iso/
    
     挂载oracle linux6 iso文件:
     
     说明:如果网速过快没必要做这一步,如果无法联网,将iso中作为本地的yum源,
     安装基本的包和软件
     
     mkdir /mnt/cdrom
     
     mount -o loop /mnt/iso/oracle_rac/V978757-01.iso   /mnt/cdrom/
    
  • 配置本地yum源

       mv /etc/yum.repos.d/public-yum-ol6.repo /etc/yum.repos.d/public-yum-ol6.repo.bak
       
       vi /etc/yum.repos.d/local.repo
       
       [local]
       name=local
       baseurl=file:///mnt/cdrom
       gpgcheck=0
       enabled=1
       
       yum clean all
       
       yum make cache
    
       1.2.1.3 Oracle linux6相关软件安装
          如果上述步骤配置了iso作为本地的yum源,不借助外网就可以实现软件包的安装。
  • 安装ftp服务器

      yum -y install vsftpd 
    
  • 安装lrzsz.x86_64(一种建议的传输文件的工具)

     yum install -y lrzsz.x86_64
    
  • 安装图形界面

      yum groupinstall –y  "X Window System" Desktop 
      
      yum groupinstall –y  "X Window System" "KDE Desktop"
      
      yum install -y nautilus-open-terminal 
      
      init 5  #完成初始化配置和验证桌面是否安装成功
    
  • telnet安装

     yum install vsftpd
    
       1.2.1.4 Oracle linux6环境检查
  • 关闭selinux

      修改/etc/selinux/config,SELINUX=disabled
    
  • 禁用防火墙(rac安装时,如果防火墙开启状态,可能导致 对立节点,安装失败)
    service iptables stop
    chkconfig iptables off

  • 禁用NetworkManager

      service NetworkManager stop
      
      chkconfig NetworkManager off
    
  • 重启服务器reboot

       1.2.1.5 vmware安装vmware tool,实现宿主机和虚拟机共享文件
          vmware中文件夹共享的前提是要安装vmware tools,安装vmware tools以后,虚拟机会为共享文件夹设置一个挂载点。下列步骤是为了能够安装vmware tools。
  • 选中虚拟机 > 设置 > 硬件 > CD/DVD > 使用物理驱动器 > 自动检测

  • 选中虚拟机 > 设置 > 选项 > 共享文件夹 > 总是启用

    • 添加文件夹(存放安装数据库的相关软件包):
      名称: oracle_packages 主机路径: D:\software\oracle
  • 开启虚拟机:

  • 菜单 > 虚拟机 > 安装vmware tool

  • Vmware tool安装方式

  • 安装vmware tools链接

  • 查看共享文件夹

      df –hT   #查看共享文件挂载的目录
      
      通常挂载的目录为:  /mnt/hgfs
      
      
      tree -L 2 /mnt/hgfs/
      
      /mnt/hgfs/
      └── oracle_rac
          ├── linux.x64_11gR2_database_1of2.zip
          ├── linux.x64_11gR2_database_2of2.zip
          ├── linux.x64_11gR2_grid.zip
    
       1.2.1.6 虚拟机创建共享磁盘
  • 创建磁盘
      创建磁盘的方式有两种, 第一种,在虚拟机中添加硬盘的方式,第二个虚拟机中引用已经存在的磁盘 vmware-vdiskmanager是vmware下自带的一种常见磁盘的工具。下列列举出常见的选项,

第二种是使用命令,直接创建出磁盘,两个虚拟机添加已有磁盘。
案列中使用的是第二种方式。

下列列举的是使用命令创建磁盘的案列

-c :代表的是创建磁盘

-a:创建的磁盘类型,lsilogic代表的是SCSI类型

-t:预分配磁盘空间,并且拆分成单个文件

-s:指定磁盘的容量

	#配置临时环境变量,为了方便的使用vmware-vdiskmanager命令
	SET VMWARE_HOME=D:\Program Files (x86)\VMware\VMware Workstation
	set PATH=%VMWARE_HOME%;%PATH%
	
	cd E:\vmware\oracle RAC\share_storage
	e:
	
	vmware-vdiskmanager -c -a lsilogic -t 2 -s 1GB  ocrvote1.vmdk
	vmware-vdiskmanager -c -a lsilogic -t 2 -s 1GB  ocrvote2.vmdk
	vmware-vdiskmanager -c -a lsilogic -t 2 -s 1GB  ocrvote3.vmdk
	vmware-vdiskmanager -c -a lsilogic -t 2 -s 10GB  data.vmdk
	vmware-vdiskmanager -c -a lsilogic -t 2 -s 5GB  recovery.vmdk
	</font>
  • RAC1,RAC2引用共享磁盘
    • 编辑虚拟机设置 > 添加 > 硬盘 > SCSI > 使用现有虚拟磁盘 > E:\vmware\oracle RAC\share_storage\(依次选择创建的几块硬盘)

假设创建的几块硬盘名称为 硬盘1、硬盘2、硬盘3、硬盘4、硬盘5,设置硬盘的属性:

	硬盘1 > 高级 > 虚拟设备节点 > SCSI 1:0 > 独立 > 永久
	
	硬盘2 > 高级 > 虚拟设备节点 > SCSI 1:1 > 独立 > 永久
	
	
	硬盘3 > 高级 > 虚拟设备节点 > SCSI 1:2 > 独立 > 永久
	
	
	硬盘4 > 高级 > 虚拟设备节点 > SCSI 1:3 > 独立 > 永久
	
	
	硬盘15> 高级 > 虚拟设备节点 > SCSI 1:4 > 独立 > 永久
  • Rac1、rac2修改vmx文件,添加如下配置,应用磁盘

      disk.locking = "false"
      diskLib.dataCacheMaxSize = "0"
      scsi1.sharedBus = "virtual"
    

    1.2.2 Oracle安装前的准备

      Oracle依赖包的安装,有手动和自动的方式,手动安装,需要手动的安装依赖包和配置内核参数等等。本教程中,使用自动的方式安装,oracle11g中提供了oracle-rdbms-server-11gR2-preinstall包。自动的方式安装有以下好处
  • 自动安装依赖包

  • 自动配置内核参数

  • 自动配置操作系统参数

  • 自动创建用户和组

         1.2.2.1 oracle环境的配置
  • 配置使用的yum源,需要根据操作系统的版本和内核的版本选择yum源。
    如果数据库安装的环境是oracle linux系列,则yum源不需要配置 系统自带的就有
    /etc/yum.repos.d/public-yum-ol6.repo

      yum clean all
      yum makecache						
    
  • 安装oracle-rdbms-server-11gR2-preinstall

      yum install -y oracle-rdbms-server-11gR2-preinstall
    
  • 验证安装包是否安装完成

      rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers pdksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel 
      
      
      yum install -y elfutils-libelf-devel
      yum install -y  unixODBC
      yum install -y  unixODBC-devel
    
  • 补充RAC,新增的用户和用户组

      /usr/sbin/groupadd -g 1020 asmadmin
      /usr/sbin/groupadd -g 1021 asmdba
      /usr/sbin/groupadd -g 1022 asmoper
      /usr/sbin/groupadd -g 1032 oper
      useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
      usermod -u 1101 -g oinstall -G dba,asmdba,oper oracle
    
  • 设置oracle和grid的密码

    passwd  oracle
    passwd  grid
    
  • 创建安装数据库所需的目录,并授权

    mkdir -p /u01/app/11.2.0/grid
    mkdir -p /u01/app/grid
    mkdir /u01/app/oracle
    chown -R grid:oinstall /u01
    chown oracle:oinstall /u01/app/oracle
    chmod -R 775 /u01/
    
  • grid用户相关的配置

      vi /etc/security/limits.conf
      
      grid soft nproc 2047 
      grid hard nproc 16384 
      grid soft nofile 1024 
      grid hard nofile 65536
    
         1.2.2.2 交换空间的扩展

              在操作系统内存不足时,交换空间(swap)会充当内存的角色。如果swap空间被大量使用,则说明操作系统的内存不足。oracle最交换空间的限制,取决于操作系统物理内存的大小。下面是oracle建议的内存和交换内存的对等关系。

              本次安装过程中,物理内存为2G,交换空间建议设置的值为,2.6G。后面检测的时候,建议的值。下面是扩展交换空间(使用文件来创建交换空间)的步骤

		dd if=/dev/zero of=/swapfile bs=1M count=2662
		
		mkswap /swapfile
		swapon /swapfile
		
		vi /etc/fstab
		添加
		/swapfile swap swap defaults 0 0
		
		注释掉以前的swap空间
		
		#查看swap文件的情况
		
		swapon  -s
		
		#停用以前的swap文件
		swapoff /dev/mapper/VolGroup-lv_swap
         1.2.2.3 相关环境变量的配置
  • 配置grid用户的环境变量(注意RAC1和RAC2配置)

      vi /home/grid/.bash_profile
      
      export ORACLE_SID=+ASM1  # RAC1配置这个
      export ORACLE_SID=+ASM2  # RAC2配置这个
      export GRID_BASE=/u01/app/grid
      export GRID_HOME=/u01/app/11.2.0/grid
      export ORACLE_HOME=/u01/app/11.2.0/grid
      export PATH=/usr/sbin:$PATH
      export PATH=$GRID_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$GRID_HOME/lib:/lib:/usr/lib
      export CLASSPATH=$GRID_HOME/JRE:$GRID_HOME/jlib:$GRID_HOME/rdbms/jlib
      umask 022
      
      
      source /home/grid/.bash_profile
    
  • 配置oracle用户的环境变量(注意RAC1和RAC2的配置)

      vi /home/oracle/.bash_profile
      
      export ORACLE_SID=orcl1  # RAC1配置这个
      export ORACLE_SID=orcl2  # RAC2配置这个
      export ORACLE_UNQNAME=orcl
      export ORACLE_BASE=/u01/app/oracle
      export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
      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
      
      source /home/grid/.bash_profile
    
         1.2.2.4 配置host相关文件
  • 配置hostname
    vi /etc/sysconfig/network

      HOSTNAME=rac1   #(rac1配置这个)
      HOSTNAME=rac2   #(rac2配置这个)
    
  • 配置hosts(rac1,rac2)

      vi /etc/hosts
      
      192.168.146.101 rac1 
      192.168.146.201 rac1-vip 
      192.168.233.101 rac1-priv
      
      192.168.146.102 rac2 
      192.168.146.202 rac2-vip 
      192.168.233.102 rac2-priv
      
      192.168.146.110 scan-ip
    
         1.2.2.5 配置oracle asm disks
  • 硬盘分区

      fdisk /dev/sdb
      
      fdisk /dev/sdc
      
      fdisk /dev/sdd
      
      fdisk /dev/sde
      
      fdisk /dev/sdf
    
  • 获取每个磁盘的sisi id

      [root@localhost ~]# /sbin/scsi_id -g -u -d /dev/sdb
      36000c2981ee1645b48c44666136bf242
    
  • 创建99-oracle-asmdevices.rules文件

      touch /etc/udev/rules.d/99-oracle-asmdevices.rules
    
  • 获取脚本的输出内容,拷贝至:/etc/udev/rules.d/99-oracle-asmdevices.rules

    mydevs="sdb sdc sdd sde sdf" ; export count=0 ; for mydev in $mydevs; do ((count+=1)) ; /sbin/scsi_id -g -u -d  /dev/$mydev | awk '{print "KERNEL==\"sd?1\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u -d /dev/$parent\", RESULT==\""$1"\", NAME=\"asm-disk"ENVIRON["count"]"\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""}' ; done
    
  • 测试

      udevadm test /block/sdb/sdb1
      udevadm test /block/sdc/sdc1
      udevadm test /block/sdd/sdd1
      udevadm test /block/sde/sde1
      udevadm test /block/sdf/sdf1
    
  • 重启和加载UDEV服务

      /sbin/start_udev
    
  • 查看磁盘所属的权限和是否创建成功

    [root@localhost ~]# ll /dev/asm*
    brw-rw---- 1 grid asmadmin 8, 17 Jan 19 15:22 /dev/asm-disk1
    brw-rw---- 1 grid asmadmin 8, 33 Jan 19 15:22 /dev/asm-disk2
    brw-rw---- 1 grid asmadmin 8, 49 Jan 19 15:22 /dev/asm-disk3
    brw-rw---- 1 grid asmadmin 8, 65 Jan 19 15:22 /dev/asm-disk4
    brw-rw---- 1 grid asmadmin 8, 81 Jan 19 15:22 /dev/asm-disk5
    
         1.2.2.6 配置ssh通信

             由于RAC的安装,只需要在一个几点下,安装,其他节点会在安装的过程中,复制。所以需要为grid用户和oracle用户分别配置ssh通信。

  • 配置grid用户无密码通信

    • rac1和rac2节点下分别执行

      su - grid
      mkdir ~/.ssh
      chmod 700 ~/.ssh
      /usr/bin/ssh-keygen -t rsa # Accept the default settings.
      
    • rac1节点下执行

      su - grid
      cd ~/.ssh
      cat id_rsa.pub >> authorized_keys
      scp authorized_keys rac2:/home/grid/.ssh/
      
    • rac2节点下执行

      su - grid
      cd ~/.ssh
      cat id_rsa.pub >> authorized_keys
      scp authorized_keys rac1:/home/grid/.ssh/
      
    • 验证是否配置成功
      

            检查是否配置成功的标准是,使用ssh命令获取对方主机信息时,u不需要输入密码。

        Rac1节点下执行:

	[grid@rac1 ~]$ ssh rac1 date
	The authenticity of host 'rac1 (192.168.146.101)' can't be established.
	RSA key fingerprint is fc:78:65:2e:0e:8c:4f:ab:2d:3e:eb:12:0f:a3:02:04.
	Are you sure you want to continue connecting (yes/no)? yes
	Warning: Permanently added 'rac1,192.168.146.101' (RSA) to the list of known hosts.
	Sat Jan 26 04:48:28 EST 2019
	[grid@rac1 ~]$ ssh rac1 date
	Sat Jan 26 04:48:34 EST 2019
	[grid@rac1 ~]$ ssh rac2 date
	Sat Jan 26 04:48:45 EST 2019
	[grid@rac1 ~]$

        Rac2节点下执行:

	[grid@rac2 .ssh]$ ssh rac1 date
	Sat Jan 26 04:49:18 EST 2019
	[grid@rac2 .ssh]$ ssh rac2 date
	The authenticity of host 'rac2 (192.168.146.102)' can't be established.
	RSA key fingerprint is fc:78:65:2e:0e:8c:4f:ab:2d:3e:eb:12:0f:a3:02:04.
	Are you sure you want to continue connecting (yes/no)? yes
	Warning: Permanently added 'rac2,192.168.146.102' (RSA) to the list of known hosts.
	Sat Jan 26 04:49:24 EST 2019
  •   配置oracle用户
    
    • rac1和rac2节点下分别执行

      su - oracle
      mkdir ~/.ssh
      chmod 700 ~/.ssh
      /usr/bin/ssh-keygen -t rsa # Accept the default settings.
      
    • rac1节点下执行

      su - oracle
      cd ~/.ssh
      cat id_rsa.pub >> authorized_keys
      scp authorized_keys rac2:/home/oracle/.ssh/
      
    • rac2节点下执行

      su - oracle
      cd ~/.ssh
      cat id_rsa.pub >> authorized_keys
      scp authorized_keys rac1:/home/oracle/.ssh/
      
         1.2.2.7 集群时间服务(ntp、ctss)

            在oracle 10g中往往需要单间ntp服务器,来同步rac集群中的时间。在11g中,引入了CTSS(Cluster Time Synchronization Services)来同步时间。CTSS只同步集群服务企之间的时间。并不同步其他系统之间的时间。CTSS 服务是在grid软件安装过程中,自动安装。
如果系统中已经安装了NTP 或者存在NTP的配置文件,则CTSS处于观察者模式,不生效。下面演示禁用 NTP服务器,在下文的安装过程中会自动安装CTSS服务。

  • 停用ntp服务

      [root@rac1 ~]# service ntpd stop
      Shutting down ntpd:                                        [  OK  ]
    
  • 禁止NTP 服务开机自启动

    [root@rac1 ~]# chkconfig  ntpd off
    
  • 删除NTP 服务的配置文件

      [root@rac1 ~]# mv  /etc/ntp.conf   /etc/ntp.conf.bak
    
         1.2.2.8 运行CVU检查grid安装环境
	[root@rac1 ~]# unzip /mnt/hgfs/oracle/linux.x64_11gR2_grid.zip   -d  /upload/
	[root@rac1 ~]# chown -R   grid:oinstall /upload/grid/
	[root@rac1 ~]# chmod  -R 755   /upload/grid/
	[root@rac1 grid]# rm -rf /tmp/bootstrap/
	
	[root@rac1 grid]# su - grid
	[grid@rac1 ~]$ cd /upload/grid/ 
	[grid@rac1 grid]# ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup –verbose > checkout.log
	
	注意监察其中的错误信息,一些依赖检查失败(本文中跳过去)

    1.2.3 grid软件的安装

         1.2.3.1 grid安装

            grid安装,我们使用xshell+xmanager来远程调用图形桌面。Xshell需要设置。

            直接使用grid用户登录。不要使用su - grid的方式切换用户。

  • 运行安装命令

     [grid@rac1 grid]$ pwd
     /upload/grid
     [grid@rac1 grid]$ ./runInstaller
    
  • Installation Option > 选择安装集群软件

  • Installation Type > 选择自定义安装

  • Product Languages > 选择英语

  • Grid Plug and Play Information > scan name选择hosts中定义的scan-ip > 取消GNS

  • Cluster Node Informatio > 添加rac2节点信息

        如果ssh配置节点通信有问题,则点击下一步时,会提示错误,请检查 grid用户,在集群间的通信配置是否有误!

  • Network Interface Usage
        Scan-ip必须和public的处于同一网段

  • Storage Option >选择oracle asm

  • Create ASM Disk Group

    这里,我们只配置OCR和voting disk的共享磁盘,数据文件和备份的共享磁盘,放到创建数据库时,再配置

  • ASM Password > 使用相同的密码

  • Failure Isolation Support > 不选择智能管理

  • Privileged Operating System Groups > 默认即可

  • Installation Location > 根据实际位置填写

  • Create Inventory

  • Prerequisite Checks > 环境监测

            注:其中ntp监测失败,可以直接忽略掉,因为oracle11g ,集群同步,我们选择ctts。

其他的依赖失败,请自行检查参数或者依赖包解决,这里我们选择直接跳过这些错误。

  • 概要窗口查看信息,配置没问题之后,就开始安装。

  • Execute Configuration scripts 执行脚本

      在rac1和rac2节点以root用户分别执行以下脚本。Rac1节点执行后,再在rac2节点下执行。

  • 执行/u01/app/oraInventory/orainstRoot.sh

      [root@rac1 yum.repos.d]# sh /u01/app/oraInventory/orainstRoot.sh
      Changing 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.sh

      执行root.sh时,会出现
CRS-4124: Oracle High Availability Services startup failed.

	CRS-4000: Command Start failed, or completed with errors.
	
	ohasd failed to start: Inappropriate ioctl for device
	
	ohasd failed to start at/u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443.

      解决方式如下:

  • 在出现/var/tmp/.oracle/npohasd时,立即执行:如下命令:

      /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
    

在出现如下时,脚本执行成功:

需要注意failed的字样。在节点二重复执行脚本的操作。

	系统重启以后,grid软件会启动失败,将/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1加入开机自启动。在两个几点下,分别修改/etc/rc.local,添加:

	/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
  • 脚本之后完成以后,返回窗口 > 点击ok

  • Oracle Cluster Verification Utility 失败

根据提示的错误日志,检查失败的内容:

        可以看出是ntp监测失败,这个错误,前面我们已经讨论过了,跳过。

  • 点击next 完成grid的安装。
         1.2.3.2 安装完成以后,检查
  • 检查集群资源

      [grid@rac1 grid]$ crs_stat -t -v
      Name           Type           R/RA   F/FT   Target    State     Host        
      ----------------------------------------------------------------------
      ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    rac1        
      ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac1        
      ora.OCR.dg     ora....up.type 0/5    0/     ONLINE    ONLINE    rac1        
      ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    rac1        
      ora.eons       ora.eons.type  0/3    0/     ONLINE    ONLINE    rac1        
      ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               
      ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    rac1        
      ora.oc4j       ora.oc4j.type  0/5    0/0    OFFLINE   OFFLINE               
      ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    rac1        
      ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1        
      ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1        
      ora.rac1.gsd   application    0/5    0/0    OFFLINE   OFFLINE               
      ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1        
      ora.rac1.vip   ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac1        
      ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2        
      ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2        
      ora.rac2.gsd   application    0/5    0/0    OFFLINE   OFFLINE               
      ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2        
      ora.rac2.vip   ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac2        
      ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac1
    
  • 检查集群节点信息

      [grid@rac1 ~]$ olsnodes  -n
      rac1	1
      rac2	2
    
  • 检查SCAN LISTENER 的状态

      [grid@rac1 ~]$  srvctl  status  scan_listener
      SCAN Listener LISTENER_SCAN1 is enabled
      SCAN listener LISTENER_SCAN1 is running on node rac1
    
  • 查看oracle asm信息

      [grid@rac1 ~]$ srvctl status asm -a
      ASM is running on rac1
      ASM is enabled.
    
  • 检查CTSS的状态(集群时间同步服务,)

     [grid@rac1 grid]$  crsctl check ctss
     CRS-4700: The Cluster Time Synchronization Service is in Observer mode.
    
  • 集群同步器处于观察者模式,待激活状态,可能是由于系统中ntp处于启动状态或者存在配置文件,按步骤,停止ntpd,和删除ntp配置文件(rac1、rac2)。

     [root@rac1 yum.repos.d]# service ntpd stop
     Shutting down ntpd:                                        [FAILED]
     [root@rac1 yum.repos.d]# chkconfig  ntpd off
     [root@rac1 yum.repos.d]# mv /etc/ntp.conf  /etc/ntp.conf.bak
    
     执行完成以后,再次检查 
    
     [grid@rac1 grid]$ crsctl check ctss
     CRS-4701: The Cluster Time Synchronization Service is in Active mode.
     CRS-4702: Offset (in msec): 0
    

    1.2.4 oracle实例的安装

         1.2.4.1 oracle软件的安装

            xshell直接以oracle用户登录。

  • 解压缩orcle的安装包,授权

      [root@rac1 ~]# unzip /mnt/hgfs/oracle/linux.x64_11gR2_database_1of2.zip   -d /upload
      [root@rac1 ~]# unzip /mnt/hgfs/oracle/linux.x64_11gR2_database_2of2.zip   -d /upload
      [root@rac1 ~]# chown  -R  oracle:oinstall /upload/database/
      [root@rac1 ~]# chmod  -R  755 /upload/database/
    
  • 执行安装命令

      [oracle@rac1 ~]$ cd /upload/database/
      [oracle@rac1 database]$ ./runInstaller
    
  • Configure Security Updates > 跳过更新

  • Installation Option > 选择只安装数据库软件

  • Grid Installation Options > 安装集群数据库

    注:这一步如果出现如下错误:
Cause - Either passwordless SSH connectivity is not setup between specified node(s) or they are not reachable. Refer to the logs for more details.,则ssh通信配置有问题,请检查

  • Product Languages > 英语

  • Database Edition > 企业版

  • Installation Location > 选择数据库的安装路径

  • Operating System Groups > 操作系统用户组

  • Prerequisite Checks > 安装环境检查

        根据提示的错误信息,检查配置,这里直接跳过

  • 概要窗口 > 完成

  • 以root用户执行脚本(rac1,rac2)

  • 执行完成以后,返回窗口、点击ok
         1.2.4.2 Oracle实例安装后的检查
  • 以sqlplus登录,验证实例是否安装成功

      [root@rac1 ~]# su - oracle
      [oracle@rac1 ~]$ sqlplus /  as sysdba
      
      SQL*Plus: Release 11.2.0.1.0 Production on Sat Jan 26 08:14:04 2019
      
      Copyright (c) 1982, 2009, Oracle.  All rights reserved.
      
      Connected to an idle instance.
      
      SQL>
    
  • 查看监听是否启动(没启动,以dbca建库,会报错)

      [oracle@rac1 ~]$ lsnrctl status
      
      LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 26-JAN-2019 08:14:33
      
      Copyright (c) 1991, 2009, Oracle.  All rights reserved.
      
      Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
      STATUS of the LISTENER
      ------------------------
      Alias                     LISTENER
      Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
      Start Date                26-JAN-2019 06:32:21
      Uptime                    0 days 1 hr. 42 min. 12 sec
      Trace Level               off
      Security                  ON: Local OS Authentication
      SNMP                      OFF
      Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
      Listener Log File         /u01/app/grid/diag/tnslsnr/rac1/listener/alert/log.xml
      Listening Endpoints Summary...
        (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
        (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.146.101)(PORT=1521)))
        (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.146.201)(PORT=1521)))
      Services Summary...
      Service "+ASM" has 1 instance(s).
        Instance "+ASM1", status READY, has 1 handler(s) for this service...
      The command completed successfully
    

    1.2.5 oracle数据库的创建(dbca)

         1.2.5.1 执行asmca创建磁盘组

                在其中一个节点执行asmca,创建DATA.FRA磁盘组。注意设置成mount-all

  • Disk Groups > Create > DATA

  • Disk Groups > Create > FRA

  • 查看磁盘组

         1.2.5.2 执行dbca创建数据库
  • 以oracle用户直接登录。执行dbca命令

  • Welcome > 创建集群数据库

  • Operations > 创建数据库

  • Database Template > 定制数据库

  • Database Identification > 指定数据库的信息

  • Management Options > 配置EM

  • Database Credentials > 所有用户使用同一个密码

  • Database File Locations > 指定数据文件所属的共享磁盘组

  • ASM Credentials 指定ASM的密码

  • Recovery Configuration > 指定恢复文件的共享磁盘组FRA

  • Database Content > 配置数据库的默认信息(默认即可)

  • Initialization Parameters > 配置数据库的初始化参数

  • Database Storage > next

  • Creation Options > 创建数据库

  • 查看数据库的配置信息 > 开始建库

  • 等待建库完成

    1.2.6 安装完成以后的配置

         1.2.6.1 配置远程客户端连接

               在oracle的某些版本中,可能出现如下错误,出现错误的原因是oracle的初始化参数local-listener中使用的虚拟的主机名作为监听注册地址,导致错误,解决方法就是,修改初始化参数的值,每个实例都需要修改

	C:\Users\kefan>sqlplus sys/oracle@192.168.146.110:1521/orcl as sysdba
	
	SQL*Plus: Release 12.2.0.1.0 Production on Sun Jan 27 11:35:07 2019
	
	Copyright (c) 1982, 2016, Oracle.  All rights reserved.
	
	ERROR:
	ORA-12545: Connect failed because target host or object does not exist

解决办法如下:

  • 查看spfile的存储位置,spfile默认存储在asm中,配置文件通过sid来区分不同的实例

      SQL> show parameter spfile;
      
      NAME				     TYPE	 VALUE
      ------------------------------------ ----------- ------------------------------
      spfile				     string	 +DATA/orcl/spfileorcl.ora
    

可以看出spfile确实是存储在asm中,所有的实例 公用同一个配置文件

  • 修改spfile的local_listener值

  • 修改RAC1的初始化参数值
    alter system set local_listener=’(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.146.201)(PORT=1521))))’ sid=‘orcl1’ scope=both;

  • 修改RAC2的初始化参数值
    alter system set local_listener=’(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.146.201)(PORT=1521))))’ sid=‘orcl2’ scope=both;

  • 再次测试
    C:\Users\kefan>sqlplus sys/oracle@192.168.146.110:1521/orcl as sysdba

       SQL*Plus: Release 12.2.0.1.0 Production on Sun Jan 27 11:48:39 2019
       
       Copyright (c) 1982, 2016, 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
    

  1.3 遇到的问题

    1.3.1 TNS-01101

  • 问题描述

      查看scan监听的时候,出现如下错误:
      
      [grid@rac1 ~]$ lsnrctl service LISTENER_SCAN1
      
      LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-JAN-2019 06:16:57
      
      Copyright (c) 1991, 2009, Oracle.  All rights reserved.
      
      TNS-01101: Message 1101 not found; No message file for product=network, facility=TNS	   [LISTENER_SCAN1]
    
  • 出现原因ORACLE_HOME没配置或者配置错误,解决方式如下:添加环境变量

      [grid@rac1 ~]$ echo export ORACLE_HOME=/u01/app/11.2.0/grid >>  /home/grid/.bash_profile 
      [grid@rac1 ~]$ source /home/grid/.bash_profile
      [grid@rac1 ~]$ lsnrctl service LISTENER_SCAN1
      
      LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-JAN-2019 06:21:11
      
      Copyright (c) 1991, 2009, Oracle.  All rights reserved.
      
      Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
      Services Summary...
      Service "orcl" has 2 instance(s).
        Instance "orcl1", status READY, has 1 handler(s) for this service...
          Handler(s):
            "DEDICATED" established:0 refused:0 state:ready
               REMOTE SERVER
               (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521)))
        Instance "orcl2", status READY, has 1 handler(s) for this service...
          Handler(s):
            "DEDICATED" established:1 refused:0 state:ready
               REMOTE SERVER
               (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))
      Service "orclXDB" has 2 instance(s).
        Instance "orcl1", status READY, has 1 handler(s) for this service...
          Handler(s):
            "D000" established:0 refused:0 current:0 max:1022 state:ready
               DISPATCHER <machine: rac1, pid: 17689>
               (ADDRESS=(PROTOCOL=tcp)(HOST=rac1)(PORT=16643))
        Instance "orcl2", status READY, has 1 handler(s) for this service...
          Handler(s):
            "D000" established:0 refused:0 current:0 max:1022 state:ready
               DISPATCHER <machine: rac2, pid: 17306>
               (ADDRESS=(PROTOCOL=tcp)(HOST=rac2)(PORT=62769))
      The command completed successfully
    

  1.4 rac的维护

    1.4.1 数据库维护

  • 查看数据库的状态

      [grid@rac1 ~]$ srvctl status database -d orcl
    
  • 停止数据库

      [grid@rac1 ~]$ srvctl stop database -d orcl
    
  • 启动数据库

      [grid@rac1 ~]$ srvctl start database -d orcl
    

    1.4.2 scan维护

  • 查看scan vip配置

      [grid@rac1 ~]$ srvctl  config  scan
      SCAN name: scan-ip, Network: 1/192.168.146.0/255.255.255.0/eth0
      SCAN VIP name: scan1, IP: /scan-ip/192.168.146.110
    
  • 查看SCAN VIP 状态

      [grid@rac1 ~]$ srvctl  status scan
      SCAN VIP scan1 is enabled
      SCAN VIP scan1 is running on node rac1
    
  • 查看scan listener

      [grid@rac1 ~]$ srvctl  status scan
      SCAN VIP scan1 is enabled
      SCAN VIP scan1 is running on node rac1
    
  • 查看scan listener的配置

      [grid@rac1 ~]$ srvctl  config  scan_listener
      SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
    
  • 查看scan listener的状态

    	[grid@rac1 ~]$  srvctl  status  scan_listener
    	SCAN Listener LISTENER_SCAN1 is enabled
    	SCAN listener LISTENER_SCAN1 is running on node rac1
    
  • 查看scan监听的服务信息

    	如果state的状态,如果为blocked,则有可能是rac某个节点的本地监听没启动,请检查。
    	
    	LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-JAN-2019 06:33:42
    	
    	Copyright (c) 1991, 2009, Oracle.  All rights reserved.
    	
    	Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
    	Services Summary...
    	Service "orcl" has 2 instance(s).
    	  Instance "orcl1", status READY, has 1 handler(s) for this service...
    	    Handler(s):
    	      "DEDICATED" established:1 refused:0 state:ready
    	         REMOTE SERVER
    	         (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521)))
    	  Instance "orcl2", status READY, has 1 handler(s) for this service...
    	    Handler(s):
    	      "DEDICATED" established:1 refused:0 state:ready
    	         REMOTE SERVER
    	         (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))
    	Service "orclXDB" has 2 instance(s).
    	  Instance "orcl1", status READY, has 1 handler(s) for this service...
    	    Handler(s):
    	      "D000" established:0 refused:0 current:0 max:1022 state:ready
    	         DISPATCHER <machine: rac1, pid: 17689>
    	         (ADDRESS=(PROTOCOL=tcp)(HOST=rac1)(PORT=16643))
    	  Instance "orcl2", status READY, has 1 handler(s) for this service...
    	    Handler(s):
    	      "D000" established:0 refused:0 current:0 max:1022 state:ready
    	         DISPATCHER <machine: rac2, pid: 17306>
    	         (ADDRESS=(PROTOCOL=tcp)(HOST=rac2)(PORT=62769))
    	The command completed successfully
    
Logo

更多推荐