1. 程式人生 > >ORACLE叢集配置(注:根據網上資料自行搭建成功步奏總結)

ORACLE叢集配置(注:根據網上資料自行搭建成功步奏總結)

一、   安裝前準備

1.     2臺或多臺linux伺服器

2.     每臺伺服器一個公用ip一個私有ip

3.     公有ip:其他主機訪問  2臺主機最好同一ip段

4.     私有ip:2臺或多臺虛擬機器互訪  2臺主機最好同一ip段

5.     注意:網絡卡名稱相同。

6.     Oracle安裝包,grid安裝包,相關外掛安裝包(已準備)。

7.     2個虛擬機器共享多塊磁碟。

8.     本地環境ip: 192.168.2.159

9.      本地主機安裝Xmanger 安裝以後本地才會彈出遠端安裝oracle相關叢集軟體的介面

 

二、   以下配置以centos7+oracle11g+ vmware配置

a)     安裝2個虛擬略:注意伺服器硬碟最好高於40g,oracle安裝好以後就會佔用10個左右記憶體3g

b)     示例虛擬機器1   主機名rac001    公有ip 192.168.2.187 私有ip  192.168.9.128

c)     示例虛擬機器2   主機名rac002    公有ip 192.168.2.238 私有ip  192.168.9.129

1.    配置本地hosts檔案(2臺主機都要配置)

如下列1:ip  列2:別名 列3:主機名稱(個人理解的,不同系統順序可能不同)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#public ip 公有ip

192.168.2.187           rac001   rac001.svc.com

192.168.2.238           rac002   rac002.svc.com

#virtual ip

192.168.9.128           rac001-priv   rac001-priv.svc.com

192.168.9.129           rac002-priv   rac002-priv.svc.com

#private ip

192.168.2.230           rac001-vip   rac001-vip.svc.com

192.168.2.232           rac002-vip   rac002-vip.svc.com

#scan ip 

192.168.2.233           rac-scan   rac-scan.svc.com

192.168.2.234           rac-scan   rac-scan.svc.com

192.168.2.235           rac-scan   rac-scan.svc.com

 

2.    配置主機網路:(2臺虛擬機器都要配置)

vim  /etc/sysconfig/network-scripts/網絡卡對應的配置檔名

如下:我的虛擬機器網絡卡名,公有ip網絡卡名 ens33 私有網絡卡名ens37

DEVICE= ens33

TYPE=Ethernet

UUID= 55e7e524-f748-48d1-a46c-051760f75aa7 //網絡卡的唯一標識

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=192.168.2.187      //共有地址,即IP配置中的rac001

PREFIX=24

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=00:0C:29:7B:73:66  //mac地址

NETMASK=255.255.255.0    //子網掩碼

GATEWAY=192.168.2.129  //本地主機ip

USERCTL=no

        完成後重啟網路:# service network restart

    測試本地主機window ip與虛擬機器能否ping通

    # ping 192.168.2.129

配置私有網絡卡(如沒有則建立檔案)

vim /etc/sysconfig/network-scripts/網絡卡對應的配置檔名

HWADDR=00:0c:29:85:ca:6b   //eth1網絡卡的mac地址

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.10.1    //IP配置中的rac001-priv

NETMASK=255.255.255.0

重啟網路

    #ifup eth1

    #service network restart

    此時配置的ip之間可以互相ping通,但是外網無法ping通,這時因為沒有配置dns

配置dns

        檢視本地主機window的dns伺服器

    按window+r的 輸入cmd

    命令列# ipconfig  –all

   檢視DNS伺服器地址

    虛擬機器下新增查到的dns伺服器地址

    # vim /etc/resolv.conf 新增dns

nameserver 10.16.10.6

nameserver 10.16.10.8

   或者使用公共的dns伺服器

nameserver  114.114.114.114

nameserver  8.8.8.8

   測試ping外網

   #pingwww.baidu.com

   OK網路配置完成

    注意:有時候會遇到一個比較詭異的情況,配置的dns,在每次重啟網絡卡的時候,都會消失,導致外網無法訪問,解決方法:(我沒遇到)

# chkconfig NetworkManager off

# chkconfig network on

#service NetworkManager stop

# service network start

# service network restart

 

3.    下載安裝rac依賴包(2臺虛擬機器都要)

        

