ORACLE11.2.0.4 RAC+ ASM安裝方法 (作業系統CENTOS7.6)

germany006發表於2019-08-01


前言

網上的各種文章,嘗試過後,發現有很多錯漏的地方,還有很多細節沒有寫,或者是遇到各種報錯如何處理,都沒寫,

這裡是我自己整理的安裝步驟和解決報錯的方法,因為有部分是從自己以前的筆記裡擷取的截圖之類的,所以那些可替換的地方,大家就自己去搞定了哈,實在太萌新的,也沒辦法了,自己多摸索下,畢竟這個筆記是寫給我自己看的,以備以後還會用到,這次因為在新的作業系統環境,踩了N多的坑,花費我大量時間,下次不要再踩了。


我這裡的ASM配置是採用的儲存裸裝置

 

作業系統CENTOS7.6

資料庫ORACLE11.2.0.4

 

一、ASM磁碟配置

1 、編輯 / etc/scsi_id.config 檔案

vi   /etc/scsi_id.configo

options=-g

 

2 、給磁碟分割槽,並檢視磁碟的 uuid  (磁碟分割槽只在一個節點執行即可)

fdisk /dev/sda

n

p

1

預設回車

預設回車

w

fidk /dev/sdb

n

p

1

預設回車

預設回車

w

檢視UUID

/usr/lib/udev/scsi_id -g -u -d /dev/sda1

/usr/lib/udev/scsi_id -g -u -d /dev/sdb1

 

當然磁碟是哪個磁碟,這個要你們自己掛載的時候自己整好,lsblk檢視磁碟

 

 

3 、編輯繫結檔案,使用如下規則

vi 99-oracle-asmdevices.rules

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="3628408eff0495d08ef004912d7d6b386", RUN+="/bin/sh -c 'mknod /dev/asmocrdisk b $major $minor; chown grid:asmadmin /dev/asmocrdisk; chmod 0660 /dev/asmocrdisk'"

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="361c104516049770bef80026911671d80", RUN+="/bin/sh -c 'mknod /dev/asmdatadisk1 b $major $minor; chown grid:asmadmin /dev/asmdatadisk1; chmod 0660 /dev/asmdatadisk1'"


4 、開始繫結

測試

/sbin/partprobe /dev/sda1

/sbin/udevadm test /block/sda/sda1

/sbin/partprobe /dev/sdb1

/sbin/udevadm test /block/sdb/sdb1

進行繫結命令:

/sbin/udevadm control --reload-rules

 

 

5 、繫結完成,可以使用命了 ls -l /dev/asm * 進行檢視

lrwxrwxrwx. 1 root root 4 6月   6 16:14 /dev/asm-datadisk1 -> sdb1

lrwxrwxrwx. 1 root root 4 6月   6 16:05 /dev/asm-ocrdisk -> sda1

 

 

 

二、環境準備

1 、host檔案配置

#vi /etc/hosts

192.168.159.6 testdb1

192.168.159.7 testdb2

192.168.159.24 testdb1-vip

192.168.159.25 testdb2-vip

10.1.22.6 testdb1-pri

10.1.22.7 testdb2-pri

192.168.159.26 testdb-scan

 

hosts 檔案的 IP 對應名稱最好只寫一個,不要多餘的)

以下很重要,不修改會在安裝grid的時候會報錯

節點1

vi /etc/hostname

testdb1

臨時修改hostname

hostname testdb1

節點2

vi /etc/hostname

testdb2

臨時修改hostname

hostname testdb2

 

2 、安裝ORACLE11G所需環境包

yum -y install compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers libaio-devel libstdc++-devel sysstat unixODBC unixODBC-devel libcap.so.1

 

yum -y install binutils compat-db compat-libcap1 compat-libstdc++-33 control-center elfutils-libelf-devel gcc gcc-c++ glibc glibc-common gnome-libs libaio-devel libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21 smartmontools


3 引數配置

vi /etc/sysctl.conf

生產庫的配置:最後一行新增,重複的去掉

kernel.shmall = 4294967295

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

vm.nr_hugepages = 2048

kernel.shmmax = 4294967295

 

 (這裡注意,生產環境最好都要設定下大頁hugepages,不然以後系統執行久了容易遇到記憶體的一些問題,個人經驗)

