之前寫(xiě)了一篇《2021年CentOS7安裝Oracle11g全記錄》因為是邊做邊寫(xiě)的,看起來(lái)可能會(huì )比較混亂和冗余。所以決定適當的整理一下,希望能幫助電腦前的您,少走一些彎路。
斷斷續續熬夜3天,終于做到0警告安裝oracle 11g。強迫證福音!
不同的環(huán)境可能會(huì )有小小的差異,都是大同小異的。下面給出我用的版本信息:
| 項目 | 版本 |
|---|---|
| 操作系統 | CentOS Linux release 7.9.2009 (Core) |
| oracle | linux.x64_11g_11.2.0.4 |
Oracle11g版本選擇:
強烈建議下載 11.2.0.4版本的,oracle版本是官網(wǎng)下載的11.2.0.1有點(diǎn)小坑在里面,我是后來(lái)遇到坑后換成的 11.2.0.4版本。
CentOS7安裝11.2.0.1遇到的坑:
坑 1,2直接忽略可以解決,3網(wǎng)上也有解決辦法。但是總讓人有點(diǎn)不舒服。好在 11.2.0.4版本中已經(jīng)沒(méi)有這些坑了,舒心多了。
兵馬未動(dòng),糧草先行。個(gè)人覺(jué)得linux下安裝oracle也就是準備工作比較麻煩一些。實(shí)際工作中,經(jīng)常是遠程幫客戶(hù)安裝oracle。為了模擬客戶(hù)現場(chǎng)環(huán)境,我在電腦上遠程我這臺CentOS7虛擬機來(lái)實(shí)現數據庫的安裝。
在安裝之前,我們要做一些簡(jiǎn)單的準備工作,大致如下:
我這里使用openbox做桌面,因為它短小精干!
看文章沒(méi)看懂?那就來(lái)看看視頻怎么操作的吧!
B站:
https://www.bilibili.com/video/BV1Mh411C71D/
root執行以下命令,直接整體復制粘貼到終端就行(不用一行一行復制)。
#圖形界面必備`X Window System`
yum -y groupinstall "X Window System"
#安裝epel源
yum -y install epel-release
#安裝VNC+圖形需要的軟件
yum -y install tigervnc-server openbox xfce4-terminal tint2 cjkuni-ukai-fonts network-manager-applet
#自動(dòng)修改/etc/xdg/openbox/autostart配置文件
echo 'if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then' > /etc/xdg/openbox/autostart
echo ' eval `dbus-launch --sh-syntax --exit-with-session`' >> /etc/xdg/openbox/autostart
echo 'fi' >> /etc/xdg/openbox/autostart
echo 'tint2 &' >> /etc/xdg/openbox/autostart
echo 'nm-applet &' >> /etc/xdg/openbox/autostart
echo 'xfce4-terminal &' >> /etc/xdg/openbox/autostart
echo ' ' >> /etc/xdg/openbox/autostart
#防火墻放行VNC端口
firewall-cmd --add-port=5901/tcp
firewall-cmd --add-port=5901/tcp --permanent
為了安全起見(jiàn),不建議使用root做為vnc用戶(hù)。單獨創(chuàng )建一個(gè)用戶(hù)比較安全。
既然安裝oracle,這里用戶(hù)名我使用 oracle。
root執行以下命令,直接整體復制粘貼到終端就行(不用一行一行復制)。
#創(chuàng )建database用戶(hù)組
groupadd database
#創(chuàng )建oracle用戶(hù)并放入database組中
useradd oracle -g database
#設置oracle密碼
passwd oracle
密碼我設置的是database@2021
切換到oracle用戶(hù)
su oracle
#首次運行,生成~/.vnc/xstartup等配置文件
vncserver :1 -geometry 1024x768
我這里設置的密碼是 vnc@2021
oracle用戶(hù)執行以下命令,直接整體復制粘貼到終端就行(不用一行一行復制)。
#配置VNC默認啟動(dòng)openbox
echo "openbox-session &" > ~/.vnc/xstartup
# 停止服務(wù)
vncserver -kill :1
#重新開(kāi)啟vnc服務(wù)
vncserver :1 -geometry 1024x768
使用你的VNC客戶(hù)端連接就行了,會(huì )的就略過(guò)吧。
我用的是:VNC Viewer點(diǎn)擊下載
我的地址如下:
172.16.184.5:5901