yum install -y expect* iscsi* binutils* compat-libstdc++* expat* elfutils-libelf* gcc* glibc* ksh* libgcc*

yum install -y pdksh* libgomp* compat-db* libXp* libaio* cpp* setarch* sysstat* libstdc++* make-3*

yum install -y unixODBC

yum install -y unixODBC-devel

yum install -y oracleasm*

rpm –ivh  /oracleasmlib-2.0.4-1.el4.x86_64 (百度下載,上傳到伺服器)

rpm -ivh --force --nodeps  /rac-pakge/*.rpm (百度下載,上傳到伺服器)

--force強制安裝   --nodeps 跳過依賴

 

以下是所需軟體包,已準備好

expat-1.95.7 (x86_64)   有

pdksh-5.2.14        缺(yum搜不到,手動安裝)

sysstat-5.0.5    有

gcc-3.4.6        缺

libgcc-3.4.6 (x86_64)

libgcc-3.4.6 (i386) 缺(yum搜不到,手動安裝)

libaio-0.3.105 (x86_64)

libaio-0.3.105 (i386) 缺(yum搜不到,手動安裝)

libaio-devel-0.3.105 (x86_64) 缺

libaio-devel-0.3.105 (i386) 缺(yum搜不到,手動安裝)

gcc-c++-3.4.6 缺

glibc-2.3.4-2.41 (x86_64)

glibc-2.3.4-2.41 (i686) 缺

glibc-headers-2.3.4

glibc-devel-2.3.4 (x86_64)

glibc-common-2.3.4

elfutils-libelf-devel-0.97 缺

elfutils-libelf-0.97 (x86_64) 

compat-libstdc++-33-3.2.3 (x86_64) 缺

compat-libstdc++-33-3.2.3 (i386)  缺(yum搜不到,手動安裝)

compat-libcap1.x86_64  缺

binutils-2.15.92.0.2

libstdc++-devel-3.4.6 (x86_64)

libstdc++-3.4.6 (x86_64)

libstdc++-3.4.6 (i386) (yum搜不到,手動安裝)

make-3.80

unixODBC-2.2.11 (x86_64)   缺(yum搜不到,手動安裝)

unixODBC-devel-2.2.11 (x86_64)    缺(yum搜不到,手動安裝)

unixODBC-libs-2.2.11-10.el5.i386  缺(yum搜不到,手動安裝)

unixODBC-devel-2.2.11 (i386) 缺(yum搜不到,手動安裝)

unixODBC-2.2.11 (i386) 缺(yum搜不到,手動安裝)

oracleasmlib-2.0.4-1.el4.x86_64缺

kmod-oracleasm-2.0.8-6.el6_7.x86_64 (yum可安裝)

oracleasm-support-2.1.8-1.el6.x86_64缺

4.    建立使用者和組和安裝目錄(2臺虛擬機器都要配置)

# groupadd oinstall

# groupadd dba

# groupadd oper

# groupadd asmdba

# groupadd asmoper

# groupadd asmadmin

# useradd -g dba  -G oinstall,oper,asmdba oracle

# useradd -g asmdba -G oinstall,dba,asmadmin,asmoper grid

1.      設定使用者密碼(2臺虛擬機器都要配置)

#passwd oracle

#passwd grid

2.      建立安裝目錄

# mkdir /u01

# mkdir /u01/grid

# mkdir /u01/oracle

# mkdir /u01/gridbase

3.      修改檔案歸屬(2臺虛擬機器都要配置)

# chown -R grid:oinstall /u01

# chown -R oracle:oinstall /u01/oracle

4.      授權(2臺虛擬機器都要配置)

# chmod -R g+w /u01

5.    配置環境變數(2臺虛擬機器都要配置)

兩個節點都做,注意兩節點的ORACLE_SID不能相同,字首cludb相同,後面的數字依次排序。

切換到oracle使用者:

# su  –  oracle

# vim  ~/.bash_profile

末尾增加:

ORACLE_BASE=/u01/oracle   安裝後的oracle目錄

ORACLE_HOME=/u01/oracle/db  安裝後的oracle目錄

ORACLE_SID=cludb1 

PATH=$ORACLE_HOME/bin:$PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

DISPLAY=192.168.2.129:0.0

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY

切換grid使用者:

# su  –  grid

# vim  ~/.bash_profile

末尾增加:

ORACLE_BASE=/u01/gridbase  安裝後的grid目錄

ORACLE_HOME=/u01/11.2.0/grid安裝後的grid目錄

PATH=$ORACLE_HOME/bin:$PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

DISPLAY=192.168.2.129:0.0

export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH DISPLAY

注:DISPLAY 是本地主機的ip,本地安裝Xmanager,rac安裝介面將在本地顯示

配置好了,執行命令source  ~/.bash_profile使其配置生效

 

6.    關閉不需要的服務(2臺虛擬機器都要配置)

Root使用者:

 關閉SELINX

#vim /etc/selinux/config #編輯配置檔案

#SELINUX=enforcing #註釋掉

#SELINUXTYPE=targeted #註釋掉

SELINUX=disabled #增加

 

關閉防火牆:注意不同系統的主機命令,不同(2臺虛擬機器都要配置)

注意:centos7關閉防火牆命令不一樣,需要百度

#setup

根據圖形化介面選擇上下箭頭選擇【System Service】系統服務,找到iptables,ip6tables,sendmail,按空格鍵取消[]中的*號,按TAB鍵儲存,並退出

 

7.    修改linux核心引數(以下是官方給出的最低配置2臺主機都要配置)

Root使用者:

#vim /etc/sysctl.conf

具體引數意義參考官方文件

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1073741824    這裡修改要注意:kernel.shmallkernel.shmmni的積= kernel.shmmax

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128  centos7最後面引數無效

這裡修改第一個引數和第4個引數的積=第二個引數

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 = 1048586

使修改生效

#sysctl  -p

#vim /etc/security/limits.conf

oracle soft nproc      2047

oracle hard nproc      16384

oracle soft nofile    1024

oracle hard nofile    65536

oracle soft stack      10240

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

grid soft stack 10240

8.    設定節點時間同步(2臺虛擬機器都要配置)

Root使用者:

        一般時間同步有linux的ntpd時間同步,還有就是oracle的時間同步,我們用 oracle 的時間同步,需要關閉ntpd服務

# /sbin/service  ntpd stop
# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.original

還要刪除以下檔案(如果有的話):
# rm /var/run/ntpd.pid

 

 

9.    建立共享磁碟(多塊!我建立的3塊,虛擬機器配置,不是虛擬機器配置不一樣)

建立磁碟:

在虛擬機器rac001節點右擊--【設定】---【新增】---【硬碟】

稍等片刻,一塊磁碟建立完畢,重複上述動作兩次,建立3塊磁碟。

 

將建立的磁碟剪下至一個公共目錄:

移除rac001節點中的上述建立的磁碟(因為已經剪下走了)

然後再重複上述建立磁碟的動作,在7步驟的時候不再選擇【建立虛擬磁碟】,而是選擇【使用現有虛擬磁碟】,然後選擇移至公共目錄下的磁碟檔案sharedisk-1.vmdk,sharedisk-2.vmdk,sharedisk-3.vmdk,建立三塊磁碟,儲存後,更新三塊磁碟的高階屬性,分別選擇scsi1:1,scsi1:2,scsi1:3.

節點rac002同樣如此。

 

 

磁碟建立好了以後修改各虛擬機器的配置檔案

    rac001.vmx,rac002.vmx(關閉虛擬機器後才能修改 )

disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.dataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType="disk"

scsi1:2.deviceType="disk"

scsi1:3.deviceType="disk"

 

1.     分割槽(虛擬機器1操作)

 

Root使用者:

# cd /dev/

# ls -l sd*

將看到sdb,sdc,sdd,這三塊就是新增的磁碟

對硬碟進行分割槽

# fdisk sdb

按m鍵,此時有多個選項供選擇

按n鍵(建立新分割槽)

按p鍵(建立主分割槽,另有e鍵是擴充套件分割槽)

按1鍵(分割槽數字從1開始,即sdb1,sdc1等)

按1鍵(分割槽從第一個柱面開始)

回車 (結束柱面選擇 預設,即全部柱面只分在一個區)

按w鍵(將操作寫入分割槽表)

依次對sdb sdc sdd

2.     建立磁碟

(虛擬機器1操作)

Root使用者:

#oracleasm configure  -i

然後輸入使用者grid

輸入組dba

輸入y

輸入y

# oracleasm init

建立磁碟DISK01,DISK02,DISK03

oracleasm createdisk DISK001 sdb1

oracleasm createdisk DISK002 sdc1

oracleasm createdisk DISK003 sdd1

檢視磁碟:

# oracleasm listdisks

DISK01

DISK02

DISK03

虛擬機器2

注:如果已開啟則重啟

Root使用者:

# oracleasm  configure  -i

輸入grid

輸入dba

輸入y

輸入y

#oracleasm init

 

重啟

#reboot

#oracleasm listdisks

節點2也能看到DISK01,DISK02,DISK03了

 

10.2臺或多臺主機之間的互信(分別用grid和oracle使用者)(2臺主機都要執行)

 

注:grid,Oracle使用者都需要新增相互資訊,下面以grid為例

Grid使用者:

在節點rac001和rac002節點分別執行

#ssh-keygen -t rsa

然後一路回車

#cat  ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys

在節點rac001 上執行

# ssh rac002 cat ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys

在節點rac002上執行

# ssh rac001 cat ~/.ssh/id_rsa.pub  >> ~/.ssh/authorized_keys

 

如果祕鑰的生成路徑是按照上面一路預設的話,可以執行命令(rac002節點:ssh-copy-id  grid@rac001;rac001節點:ssh-copy-id grid@rac002)將本地公鑰追加到authorized_keys上

測試:

在rac002,rac001上分別執行

#ssh rac001 date

#ssh rac002 date

只要不再提示輸入密碼就成功了

 

 

三、   安裝Grid

1.     安裝grid前檢測

 

Grid使用者:

將叢集軟體linux.x64_11gR2_grid.zip上傳至/u01目錄,並解壓

將解壓至grid目錄,更改解壓後文件屬主

# chown –R grid:oinstall grid

進入加壓後的目錄

#cd /u01/grid

執行安裝前檢查操作

# ./runcluvfy.sh stage -pre crsinst -n rac001,rac002 -fixup -verbose

 

下面是檢查過程

如果上面的依賴包全部正確安裝的話,檢查應該不會有問題

執行 叢集服務設定 的預檢查

 

正在檢查節點的可訪問性...

 

檢查: 節點 "rac001" 的節點可訪問性

  目標節點                                  是否可訪問?                 

  ------------------------------------  ------------------------

  rac001                                是                      

  rac002                                是                      

結果:節點 "rac001" 的節點可訪問性檢查已通過

 

 

正在檢查等同使用者...

 

檢查: 使用者 "grid" 的等同使用者

  節點名                                   註釋                     

  ------------------------------------  ------------------------

  rac002                                通過                     

  rac001                                通過                     

結果:使用者 "grid" 的等同使用者檢查已通過

 

正在檢查節點的連線性..

………………….

可能會出現的問題:

1),使用者 "grid" 的等同使用者檢查失敗解決方法:

在失敗的節點執行#ssh rac001/rac002 date

2) 交換空間記憶體不夠

   #dd if=/dev/zero of=swapfile bs=1024 count=1500000

1024單位byte,增加1.5G記憶體大小

   # mkswap swapfile  

   # swapon swapfile

交換記憶體開機自動掛載

  # vim /etc/fstab

 加入

 /home/swapfile  swap  swap  defaults  0 0

 

如果檢查成功則開始安裝操作

失敗則執行相應的檢測生成的修復檔案(失敗提示上有)

 

2.     開始安裝(虛擬機器1安裝)

 

Grid使用者:

只在第一個節點執行安裝命令

export DISPLAY=192.168.2.159:0.0

export LANG=en_US.UTF-8

# ./runInstaller

 

等待一會將會在本地主機出現安裝介面

我們這裡選擇高階安裝,點選“next”

選擇“English”,點選“Next”

這裡要填寫scan name,對應我們的/etc/hosts裡寫的名字,不選擇GNS,點選“next”

點選Add將其他節點加進來,點選SSH Connectivity 輸入grid使用者密碼 點選Test測試,成功後點擊next

 

 

執行指令碼

1)所有節點均需執行

2)以下錯誤均是安裝時候出過 的錯誤,執行指令碼前請先檢視以下資訊,以防再次犯錯

 

所有節點上執行

# /u01/oraInventory/oraInstRoot.sh

# /u01/grid/root.sh

【錯誤資訊1】

在執行root.sh指令碼時候,出現錯誤:

/u01/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory

Failed to create keys in the OLR, rc = 127, 32512

OLR configuration failed

共享庫libcap.so.1 找不到,因為缺少包compat-libcap1.x86_64.rpm(前文依賴包中有此包,若已安裝,則不會出現此錯誤),yum安裝:

# yum install -y compat-libcap1.x86_64

安裝完畢後,需要將之前失敗的配置刪除再重新執行指令碼:

# /u01/grid/crs/install/rootcrs.pl -delete -force -verbose

【錯誤資訊2】

再次執行root.sh指令碼,有遇到錯誤:

CRS-4124: Oracle High Availability Services startup failed.

CRS-4000: Command Start failed, or completed with errors.

ohasd failed to start: 對裝置不適當的 ioctl 操作

ohasd failed to start at /u01/grid/crs/install/rootcrs.pl line 443.

經過查詢得知這是11.2.0.1版本一個經典的BUG,據說這個錯誤只在linux 6.1下,且Oracle 版本為11.2.0.1的時候出現,11.2.0.3就不再有這個bug了。

解決方法(注意:一定要2個節點分開執行,不能同時執行)

在執行root.sh指令碼時候,當出現Adding daemon to inittab的時候,在另一個視窗執行下面命令:

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

如果出現

/bin/dd: opening`/var/tmp/.oracle/npohasd': No such file or directory

的時候該檔案還沒生成就繼續執行,直到能執行為止。

 

指令碼執行完畢後,點選安裝介面的OK,繼續下一步,如果出現下面的錯誤,可以忽略,問題是由於scan-cluster使用/etc/hosts檔案來解析造成的,直接跳過,不影響。如果是用dns來解析的話應該不會報此錯誤

點選OK--next

安裝完成 點選Close關閉即可。

 

執行過程如果root.sh指令碼執行失敗,重新執行如下:

如果節點一成功,節點二失敗

節點二執行

# /u01/grid/crs/install/rootcrs.pl -verbose -deconfig -force

# /u01/grid/root.sh

 

3.     安裝成功返回資訊(節點2可能不一樣)

Configure Oracle Grid Infrastructure for a Cluster ... succeeded

Updating inventory properties for clusterware

Starting Oracle Universal Installer...

 

Checking swap space: must be greater than 500 MB.   Actual 7423 MB    Passed

The inventory pointer is located at /etc/oraInst.loc

The inventory is located at /u01/oraInventory

'UpdateNodeList' was successful

節點2成功可能返回

Preparing packages for installation...

cvuqdisk-1.0.7-1

Configure Oracle Grid Infrastructure for a Cluster ... succeeded

Updating inventory properties for clusterware

Starting Oracle Universal Installer...

 

Checking swap space: must be greater than 500 MB.   Actual 7423 MB    Passed

The inventory pointer is located at /etc/oraInst.loc

The inventory is located at /u01/oraInventory

 

 

4.     完成後檢查

執行:# crs_stat –t –v

報錯:CRS-0184: Cannot communicate with the CRS daemon

       然後 用grid啟動命令# crsctl start crs 報

CRS-4563: Insufficient user privileges.

CRS-4000: Command Start failed, or completed with errors.

那就換root啟動,結果報

CRS-4640: Oracle High Availability Services is already active

CRS-4000: Command Start failed, or completed with errors.

 

解決方法:所有節點執行# dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

          然後執行# crs_start –all

         #crsctl check crs     //檢查crs 發現已經online了

CRS-4638: Oracle High Availability Services is online

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

    再次執行#crs_stat –t –v
     ora.DATA.dg    ora....up.type ONLINE    ONLINE    rac001      

ora....ER.lsnr ora....er.type ONLINE    ONLINE    rac001      

ora....N1.lsnr ora....er.type ONLINE    ONLINE    rac001      

ora.asm        ora.asm.type   ONLINE    ONLINE    rac001      

ora.eons       ora.eons.type  ONLINE    ONLINE    rac001      

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE              

ora....network ora....rk.type ONLINE    ONLINE    rac001      

ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE              

ora.ons        ora.ons.type   ONLINE    ONLINE    rac001      

ora....SM1.asm application    ONLINE    ONLINE    rac001      

ora....01.lsnr application    ONLINE    ONLINE    rac001      

ora.rac001.gsd  application    OFFLINE   OFFLINE              

ora.rac001.ons  application    ONLINE    ONLINE    rac001      

ora.rac001.vip  ora....t1.type ONLINE    ONLINE    rac001      

ora....SM2.asm application    ONLINE    ONLINE    rac002      

ora....02.lsnr application    ONLINE    ONLINE    rac002      

ora.rac002.gsd  application    OFFLINE   OFFLINE              

ora.rac002.ons  application    ONLINE    ONLINE    rac002      

ora.rac002.vip  ora....t1.type ONLINE    ONLINE    rac002      

ora.scan1.vip  ora....ip.type ONLINE    ONLINE    rac001  

 

四、   安裝資料庫

1.     安裝資料庫軟體(隨便某一虛擬機器安裝)

 

任一節點安裝:

# cd  /u01

將linux.x64_11gR2_database.zip上傳至/u01,解壓,將解壓後的目錄並改歸屬

#chown –R oracle:oinstall linux.x64_11gR2_database

#chmod 777 /u01/oraclePage/database/runInstaller

#chmod 777 /u01/oraclePage/database/install/unzip

# chmod 777 /u01//database/install/.oui

開始安裝

# su – oracle

export DISPLAY=192.168.2.159:0.0

export LANG=en_US.UTF-8

# cd /u01/oraclePage/database/

# ./runInstaller -ignoreInternalDriverError

引數-ignoreInternalDriverError的作用是忽略內部驅動導致cluster認證失敗,下文有錯誤資訊

上圖Next的時候,可能出現錯誤(在新增信任時如果oracle使用者已新增則不會報此錯)

[INS-06006] Passwordless SSH connectivity not set up between the following node(rac001,rac002).

解決方法:在rac001rac002節點上用oracle使用者新增互相信任,並執行ssh rac001 datessh rac002 date


點選Next


報錯[INS-20702],內部驅動錯誤導致cluster工具驗證失敗,取消重新安裝新增-ignoreInternalDriverError引數


以上是檢測,只有grid安裝好了就不用管,選擇Ignore All

 

等待安裝完成,將生成的root.sh指令碼在每一個節點上用root使用者執行,執行完畢後點擊OK,安裝完成,並close關閉安裝頁籤

 

2.     建立資料庫(順便某一虛擬機器執行都行)

 

# dbca


彈出如下介面後,我們選擇第一項叢集模式Oralce Real Applicatoin…,然後next

預設Create a Database,然後Next

選擇預設General Purpose… 然後next

 

 

這裡Global Database Name和SID prefix為cludb,在前文節點環境變數中配置的cludb1,cludb2字首cludb,然後選擇所有節點(圖片僅是參考),然後Next

 

預設即可,然後Next

 

設定密碼,所有使用者均設定一致的密碼,防止記混,也可以設定不同密碼。然後Next

預設選擇ASM儲存型別 然後Next,然後會彈出視窗指定ASM密碼,填寫密碼,然後繼續

閃回區配置預設,也可以不選擇,以後修改spfile檔案,然後Next

樣例schemal可裝可不裝,然後Next

字元可以選擇ZHS16GBK-GBK-bit Simplified Chinese,其他預設即可,然後Next

配置頁面如下,然後Next

開始建立資料庫 然後Finish,等待安裝完成…

安裝挺慢的,等待ing…可能會等很久,與系統與配置與網速都有關係

建立完成,Password Managerment可以解鎖oracle預設賬戶,解鎖scott(可略) 點選Exit

資料庫建立完成.

五、   相關檢測

1.     檢測叢集狀態(grid使用者)

 

# su - grid

# crs_stat –t

此圖為後來再次搭建時所補,只為了看到不同節點ONLINE狀態(所以主機名不是rac1,rac2)

 

2.     檢測叢集資料庫(Oracle使用者,各個虛擬機器分別執行)

 

$  srvctl config database -d cludb

Database unique name: cludb

Database name: cludb

Oracle home: /u01/oracle/db

Oracle user: oracle

Spfile: +DATA/cludb/spfilecludb.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools: cludb

Database instances: cludb1,cludb2,cludb3

Disk Groups: DATA

Services:

Database is administrator managed

 

 

3.     檢測資料庫示例狀態

$ srvctl status database -d cludb

Instance cludb1 is running on node centos6srv01

Instance cludb2 is running on node centos6srv02

Instance cludb3 is running on node centos6srv03

檢查本地配置的環境變數,以防sid不匹配

$ env |grep ORACLE

//注意與上面的Instance相同,筆者筆誤配置不同導致連上資料庫後查詢就報ora-01034

ORACLE_SID=cludb1    注意這裡與之前oracle環境變數配置有關,配置的什麼就是什麼。每臺主機的序號都不相同

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/db

 

六、   安裝後的資料庫操作配置

1.     登陸資料庫 oracle使用者執行

系統使用者  sqlplus / as sysdba

普通使用者sqlplus  然後根據提示輸入使用者名稱和密碼

2.     建立表空間與單例oracle不一樣,如下

create tablespace OA datafile '+DATA/OA.dbf' size 800m autoextend on;

 

3.     JDBC連線字串:(示例)

Connection conn = DriverManager.getConnection(

    "jdbc:oracle:thin:@(DESCRIPTION ="

    + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.210)(PORT = 1521)) "

    + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.212)(PORT = 1521))"

    + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.213)(PORT = 1521)) "

    + "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.122.211)(PORT = 1521)) "

    + "(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = cludb))) ", "system", "123456");

 

 

 

七、   叢集維護

 

例項管理

$ srvctl status instance    -d cludb -i cludb1

$ srvctl stop   instance    -d cludb -i cludb1

$ srvctl start  instance    -d cludb -i cludb1

監聽管理

$ srvctl status listener    -n rac001

$ srvctl stop   listener    -n rac001

$ srvctl start  listener    -n rac001

 

叢集管理命令crsctl

停止叢集:

$ su - grid

$ srvctl stop database -d cludb

$ su - root

# /u01/grid/bin/crsctl stop crs  //停止crs 同時停止asm磁碟組 root使用者

啟動叢集

$ /u01/grid/bin/crsctl start crs

$ /u01/grid/bin/srvctl start database -d cludb

注意:在啟動crs時候,若報

CRS-4124: Oracle HighAvailability Services startup failed.

CRS-4000: Command Startfailed, or completed with errors.

可在每個節點執行命令:

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

(11.2.0.1才會有這個bug)

 

八、   虛擬機器共享磁碟不足(注意,不是用的虛擬機器,方式不一樣)

由於測試過程中發現共享硬碟不夠用,需要增加共享硬碟,建立共享硬碟過程略(前文已有),

然後登陸(grid)

SQL> sqlplus / as sysasm

報:

SQL*Plus: Release 11.2.0.1.0 Production on Sun Jun 12 13:08:07 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

ERROR:

ORA-01031: insufficient privileges

此時需要匯入環境變數(grid使用者)

$ export ORACLE_SID=+ASM1

$ export ORACLE_HOME=/u01/grid

$ export PATH=$ORACLE_HOME/bin:$PATH

再次登陸即可

SQL> sqlplus / as sysasm

Connected. 

 

檢視使用者

SQL>  select * from v$pwfile_users;

 

USERNAME              SYSDB SYSOP SYSAS

------------------------------ ----- ----- -----

SYS                    TRUE  TRUE  TRUE

ASMSNMP               TRUE  FALSE FALSE

檢視磁碟組

SQL> select  STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;

 

STATE    REDUNDA   TOTAL_MB    FREE_MB NAME

-------- ------- ---------- ---------- ------------------------------

FAILGROUP

------------------------------

NORMAL   UNKNOWN       5114      101 DISK1

DISK1

NORMAL   UNKNOWN       5114      135 DISK2

DISK2

NORMAL   UNKNOWN       5114      129 DISK3

DISK3

STATE    REDUNDA   TOTAL_MB    FREE_MB NAME

-------- ------- ---------- ---------- ------------------------------

FAILGROUP

------------------------------

NORMAL   UNKNOWN       5114      132 DISK4

DISK4

增加磁碟

SQL> alter diskgroup DATA add disk 'ORCL:DISK5' name DISK5;

Diskgroup altered. //新增成功

 

注:DATA為安裝asm叢集時候的磁碟組的名字,如果沒有更改則預設是DATA

   DISK5為新建的共享磁碟