想檢視大頁huge

grep Huge /proc/meminfo

 

使引數立即生效

sysctl -p

 

vi /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

 

 

vi /etc/pam.d/login

session required pam_limits.so

 

 

4 、關閉防火牆

(我這裡的環境一般是雲端,所以不用考慮防火牆等安全問題,雲端上有物理防火牆,N多策略阻擋了)

如果不關閉防火牆,在後面配置叢集的時候會遇到麻煩的

service iptables stop

chkconfig iptables off

setenforce 0

getenforce

iptables -F

 

vi /etc/selinux/config

SELINUX=disabled

SELINUXTYPE=targeted

 

 

5 、禁用NTP服務

service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf /etc/ntp.conf.bak

rm -rf /etc/ntp.conf

 

6 、使用者及使用者組,許可權目錄建立

/usr/sbin/groupadd -g 501 oinstall

/usr/sbin/groupadd -g 502 dba

/usr/sbin/groupadd -g 503 oper

/usr/sbin/groupadd -g 504 asmadmin

/usr/sbin/groupadd -g 505 asmoper

/usr/sbin/groupadd -g 506 asmdba

/usr/sbin/useradd -g oinstall -G dba,asmdba,oper oracle

/usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

 

passwd oracle

passwd grid

 

mkdir -p /home/u01/app/grid

mkdir -p /home/u01/app/11.2.0/grid

chown -R grid:oinstall /home/u01

mkdir -p /home/u01/app/oracle

chown oracle:oinstall /home/u01/app/oracle

chmod -R 775 /home/u01

 

7 、oracle及grid環境變數配置

oracle 使用者登入(兩個節點一樣)

節點一

vi .bash_profile

 

export PATH

umask 022

export ORACLE_BASE=/ home/ u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=testdb1

export NLS_LANG=AMERICAN_AMERICA.UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

 

oracle使用者,節點二

vi .bash_profile

 

export PATH

umask 022

export ORACLE_BASE=/ home/ u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=testdb2

export NLS_LANG=AMERICAN_AMERICA.UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

 

 

 

 

grid 使用者登入

節點一:

vi .bash_profile

ORACLE_SID=+ASM1; export ORACLE_SID

JAVA_HOME=/usr/local/java;export JAVA_HOME

ORACLE_BASE=/ home/ u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/ home/ u01/app/11.2.0/grid; export ORACLE_HOME

ORACLE_PATH=/ home/ u01/app/oracle/common/oracle/sql; export ORACLE_PATH

ORACLE_TERM=xterm;export ORACLE_TERM

NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/ home/ u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

export.UTF-8

alias sqlplus="rlwrap sqlplus"

umask 022

 

 

節點二:

vi .bash_profile

ORACLE_SID=+ASM2; export ORACLE_SID

JAVA_HOME=/usr/local/java;export JAVA_HOME

ORACLE_BASE=/ home/ u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/ home/ u01/app/11.2.0/grid; export ORACLE_HOME

ORACLE_PATH=/ home/ u01/app/oracle/common/oracle/sql; export ORACLE_PATH

ORACLE_TERM=xterm;export ORACLE_TERM

NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/ home/ u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

export.UTF-8

alias sqlplus="rlwrap sqlplus"

umask 022

 

8 、ssh密匙互信配置

設定互信關係,這裡記住oracle和grid使用者都要設定互信,root也互信,且在測試的時候,2個節點都要進行測試

su - oracle

mkdir ~/.ssh

ssh-keygen -t rsa

ssh-keygen -t dsa

以下操作在一個節點上執行即可

cat ~/.ssh/id_rsa.pub>>./.ssh/authorized_keys -公鑰存在authorized_keys檔案中,寫到本機

cat ~/.ssh/id_dsa.pub>>./.ssh/authorized_keys

ssh testdb2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys -第二個節點的公鑰寫到本機

ssh testdb2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys testdb2:~/.ssh/authorized_keys

兩個節點上分別驗證

ssh testdb1 date

ssh testdb2 date

ssh testdb1-PRI date

ssh testdb2-PRI date

 

su - grid

mkdir ~/.ssh

ssh-keygen -t rsa

