您好,登錄后才能下訂單哦!
前言
網上的各種文章,嘗試過后,發現有很多錯漏的地方,還有很多細節沒有寫,或者是遇到各種報錯如何處理,都沒寫,
這里是我自己整理的安裝步驟和解決報錯的方法,因為有部分是從自己以前的筆記里截取的截圖之類的,所以那些可替換的地方,大家就自己去搞定了哈,實在太萌新的,也沒辦法了,自己多摸索下,畢竟這個筆記是寫給我自己看的,以備以后還會用到,這次因為在新的操作系統環境,踩了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查看磁盤
忘了在此之前先創建用戶及所屬組
/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
3 、編輯綁定文件,使用如下規則
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重啟操作系統應該就能看到了。
二、環境準備
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
安裝yum源的時候,可能會報錯?YUM源搞不了?(用本地YUM源的請忽略)
這個時候檢查下你的配置文件
vi /etc/resolv.conf
nameserver 114.114.114.114
3 、 參數配置
vi /etc/sysctl.conf
生產庫的配置:最后一行添加,重復的去掉
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 = 2100
kernel.shmall = 4194304
kernel.shmmax = 17179869183
我這里的物理內存是 16G,SGA是給的4G,所以是以上的參數設置
huge的配置大小
如果你的SGA總量是10G
那么你的hugepage要取一個比 10*1024/2=5120 這個數大的值, 比如5200,我這里是4G所以給的2100
注意,要設置huge,要先看看數據庫的內存管理是AMM還是ASMM,如果是AMM就無法使用huge了。
還有內核參數的一些設置,建議值如下:
kernel.shmmax
內存為 12G 時,該值為 12*1024*1024*1024-1 = 12884901887
內存為 16G 時,該值為 16*1024*1024*1024-1 = 17179869183
內存為 32G 時,該值為 32*1024*1024*1024-1 = 34359738367
內存為 64G 時,該值為 64*1024*1024*1024-1 = 68719476735
內存為 128G 時,該值為 128*1024*1024*1024-1 = 137438953471
kernel.shmall
當內存為 12G 時, kernel.shmall = 3145728
當內存為 16G 時, kernel.shmall = 4194304
當內次為 32G 時, kernel.shmall = 8388608
當內存為 64G 時, kernel.shmall = 16777216
當內存為 128G 時, kernel.shmall = 33554432
至于其他的那些參數的設置,網上有很多的建議值還有說明,自己看著來就好了,一般默認值都夠用。
(這里注意,生產環境最好都要設置下大頁hugepages,不然以后系統運行久了容易遇到內存的一些問題,個人經驗)
想查看大頁huge
grep Huge /proc/meminfo
使參數立即生效
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
注意,這里的10240和操作系統連接數有關聯哦,ulimit -n可以查看連接數,對應數據庫的連接數,自己進行配置哦
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 用戶登錄(兩個節點一樣)(不要老想著復制粘貼,注意有的路徑之間可能會多出空格,這個是博客的BUG,我也不知道為啥會無端端多出空格來,反正經常寫博客都遇到自己編輯沒空格,別人來復制粘貼就有了。)
節點一
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 LANG=en_US.UTF-8
export NLS_DATE_FORMAT="yyyy-mm-dd hh34: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 LANG=en_US.UTF-8
export NLS_DATE_FORMAT="yyyy-mm-dd hh34: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 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=/ 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 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
如果要打集群補丁之類的,root用戶也來驗證一下
三、GRID/ASM安裝
1 )使用 oracle 用戶解壓安裝包(其實root解壓也一樣)
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
把你下載的安裝包都解壓了吧,我一般都把安裝包放在/opt/目錄(在其中一個節點操作就可以了)
cd /opt/
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
unzip p13390677_112040_Linux-x86-64_3of7.zip
解壓之后會出現2個目錄database和grid
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
(注意了,如果你的是CENTOS6.5版本操作系統,
就需要安裝yum install libcap.so.2,然后
find / -name libcap.so.2
ln -s /lib64/libcap.so.2 /usr/lib64/libcap.so.1
再次執行那個root腳本)
再次重新執行第二個腳本,還是報錯,腫么辦,繼續查資料,
報錯如下:
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
如下:
systemctl daemon-reload
systemctl enable ohas.service
systemctl start ohas.service
4. 查看運行狀態問題一個接一個,再次執行第二個腳本,又又又又報錯了。。。我只是想安靜的裝個RAC,咋那么多新問題呢。。。
報錯如下:
未能創建磁盤組OCR_DATA,返回信息如下:
ORA-15018:diskgroup cannot be created
ORA-15020:discovered duplicate ASM disk "OCR_DATA_0000"
嗯,后來發現,就是/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腳本成功安裝,當然,如果覺得不夠穩得,可以重裝
如果安裝過程中遇到下圖報錯:
嘗試ping scan ip ,能ping 通,可以忽略報錯
安裝完成檢查集群狀態正常
crsctl stat res -t
至此,GRID的安裝順利完成。
四、 配置 ASM 磁盤
使用grid 用戶在桌面圖形環境中運行asmca
創建數據磁盤組
安裝好xmanager 軟件
Xshell
配置好屬性SSH— 隧道
重新開啟一個xshell 窗口
Xhost +
Su – oracle
Export DISPLAY=xxx.xxx.xxx.xxx:0.0
使用ORACLE 用戶登錄,./runInstaller
注意!!!這里因為是CENTOS7.6的系統,在安裝過程中會遇到以下報錯:
解決方法:(只需要在1節點改就可以了,2節點會自動同步的)
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,你們懂得
使用root 用戶在各節點執行root 腳本
使用root 用戶在各節點執行root 腳本
使用oracle 用戶登錄,執行dbca
安裝RAC
這里注意,如果遇到以下報錯,則按提示完成GRID 的LISTENER 配置
Xhost +
Su – grid
Export DISPLAY=xxx.xxx.xxx.xxx:0.0
Netca
全部選擇默認下一步安裝即可
如果沒遇到問題,直接繼續下一步
這里我自己在后續安裝過程中,都習慣性設置一個16位的大小寫字母+數字+特殊字符的密碼了
這里在生產庫中,一般要放在數據盤的ASM DATA目錄下,且記得Enable Archiving可以直接在這里設置好,勾選即可默認在DATA目錄自動創建archive的日志目錄,當然安裝完成之后再去設置也可以。
這里在生產環境,一樣要和開發,應用 那邊溝通好, 使用什么字符集,不然,到時不符合要求又要重裝就比較麻煩了。
開始創建實例
安裝好了
測試連接一下數據庫安裝完成
最后,安裝完成后,要記得檢查防火墻getenforce和iptables,檢查監聽,scan監聽,再自己用工具連接下數據庫
到此基本安裝完畢,后面的建表空間,建用戶啥的,自己看著來整,這里不贅述了。
安裝完成后,記得配置ulimit -n的配置
永久生效的(配置完需要重啟操作系統)
vi /etc/security/limits.conf
# End of file
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 10240
grid hard nofile 65536
grid soft stack 10240
* soft memlock 56623104
* hard memlock 56623104
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。