vnc@2021
如果你連接的時(shí)候發(fā)現,沒(méi)有界面,是黑屏的只有一個(gè)鼠標,那么可以重啟一下VNC服務(wù)試試。
切換到oracle用戶(hù)su oracle
命令:
vncserver -kill :1
vncserver :1 -geometry 1024x768
是不是很簡(jiǎn)單!
如果需要更詳細的教程,請看:
《Centos7安裝和配置VNC服務(wù)器 - openbox篇》
https://blog.csdn.net/lxyoucan/article/details/113210891
root用戶(hù)執行以下命令,su root
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
默認情況下,因CentOS 中缺少中易宋體18030所以會(huì )導致中文顯示成□□□□□的問(wèn)題。
中文是世界上最美的文字,不能顯示太可惜了。很簡(jiǎn)單增加所需字體就行了。操作如下:
下載字體:
https://download.csdn.net/download/lxyoucan/14968070
root執行以下命令:
新建文件夾
mkdir -p /usr/share/fonts/zh_CN/TrueType
zysong.ttf上傳到/usr/share/fonts/zh_CN/TrueType目錄
chmod 75 /usr/share/fonts/zh_CN/TrueType/zysong.ttf
字體安裝完成,這樣安裝oracle就不會(huì )中文亂碼了。
就喜歡英文安裝界面,想用英文界面怎么辦呢?
如果不想用中文界面安裝,安裝前運行以下命令,臨時(shí)使用英文環(huán)境。
LANG=en_US
上傳安裝包到 CentOS7服務(wù)器。我上傳到 /home/oracle/目錄了。
上傳以后,文件路徑和名稱(chēng)如下:
[oracle@localhost ~]$ pwd
/home/oracle
[oracle@localhost ~]$ ls
p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip
只需要*1of7.zip,*2of7.zip 兩個(gè)壓縮包即可。
如果沒(méi)有unzip工具,安裝unzip用于文件解壓root執行以下面
yum install unzip
oracle用戶(hù)登錄vnc,執行下面命令,解壓安裝包
#解壓第1個(gè)zip
unzip p13390677_112040_Linux-x86-64_1of7.zip
#解壓第2個(gè)zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
解壓出 database,已被安裝使用。
文件如下:
[oracle@localhost ~]$ ls
database p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip
前期準備工作已經(jīng)完畢!
準備工作已經(jīng)結束了,接下來(lái)的安裝工作就跟在windows下安裝oracle差不多了。先總結一下,基本就是根據界面提示就可以一路“下一步(N)”就可以完成了。
需要稍微注意的就是:
其它的根據自己的需要,或者一路“下一步(N)”就可以完成了。為了一些朋友更直觀(guān)的觀(guān)看,我把每一步都截圖了,可以跳著(zhù)看。
進(jìn)入~/database/目錄。
#進(jìn)入安裝目錄
cd ~/database/
#運行安裝程序
./runInstaller
根據需要設置,我這里就不設置了。
根據個(gè)人需要選擇,我這里選擇 跳過(guò)軟件更新(S)。

選擇“創(chuàng )建和配置數據庫(C)”

描述中已經(jīng)說(shuō)的很清楚了,根據自己需要選擇。這里我選擇的是服務(wù)器類(lèi)(S)。

我選默認的,單實(shí)例數據庫安裝(S)根據實(shí)際需要選擇。

默認典型安裝(T)即可。

主要設置一下密碼,其他默認即可。這里密碼要在大寫(xiě)字母+小寫(xiě)字母+數字組合。比如:我設置的是Database123。

默認即可。