ssh-keygen -t dsa

以下操作在一個節點上執行即可

cat ~/.ssh/id_rsa.pub>>./.ssh/authorized_keys -公鑰存在authorized_keys檔案中,寫到本機

cat ~/.ssh/id_dsa.pub>>./.ssh/authorized_keys

ssh testdb2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys -第二個節點的公鑰寫到本機

ssh testdb2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys testdb2:~/.ssh/authorized_keys

兩個節點上分別驗證

ssh testdb1 date

ssh testdb2 date

ssh testdb1-PRI date

ssh testdb2-PRI date

 

如果要打叢集補丁之類的,root使用者也來驗證一下

 

三、GRID/ASM安裝

1 )使用 oracle 使用者解壓安裝包

2 )使用 grid 使用者登入安裝 grid

安裝圖形化

yum -y groupinstall "X Window System"

 yum -y install compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers libaio-devel libstdc++-devel sysstat unixODBC unixODBC-devel

yum install -y compat-libcap1-1.10 libcap.so.1  libstdc++-devel-4.4.4 gcc-c++-4.4.4  smartmontools  libaio-devel-0.3.107 

 

rpm -ivh /opt/grid/rpm/cvuqdisk-1.0.9-1.rpm   ( 解壓 grid 安裝包裡面可以找到,如果無法安裝,請先安裝yum install  smartmontools這個 )

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm (這裡必須安裝這個版本)

 

注意事項:安裝 GRID 時, VIP 設定的時候要全部小寫, VIP IP 不允許佔用

 

root使用者xhost +回車

su - grid

export DISPLAY=192.168.159.6:0.0

cd /opt/grid/

./runInstaller

 

 

(1)步驟一

(2)步驟二

 

(3)步驟三

(4)步驟四

(5)步驟五

(6)步驟六

 

遇到報錯:

遇到以上報錯需將scan name修改為/etc/hosts下的scan存在的名字,比如testdb-scan

192.168.159.6 testdb1

192.168.159.7 testdb2

192.168.159.24 testdb1-vip

192.168.159.25 testdb2-vip

10.1.22.6 testdb1-pri

10.1.22.7 testdb2-pri

192.168.159.26 testdb-scan

 

步驟7也是一樣的問題,相對應的名稱要與/etc/hosts設定的一致(注意,如果在安裝過程中修改了/etc/hosts,需要重新開啟安裝程式才可以識別)

(7)步驟七

 

這裡如果遇到報錯,檢查ifconfig 的IP地址是否被佔用,檢查grid和oracle互信是否正常

Public hostname  必須填寫物理節點的主機名

virtual hostname 可以填寫/etc/hosts下的主機名

注意:雙節點必須密匙互信,包含主機名,虛擬主機名,互信之後,如果是報錯互信,要配置完互信之後,重新啟動安裝程式才可識別

互信的使用者包含 grid,oracle

注意,自己和自己也要互信

 

 

如果出現以上報錯,應檢查VIP是否被使用被佔用

Ifconfig

Ping vip地址是否通

如果發現已被佔用,只能換一個IP地址

 

 

(8)步驟八

 

(9)步驟九

注意,必須要有雙網路卡, 一個公網,一個私網

 

(10)步驟十

 

 

(11)步驟十一

注意了,如果出現下圖這樣的情況,有可能是你的/etc/udev/rules.d/ 99-oracle-asmdevices.rules 那個檔案配置不正確,這樣會導致最後grid安裝失敗的,必須檢查清楚

 

正確的如下圖:


(12)步驟十二

 

 

(13)步驟十三(如果設定一個16位大小寫字母+數字+特殊字元,這個步驟就不會出現)

(14)步驟十四

(15)步驟十五

 

 

(16)步驟十六

 

 

(17)步驟十七(注意目錄本來是不存在的,點選NEXT後自動在伺服器上建立)

(18)步驟十八

 

 

(19)步驟十九

 

如果這裡這麼多問題,就一個個解決吧,尤其是有個FAILED的。

swap size 檢視了自己的swap有8G,要求16G,這個問題不大,可以忽略

OS KERNEL的問題,檢查了下/etc/sysctl.conf,發現shmmax沒設定,加上去

