vmware安裝oracle11g rac

文章目錄

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/grid grid oinstall GRID_HOME rac1,rac2
/u01/app/grid grid oinstall GRID_BASE rac1,rac2
/u01/app/oracle oracle oinstall ORACLE_BASE rac1,rac2

    1.1.4 網絡相關配置

IP GATEWAY Device type nodes
192.168.146.101 192.168.146.2 Eth0 nat Node1
192.168.233.101 192.168.233.1 Eth1 nat Node2
192.168.146.102 192.168.146.2 Eth0 nat Node1
192.168.233.102 192.168.233.1 Eth1 nat Node2
IP Address Type Node Name IP Address
Public ip address RAC1 192.168.146.101
RAC2 192.168.146.102
Private IP address RAC1 192.168.233.101
RAC2 192.168.233.102
Virtual IP address RAC1 192.168.146.201
RAC2 192.168.146.202
SCAN IP address RAC1 192.168.248.110
RAC2 192.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.vmdk OCR 1G
E:\vmware\oracle RAC\share_storage\share_storage\ocrvote2.vmdk OCR 1G
E:\vmware\oracle RAC\share_storage\share_storage\ocrvote3.vmdk OCR 1G
E:\vmware\oracle RAC\share_storage\share_storage\data.vmdk DATA 10G
E:\vmware\oracle RAC\share_storage\share_storage\recover.vmdk OCR 5G

  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/[email protected]: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/[email protected]: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
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章