這一步要稍花一些時(shí)間處理。每個(gè)人的顯示可能略有不同。比如:物理內存的檢測,我這個(gè)1G內存就會(huì )提示小于預期。
處理方法:
修補并再次檢查(F) 可以自動(dòng)修復沒(méi)解決之前我的顯示如下:

修補并再次檢查(F)
/tmp/CVU_11.2.0.4.0_oracle/runfixup.sh
執行完后,點(diǎn)擊上面對話(huà)框中的確定(O) 這里發(fā)現大部分都修復了。如下:

?全部忽略即可。這個(gè)警告,我猜測直接忽略就行了。因為本機已經(jīng)安裝了ksh-20120801-142.el7.x86_64。
yum search pdksh中搜索沒(méi)的搜索到它。只能手動(dòng)安裝了。
#下載安裝包
wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
如果沒(méi)有wget就安裝一下 yum install wget
執行安裝操作。
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
執行結果如下,與已經(jīng)安裝的沖突了,安裝失敗了。
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
警告:pdksh-5.2.14-37.el5_8.1.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID e8562897: NOKEY
錯誤:依賴(lài)檢測失?。?pdksh 與 (已安裝) ksh-20120801-142.el7.x86_64 沖突
卸載沖突
rpm -e ksh-20120801-142.el7.x86_64
再次安裝
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
全過(guò)程如下:
[root@localhost ~]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
警告:pdksh-5.2.14-37.el5_8.1.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID e8562897: NOKEY
錯誤:依賴(lài)檢測失?。?pdksh 與 (已安裝) ksh-20120801-142.el7.x86_64 沖突
[root@localhost ~]# rpm -e ksh-20120801-142.el7.x86_64
[root@localhost ~]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
警告:pdksh-5.2.14-37.el5_8.1.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID e8562897: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:pdksh-5.2.14-37.el5_8.1 ################################# [100%]
重新檢測,發(fā)現警告消失了?。?!
若檢查中無(wú)此項,可忽略!
這個(gè)問(wèn)題之前有遇到過(guò),寫(xiě)這篇文章又沒(méi)有了。下面解決辦法供參考。
如果Swap空間不符合要求,oracle 安裝文件檢查發(fā)現swap 空間不足。
大小一般設置為一般為內存的1.5倍。
(root權限)查詢(xún)當時(shí)Swap分區設置情況。
swapon -s

free工具來(lái)查看內存和Swap情況。
free -m
結果如下單位(MB):
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1475 439 171 13 865 877
Swap: 2047 0 2047
創(chuàng )建Swap文件
接下來(lái)我們將在文件系統上創(chuàng )建swap文件。我們要在根目錄/下創(chuàng )建一個(gè)名叫swapfile的文件,當然你也可以選擇你喜歡的文件名。該文件分配的空間將等于我們需要的swap空間。
一般 內存的 1.5倍以上就好了。也可以根據安裝程序的提示來(lái)。

root執行以下命令,創(chuàng )建swap分區,

#創(chuàng )建swap文件 bs=2300的設置的值一般為內存的1.5倍以上
dd if=/dev/zero of=/var/swap bs=2500 count=1000000
#需要更改swap文件的權限,確保只有root才可讀
chmod 600 /var/swap
#告知系統將該文件用于swap
mkswap /var/swap
#開(kāi)始使用該swap
swapon /var/swap
#使Swap文件永久生效,/etc/fstab加入配置
echo "/var/swap swap swap sw 0 0" >> /etc/fstab
如果上面創(chuàng )建后發(fā)現,大小創(chuàng )建錯誤了。如何重置呢?
swapoff -a
rm /var/swap
上面命令就可以刪除了,然后重新創(chuàng )建合適的swap文件就行了。
經(jīng)過(guò)我們的不斷努力,所有警告都消失了。有一些警告雖然沒(méi)影響什么,有了總讓人不舒服。沒(méi)有??真是太舒服了。