pdksh的問題,必須得安裝pdksh-5.2.14-37.el5_8.1.x86_64.rpm這個版本的

cvuqdisk的問題,必須的安裝 /opt/grid/rpm/cvuqdisk-1.0.9-1.rpm  (這個是 grid 安裝包解壓後可以找到)

 

正常的檢測結果如下圖:

 

 

(20)步驟二十

在新的終端使用root使用者執行下面兩個指令碼:

 

報錯出現了。。。執行到第二個指令碼的時候報錯,如下:

 

 

#/home/u01/app/oraInventory/orainstRoot.sh

Changing permissions of /home/u01/app/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

 

Changing groupname of /home/u01/app/oraInventory to oinstall.

The execution of the script is complete.

# /home/u01/app/11.2.0/grid/root.sh

Performing root user operation for Oracle 11g 

 

The following environment variables are set as:

    ORACLE_OWNER= grid

    ORACLE_HOME=  /home/u01/app/11.2.0/grid

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: 

   Copying dbhome to /usr/local/bin ...

   Copying oraenv to /usr/local/bin ...

   Copying coraenv to /usr/local/bin ...

 

 

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /home/u01/app/11.2.0/grid/crs/install/crsconfig_params

Creating trace directory

User ignored Prerequisites during installation

Installing Trace File Analyzer

Failed to create keys in the OLR, rc = 127, Message:

   /home/u01/app/11.2.0/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 at /home/u01/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 7660.

/home/u01/app/11.2.0/grid/perl/bin/perl -I/home/u01/app/11.2.0/grid/perl/lib -I/home/u01/app/11.2.0/grid/crs/install /home/u01/app/11.2.0/grid/crs/install/rootcrs.pl execution failed

 

 

怎麼辦呢,上網查了下資料,嘗試了下


yum install  libcap.so.1


安裝完了之後,重新執行第二個指令碼,沒用,還是報錯呢,咋辦呢,繼續查。。。


發現有這樣的解決辦法:




ls -lt /usr/lib64/libcap.so.2


lrwxrwxrwx. 1 root root 14 5月   9 14:20 /usr/lib64/libcap.so.2 -> libcap.so.2.22


ln -s /usr/lib64/libcap.so.2 /usr/lib64/libcap.so.1






 


再次重新執行第二個指令碼,還是報錯,腫麼辦,繼續查資料,



報錯如下:


Adding Clusterware entries to inittab


ohasd failed to start


Failed to start the Clusterware. Last 20 lines of the alert log follow: 


2015-05-23 23:37:45.460: 


[client(13782)]CRS-2101:The OLR was formatted using version 3.





按以下網址的方法解決:


 


 https://blog.csdn.net/u010692693/article/details/48374557


 


 


 


 問題一個接一個,再次執行第二個指令碼,又又又又報錯了。。。我只是想安靜的裝個RAC,咋那麼多新問題呢。。。

報錯如下:


嗯,後來發現,就是/etc/udev/rules.d/下的那個檔案出的問題,如果按照上面我更新了的一路做下來,就解決了。


哦,忘記說了,如果第一次操作不是按我記錄的總結做的,請dd一下asm盤,重新fdisk一下,重啟作業系統,

嗯,反正就是配置ASM的那些操作認真的重搞一下,就OK了,最重要的是 一定要重啟作業系統。一定要重啟作業系統。

一定要重啟作業系統。重要的事情說三遍!!!!


 

 啊啊啊啊啊啊,真的要瘋掉了。。。因為又又又又又報錯了,,,為啥要說又呢。。。因為這是最後一次報錯了,

報錯如下:

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /home/db/u01/app/11.2.0/grid/crs/install/crsconfig_params

User ignored Prerequisites during installation

Installing Trace File Analyzer

Adding Clusterware entries to inittab

ohasd failed to start

Failed to start the Clusterware. Last 20 lines of the alert log follow: 

2019-06-13 14:30:25.080: 

[client(2314)]CRS-2101:The OLR was formatted using version 3.

2019-06-13 14:41:00.497: 

[ohasd(8133)]CRS-0715:Oracle High Availability Service has timed out waiting for init.ohasd to be started.




好吧。。。咋又出現上面解決過的ohasd的報錯呢???咋回事啊?老弟?

