通過ORACLE VM virtualbox環境安裝oracle 11G RAC(ASM)

germany006發表於2020-03-26

一、環境準備

作業系統CENTOS7.5

資料庫ORACLE11.2.0.4

虛擬機器ORACLE VM virtualbox6.0


1、新建2臺虛擬機器

虛擬機器配置,記憶體4G(最好是給4G,不然會後悔的,後悔的截圖在最後一行),CPU1核,本地磁碟50G,共享磁碟需要詳細的寫一下,如下所述:

RAC1:

建立新虛擬盤


1節點建立好2個固定磁碟

進入 (ORACLE VM)虛擬介質管理介面

將剛剛建立的2塊磁碟設定為共享屬性,應用


2節點直接使用剛剛建立的兩塊現有共享磁碟


每臺虛擬機器一共3塊網路卡,其中2塊hostonly,1塊橋接

2塊hostonly的網段也要區分開

不同網段可以在(ORACLE VM)主機網路管理那裡配置新增

IP地址和網路卡配置自己搞定吧,太簡單不寫了

1  、host檔案配置

#vi /etc/hosts

10.18.96.211 testdb1

10.18.96.212 testdb2

10.18.96.213 testdb1-vip

10.18.96.214 testdb2-vip

10.18.97.215 testdb1-pri

10.18.97.216 testdb2-pri

10.18.96.220 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源


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

kernel.shmmax = 4294967295

 

這裡 hugepage不配置了

 

使引數立即生效

sysctl -p

 

vi /etc/security/limits.conf

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

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 10240

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  、關閉防火牆

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

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 /u01/app/grid

mkdir -p /u01/app/11.2.0/grid

chown -R grid:oinstall /u01

mkdir -p /u01/app/oracle

chown oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

 

7  、oracle及grid環境變數配置

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

節點一

vi .bash_profile

 

export PATH

umask 022

export ORACLE_BASE=/ u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=testdb1

export  LANG=en_US.UTF-8

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=/ u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=testdb2

export  LANG=en_US.UTF-8

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=/ u01/app/grid; export ORACLE_BASE

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

ORACLE_PATH=/ 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}:/ 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  LANG=en_US.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=/ u01/app/grid; export ORACLE_BASE

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

ORACLE_PATH=/ 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}:/ 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  LANG=en_US.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


二、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  、編輯繫結檔案,使用如下規則(這個配置在2個節點都寫)

vi  /etc/udev/rules.d/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

 

注意:這個時候可能你會發現ll /dev/asm* 下面啥都木有

這個就要記得,把防火牆關閉了,setenforce 0  iptables -F

然後改那個/etc/selinux/config  永久關閉,vi /dev/udev/rules.d/  99-oracle-asmdevices.rules 一樣的配置

再登陸2節點,lsblk發現為啥沒有/dev/sda1 和/dev/sdb1,直接fdisk /dev/sda 和fdisk /dev/sdb然後直接q退出,不用操作

再次lsblk,就發現,ll /dev/asm* 有對映了。

然後回到1節點,ll /dev/asm*發現還是沒有對映,那就和2節點一樣的操作,fdisk /dev/sda 和fdisk /dev/sdb然後直接q退出,不用操作。再次lsblk,就發現,ll /dev/asm*有對映了。


如果ll /dev/asm* 還是看不到,那就直接reboot重啟作業系統應該就能看到了。


磁碟不同,那些命令路徑也有不同,自己看著來



三、GRID/ASM安裝

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

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

安裝圖形化

yum -y groupinstall "X Window System"  

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個指令碼,再去第二個節點執行


在執行第二個指令碼時,

OLR initialization - successful

  root wallet

  root wallet cert

  root cert export

  peer wallet

  profile reader wallet

  pa wallet

  peer wallet keys

  pa wallet keys

  peer cert request

  pa cert request

  peer cert

  pa cert

  peer root cert TP

  profile reader root cert TP

  pa root cert TP

  peer pa cert TP

  pa peer cert TP

  profile reader pa cert TP

  profile reader peer cert TP

  peer user cert

  pa user cert

Adding Clusterware entries to inittab

執行到這一句,開始,就可以做以下操作了

步驟如下: 
1. 以root使用者建立服務檔案 
#touch /usr/lib/systemd/system/ohas.service 
#chmod 777 /usr/lib/systemd/system/ohas.service 
2. 將以下內容新增到新建立的ohas.service檔案中 
[root@rac1 init.d]# cat /usr/lib/systemd/system/ohas.service 
[Unit] 
Description=Oracle High Availability Services 
After=syslog.target 
[Service] 
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple 
Restart=always 
[Install] 
WantedBy=multi-user.target 
3. 以root使用者執行下面的命令 

systemctl daemon-reload

systemctl enable ohas.service

systemctl start ohas.service

4. 檢視執行狀態 
[root@rac1 init.d]# systemctl status ohas.service 

看到 Active: active (running) 這個狀態就OK了,不用管,繼續讓它自己自動執行。


完成安裝

出現這個報錯可以忽略


四、  配置  ASM  磁碟

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

建立資料磁碟組




  、安裝RAC  資料庫

1  )步驟一


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

圖形介面啥的,自己搞定或者看我其他部落格文章

)步驟二

開始安裝





啊後面的不想寫了,,,寫了一大堆,這部落格傻掉了,不知道幹嘛突然自動退出,沒儲存到截圖,吐了,不寫了。後面的和我其他部落格裡寫的安裝方法一樣的。

比如下面我寫的這篇就很詳細了,包含了各種遇到的報錯處理,各種注意事項,以後還有什麼會繼續補充完善

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

反正最重要的是前面那裡配置VM磁碟的,而且只是寫給自己看的,又不能設定只給自己看,莫得辦法啊。



一個字,慢死了!!!

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

相關文章