這里顯示了安裝配置的概要部分,檢查一下是否正確。沒(méi)問(wèn)題就開(kāi)始安裝吧!

上面折騰了這么久終于迎來(lái)了真正的安裝操作了。

它來(lái)了,它來(lái)了,我等待好久了。

$(MK_EMAGENT_NMECTL) 關(guān)鍵字快速找到。
#===========================
# emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
#===========================
# nmocat
#===========================
修改完成后,點(diǎn)擊重試(R)

上面的問(wèn)題解決后,安裝一會(huì )兒就會(huì )出現如下的界面。耐心等待即可。

經(jīng)過(guò)一段時(shí)間的等待,終于彈出如下界面。


更改組名/home/oracle/app/oraInventory 到 database.
腳本的執行已完成。
[root@localhost ~]# /home/oracle/app/oraInventory/orainstRoot.sh
更改權限/home/oracle/app/oraInventory.
添加組的讀取和寫(xiě)入權限。
刪除全局的讀取, 寫(xiě)入和執行權限。
更改組名/home/oracle/app/oraInventory 到 database.
腳本的執行已完成。
[root@localhost ~]# /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /home/oracle/app/oracle/product/11.2.0/dbhome_1
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.
Finished product-specific root actions.
[root@localhost ~]#
執行完成這兩個(gè)腳本,點(diǎn)擊確定

經(jīng)過(guò)我們的努力,終于走到了這一步。
Oracle Database 的安裝已成功。

關(guān)閉即可。
默認端口是1521
# 防火墻放行1521oracle端口
firewall-cmd --add-port=1521/tcp
firewall-cmd --add-port=1521/tcp --permanent
su oracle
切換到oracle用戶(hù)操作。
編輯配置文件
vi ~/.bash_profile
文件末尾加入以下內容,ORACLE_HOME中換成你實(shí)際安裝的路徑
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1/
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
使用配置文件立即生效。
source ~/.bash_profile
su oracle
sqlplus /nolog
SQL> connect /as sysdba
SQL> startup
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on Tue Feb 2 02:59:38 2021
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> connect as sysdba
Enter user-name: sys
Enter password:
Connected.
SQL> select 1 from dual;
1
----------
1
SQL>
沒(méi)有問(wèn)題,說(shuō)明oracle本地連接oracle成功。
lsnrctl start
使用其他機器連接我們剛安裝好的oracle進(jìn)行連接測試。
修改配置文件C:\app\itkey\product\11.2.0\client_1\network\admin\tnsnames.ora(路徑根據實(shí)際情況來(lái))
CentOS7ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.184.5)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

CentOS7安裝Oracle 11g不難,遇到問(wèn)題都能百度解決。就是對比windows下安裝有些麻煩。安裝中遇到的小問(wèn)題大多因為oracle 11g年歲己高導致的。我猜測在新版的系統中安裝新版的Oracle 可能會(huì )更簡(jiǎn)單。甚至可能像windows中那樣簡(jiǎn)單吧!或者使用 Oracle 自己的linux系統安裝起來(lái)會(huì )不會(huì )更容易呢?等我以后有空了,可以測試一下。
《2021年CentOS7安裝Oracle11g全記錄》
https://blog.csdn.net/lxyoucan/article/details/113177763
《在CentOS 7上添加Swap交換空間》
https://blog.csdn.net/zstack_org/article/details/53258588
《Error in invoking target 'install’ of makefile '…/dbhome_1/ctx/lib/ins_ctx.mk’ …》
https://blog.csdn.net/xch_yang/article/details/104389154
《記一次oracle安裝錯誤:INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14’》
https://www.cnblogs.com/yhq1314/p/10830300.html
《Linux/Centos 安裝oracle報錯“調用makefile '/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk的目標” 解決》
https://blog.csdn.net/weixin_41078837/article/details/80585287
《在CenOS 上安裝oracle 11g R2的時(shí)候提示:pdksh包沒(méi)有安裝》
https://my.oschina.net/u/3318604/blog/1527845
聯(lián)系客服