後來發現,通過這個命令檢查狀態

systemctl status ohas.service


● ohas.service - Oracle High Availability Services

   Loaded: loaded (/usr/lib/systemd/system/ohas.service; enabled; vendor preset: disabled)

   Active: active (running) since 四 2019-06-13 11:33:05 CST; 4h 18min ago

 Main PID: 4195 (init.ohasd)

   CGroup: /system.slice/ohas.service

           ├─ 4195 /bin/sh /etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple

           └─13011 /bin/sleep 10


6月 13 11:33:05 localhost.localdomain systemd[1]: Started Oracle High Availability Services.



 我暈哦,怎麼變成Localhost了?

檢查了下/etc/hosts

嗯嗯嗯,額鵝鵝鵝,原來預設的那個localhost127.0.0.1 的東西沒刪掉,刪除了,把那個錯誤的local程式kill

然後再檢查,新的程式是主機名的  systemd[1]了,這回終於好了, 指令碼root.sh終於成功。

 

 

 

 好吧,節點1成功後的資訊:

CRS-2672: Attempting to start 'ora.mdnsd' on 'testdb1'

CRS-2676: Start of 'ora.mdnsd' on 'testdb1' succeeded

CRS-2672: Attempting to start 'ora.gpnpd' on ' test db1'

CRS-2676: Start of 'ora.gpnpd' on 'testdb1' succeeded

CRS-2672: Attempting to start 'ora.cssdmonitor' on 'testdb1'

CRS-2672: Attempting to start 'ora.gipcd' on 'testdb1'

CRS-2676: Start of 'ora.cssdmonitor' on 'testdb1' succeeded

CRS-2676: Start of 'ora.gipcd' on 'testdb1' succeeded

CRS-2672: Attempting to start 'ora.cssd' on 'testdb1'

CRS-2672: Attempting to start 'ora.diskmon' on 'testdb1'

CRS-2676: Start of 'ora.diskmon' on 'testdb1' succeeded

CRS-2676: Start of 'ora.cssd' on 'testdb1' succeeded


已成功建立並啟動 ASM。


已成功建立磁碟組OCR_VOTE。


clscfg: -install mode specified

Successfully accumulated necessary OCR keys.

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

CRS-4256: Updating the profile

Successful addition of voting disk 34a2677d79854f78bf3ce189ea1ee690.

Successfully replaced voting disk group with +OCR_VOTE.

CRS-4256: Updating the profile

CRS-4266: Voting file(s) successfully replaced

##  STATE    File Universal Id                File Name Disk group

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

 1. ONLINE   34a2677d79854f78bf3ce189ea1ee690 (/dev/asmocrdisk) [OCR_VOTE]

Located 1 voting disk(s).

CRS-2672: Attempting to start 'ora.asm' on 'testdb1'

CRS-2676: Start of 'ora.asm' on 'testdb1' succeeded

CRS-2672: Attempting to start 'ora.OCR_VOTE.dg' on 'testdb1'

CRS-2676: Start of 'ora.OCR_VOTE.dg' on 'testdb1' succeeded

Configure Oracle Grid Infrastructure for a Cluster ... succeeded



那麼問題來了,本滿心欣喜的以為節點2也會一樣的輕鬆寫意,,,結果可想而知。。。又又又又報錯了,為啥又要說又呢。


因為在節點2執行root指令碼報錯如下:

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /home/db/u01/app/11.2.0/grid/crs/install/crsconfig_params

Creating trace directory

User ignored Prerequisites during installation

Installing Trace File Analyzer

OLR initialization - successful

Adding Clusterware entries to inittab

CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node testdb1, number 1, and is terminating

An active cluster was found during exclusive startup, restarting to join the cluster

Start of resource "ora.asm" failed

CRS-2800: Cannot start resource 'ora.ctssd' as it is already in the INTERMEDIATE state on server 'testdb2'

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

Failed to start Oracle Grid Infrastructure stack

Failed to start ASM at /home/db/u01/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 1339.

/home/db/u01/app/11.2.0/grid/perl/bin/perl -I/home/db/u01/app/11.2.0/grid/perl/lib -I/home/db/u01/app/11.2.0/grid/crs/install /home/db/u01/app/11.2.0/grid/crs/install/rootcrs.pl execution failed



