文章目錄
- 1 vmware安裝oracle 11gr2 rac
- 1.1 環境說明
- 1.2 安裝前的配置、安裝數據庫軟件
- 1.2.1 虛擬機相關配置
- 1.2.1.1虛擬機網卡配置
- 1.2.1.2 vmware掛載u盤,安裝相關的包
- 1.2.1.3 Oracle linux6相關軟件安裝
- 1.2.1.4 Oracle linux6環境檢查
- 1.2.1.5 vmware安裝vmware tool,實現宿主機和虛擬機共享文件
- 1.2.1.6 虛擬機創建共享磁盤
- 1.2.2 Oracle安裝前的準備
- 1.2.2.1 oracle環境的配置
- 1.2.2.2 交換空間的擴展
- 1.2.2.3 相關環境變量的配置
- 1.2.2.4 配置host相關文件
- 1.2.2.5 配置oracle asm disks
- 1.2.2.6 配置ssh通信
- 1.2.2.7 集羣時間服務(ntp、ctss)
- 1.2.2.8 運行CVU檢查grid安裝環境
- 1.2.3 grid軟件的安裝
- 1.2.4 oracle實例的安裝
- 1.2.5 oracle數據庫的創建(dbca)
- 1.2.6 安裝完成以後的配置
- 1.3 遇到的問題
- 1.4 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/isomount -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安裝方式
-
查看共享文件夾
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 虛擬機創建共享磁盤
- 創建磁盤
第二種是使用命令,直接創建出磁盤,兩個虛擬機添加已有磁盤。
案列中使用的是第二種方式。
下列列舉的是使用命令創建磁盤的案列
-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.repoyum 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/networkHOSTNAME=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時,會出現
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 sysdbaSQL*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