解決方法:

節點1

vi /etc/hostname

testdb1

hostname testdb1

節點2

vi /etc/hostname

testdb2

hostname testdb2

重啟作業系統


再次執行root.sh指令碼成功安裝,當然,如果覺得不夠穩得,可以重灌

Performing root user operation for Oracle 11g
The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /home/db/u01/app/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /home/db/u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
Adding Clusterware entries to inittab
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node yytsdb1, number 1, and is terminating
An active cluster was found during exclusive startup, restarting to join the cluster
Configure Oracle Grid Infrastructure for a Cluster ... succeeded


如果安裝過程中遇到下圖報錯:

嘗試 ping  scan ip ,能 ping 通,可以忽略報錯


安裝完成檢查叢集狀態正常

crsctl stat res -t


至此,GRID的安裝順利完成。




四、 配置 ASM 磁碟

使用 grid 使用者在桌面圖形環境中執行 asmca

建立資料磁碟組



、安裝 RAC 資料庫

1 )步驟一

安裝好 xmanager 軟體

Xshell

配置好屬性 SSH— 隧道

重新開啟一個 xshell 視窗

Xhost +

Su – oracle

Export DISPLAY=xxx.xxx.xxx.xxx:0.0

使用 ORACLE 使用者登入, ./runInstaller


2 )步驟二

3 )步驟三

4 )步驟四

5 )步驟五

6 )步驟六


7 )步驟七

8 )步驟八

9 )步驟九

10 )步驟十


11 )步驟十一


12 )步驟十二



13 )步驟十三


14 )步驟十四


15 )步驟十五


注意!!!這裡因為是CENTOS7.6的系統,在安裝過程中會遇到以下報錯:


解決方法:

Error in invoking target 'agent nmhs' of makefile '/u01/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'

解決方案: 保留安裝過程,另外開啟一個終端視窗,將ins_emagent.mk檔案中的 (MK_EMAGENT_NMECTL)更改為$(MK_EMAGENT_NMECTL) -lnnz11,然後在安裝過程中點選Retry即可。


這個新增的-lnnz11 是 減號小寫字母l   ,兩個數字1,你們懂得

16 )步驟十六

使用 root 使用者在各節點執行 root 指令碼


17 )步驟十七


16 )步驟十六

使用 root 使用者在各節點執行 root 指令碼

17 )步驟十七


6 、建立 ORACLE 例項

1 )步驟一

使用 oracle 使用者登入,執行 dbca


2 )步驟二

安裝 RAC


3 )步驟三

4 )步驟四

5 )步驟五

這裡注意,如果遇到以下報錯,則按提示完成 GRID LISTENER 配置


Xhost +

Su – grid

Export DISPLAY=xxx.xxx.xxx.xxx:0.0

Netca

全部選擇預設下一步安裝即可


如果沒遇到問題,直接繼續下一步


6 )步驟六


7 )步驟七



這裡我自己在後續安裝過程中,都習慣性設定一個16位的大小寫字母+數字+特殊字元的密碼了


8 )步驟八



9 )步驟九



10 )步驟十



11 )步驟十一



這裡在生產庫中,一般要放在資料盤的ASM DATA目錄下,且記得Enable Archiving可以直接在這裡設定好,勾選即可預設在DATA目錄自動建立archive的日誌目錄,當然安裝完成之後再去設定也可以。


12 )步驟十二


13 )步驟十三


14 )步驟十四



這裡在生產環境,一樣要和開發,應用 那邊溝通好, 使用什麼字符集,不然,到時不符合要求又要重灌就比較麻煩了。

15 )步驟十五

16 )步驟十六


17 )步驟十七


18 )步驟十八

開始建立例項


19 )步驟十九

安裝好了


20 )步驟二十

測試連線一下資料庫安裝完成


最後,安裝完成後,要記得檢查防火牆getenforce和iptables,檢查監聽,scan監聽,再自己用工具連線下資料庫

到此基本安裝完畢,後面的建表空間,建使用者啥的,自己看著來整,這裡不贅述了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-2646713/,如需轉載,請註明出處,否則將追究法律責任。

相關文章