程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> CentOS7_86_64安裝Oracle10gR2血淚史

CentOS7_86_64安裝Oracle10gR2血淚史

編輯:Oracle教程

CentOS7_86_64安裝Oracle10gR2血淚史


CentOS7_86_64安裝Oracle10g R2血淚史

說明 本人是Linux菜鳥,在安裝過程中,其實有些錯誤可以避免,但因為不了解走了一些彎路,不過自己學到了一些東西。這裡整理了下遇到的各種問題和解決方式,是自己的一個總結,也希望對需要的人有幫助吧。另外說明下主要流程參考了一位博友的文章,我這裡只是結合自己遇到的問題梳理下,博客原文CentOS 6.3(x86_32)下安裝Oracle 10g R2。如果你的系統是CentOS6,建議直接參考原文,如果是7,則可以看一下下面的內容。僅供學習之用。

一、硬件要求

1. 內存要求&Swap

EMinimum: 1 GB of RAM

Recommended: 2 GB of RAM or more


Available RAM                Swap Space Required
Between 1G and 2G           1.5 times the size of the RAM
Between 2G and 16G          Equal to the size of the RAM
More than 16G               16GB

檢查內存情況

#grep MemTotal /proc/meminfo
#grep SwapTotal /proc/meminfo

2.硬盤
由於CentOS安裝後差不多有4~5G,再加上Oracle等等的安裝,所以請准備至少10G的硬盤空間。

檢查磁盤情況

# df -h

檢查磁盤

二、軟件

系統平台:CentOS 7.0(x86_64)
Oracle版本:Oracle 10g R2
10201_database_linux_x86_64.cpio
補丁:p6810189_10204
p6810189_10204_Linux-x86-64.zip
注:補丁如果不需要,不用升級也可以,我自己就沒有升級。

三、系統安裝注意

系統安裝時一定要安裝桌面模式,否則無法安裝oracle,另外請勿開啟SELinux,oracle官方不建議使用SELinux,CentOS的防火牆也請暫時關閉,減少安裝時的困擾。但是筆者在之前安裝CentOS7時,沒有點選安全模塊,所有系統的防火牆模塊沒有裝,這直接導致後面測試遠程連接時花費了我很長時間,詳見後面的描述,這裡裝沒裝關系不大,裝的話按照接下來的步驟關閉防火牆,沒裝的話可以先忽略。可以使用如下命令查看。

#service iptables status 

為防止Oracle安裝過程中出現亂碼,建議使用英文作為系統語言,進行Oracle的安裝工作。

本文中所描述的系統命令,未經特殊標示,均為“#”代表root權限,“$”代表oracle權限。

四、安裝Oracle前的系統准備工作

首先,請先以root賬號登入作一些前置設定作業。

1.關閉防火牆、禁用SELinux

1) 重啟後生效 (建議使用)

#systemctl enable iptables.service
#systemctl disable iptables.service 

2) 即時生效,重啟後失效

#service iptables start 
#service iptables stop 

接下來修改SELINUX=disabled,然後重啟。

# vi /etc/selinux/config

這裡寫圖片描述

2.安裝依賴包

Oracle10g R2官方文檔要求的安裝包:
這裡寫圖片描述

查看Oracle相關包是否已經安裝,輸入如下圖中的命令,注意不要輸錯或者漏輸,檢查相關的包有沒有安裝。
這裡寫圖片描述

根據輸出的信息,安裝缺少的包。這裡使用yum安裝。具體的因系統內安裝的包不同而不同,可能有些讀者的已經有了。

# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

這裡寫圖片描述

最後還要安裝libXp這個Library,這個一定要安裝,否則安裝Oracle時會出現java Exception。

# yum install libXp

這裡寫圖片描述

3、創建Oracle用戶與組

在這裡只討論單主機環境,不考慮RAC環境的配置。
執行以下指令以新增oracle安裝時所需要的使用者與群組。

(1) 建立群組oinstall

# groupadd oinstall

(2) 建立群組dba

# groupadd dba

(3) 新增使用者oracle並將其加入oinstall和dba群組

# useradd -m -g oinstall -G dba oracle

(4) 測試oracle賬號是否建立完成

# id oracle

(5) 建立oracle的新密碼

# passwd oracle

這裡寫圖片描述

4.將oracle使用者加入到sudo群組中

# vi /etc/sudoers

找到

root        ALL=(ALL)        ALL 

這行,並且在底下再加入

oracle        ALL=(ALL)        ALL

輸入wq!(由於這是一份只讀文檔所以需要再加上!)並且按下Enter
這裡寫圖片描述

5.配置系統內核參數

# vi /etc/sysctl.conf

添加以下內容:

kernel.shmall = 4294967296 //表示系統一次可以使用的共享內存總量(以頁為單位)。缺省值就是2097152,通常不需要修改
kernel.shmmax = 68719476736 //定義了共享內存段的最大尺寸(以字節為單位)。缺省為32M,對於oracle來說,該缺省值太低了,通常將其設置為2G
kernel.shmmni = 4096 //用於設置系統范圍內共享內存段的最大數量。該參數的默認值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128 //表示設置的信號量
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304 //默認的接收窗口大小
net.core.rmem_max=4194304 //接收窗口的最大大小
net.core.wmem_default=262144 //默認的發送窗口大小
net.core.wmem_max=262144 //發送窗口的最大大小
vm.hugetlb_shm_group=501 //這裡501是oracle用戶組dba的gid,原文這裡沒有配置,這裡一定要配置,要不然後面每次重啟後,啟動oracle實例都會碰到一個錯誤,具體的在下文會說到。

會有一些與目前的參數重復的,就修改成文件上提供的。
這裡寫圖片描述

編輯完之後,儲存,然後執行:

# sysctl -p

啟用剛剛所做的變更。
這裡寫圖片描述

6、編輯/etc/security/limits.conf

# vi /etc/security/limits.conf

添加以下四行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
這裡寫圖片描述

7、編輯/etc/pam.d/login

# vi /etc/pam.d/login

添加以下兩行
session required /lib64/security/pam_limits.so
session required pam_limits.so
這裡寫圖片描述

8、修改/etc/profile

# vi /etc/profile

將以下代碼新增到profile檔案中。添加代碼的時候,千萬注意,在這裡的語法中,if和[]之間,還有=兩邊,都是需要空格的,如果不加空格,之後執行到這裡的代碼的時候會報錯。

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi 

這裡寫圖片描述

9、修改Linux發行版本信息

由於Oracle 10g發行的時候,CentOS 6/7沒有發行,所以Oracle 10g並沒有對CentOS 6/7確認支持,需要修改文件讓Oracle 10g支持CentOS 6/7。
我們需要手工修改Linux的發行注記,讓Oracle 10g支持CentOS 6/7。
編輯/etc/redhat-release文件

# vi /etc/redhat-release

將其中的內容CentOS Linux release 7.1 .1503(Core)修改為redhat 4。下圖中為博原文圖片,這裡修改方式一樣。
這裡寫圖片描述

10、創建Oracle安裝文件夾以及數據存放文件夾

#mkdir /opt/oracle
#mkdir /opt/oracle/102
#chown -R oracle:dba /opt/oracle

這裡寫圖片描述

11、配置Linux主機
檢查/etc/hosts文件中是否有localhost的記錄(指向127.0.0.1即可),若沒有的話,在後面配置Oracle監聽的時候會出現一些問題,導致無法啟動監聽,在此手工添加此記錄即可。
這裡寫圖片描述

第一階段到此完畢,接下來,完成這些設定之後,請先注銷root賬號,並且以oracle賬號再次登入系統。

12、配置oracle用戶環境變量

$ cd /home/oracle
$ vi .bash_profile

修改並加入以下內容

ORACLE_BASE=/opt/oracle                      //上面創建的Oracle安裝文件夾
ORACLE_HOME=$ORACLE_BASE/102
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

這裡寫圖片描述

保存後使用如下命令,使設置生效:

$ source /home/oracle/.bash_profile

五、安裝Oracle,並進行相關設置

1.解壓縮安裝文件

將下載的10201_database_linux_x86_64.cpio放至即將安裝oracle的文件夾/opt/oracle
回到終端模式並且進入到oracle文件夾:

$ cd /opt/oracle

解壓縮10201_database_linux_x86_64.cpio

$ cpio -idmv < 10201_database_linux_x86_64.cpio

接著會看到一連串的解壓縮動作。
這裡寫圖片描述

解壓縮完成會在同一個文件夾中看到database的文件夾,請進入到database文件夾中:

$ cd database

2.准備執行數據庫安裝

如果你的centos是中文環境,安裝時會出現中文亂碼,請下以下指令

$ export LANG=en_US

接著執行

$ ./runInstaller

這裡寫圖片描述

到這裡為止,可能會遇到如下幾個錯誤:

(1)報異常,無法看到安裝界面,請使用root帳戶執行如下命令後再運行安裝程序:

Can’t connect to X11 window server using ‘:0.0’

(2)報java異常,大概是找不到libXp

Exception in …… /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

不同機器可能因之前做過不同的設置,這裡遇到的異常順序可能不一樣,下面按照原文的順序說明,讀者按需查看。

對於第一個問題,切換到root下執行以下命令

# su root // 輸入密碼步驟省略

# export DISPLAY=:0.0 //注意=兩邊無空格,:兩邊也沒有。
# xhost + 127.0.0.1 
$ ./runInstaller

上述代碼是按照原文加上網上查閱的資料整理的,沒有經過實際測試,因為我已經裝好啦。我是按照另一種方式的,直接重啟機器,然後用oracle用戶登錄,就可以了,因為之前自己一直用的admin賬戶登錄,而且執行上面的代碼忘了切換root,所以沒能按照上面的解決方式解決,只好重啟機器,用oracle賬戶登錄。不過登錄後執行安裝前別忘了執行一下下面的指令,防止亂碼。

$ export LANG=enUS 

對於第二個問題,解決方式比較簡單。

首先報異常Exception in …… /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
這裡寫圖片描述

解決:

# yum -y install libXp.i686

分析:看報錯信息”/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory”,libXp需要安裝i386的包,而不能安裝X64的包。上面認為64位的linux需要安裝64位的libXp包,所以導致這個問題。

再次執行

$ ./runInstaller

遇到錯誤:Exception in …… /lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
這裡寫圖片描述

解決:

# yum -y install libXt.i686

再次執行

$ ./runInstaller

遇到錯誤:Exception in …… /lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
這裡寫圖片描述

解決:

# yum -y install libXtst.i686

再次執行

$ ./runInstaller

開始執行安裝程序。
這裡寫圖片描述
<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="hljs vala">由於相關的前置作業已經在之前做好了,在這個步驟只需要將UNIX DBA Group選擇為dba以及輸入SYS, SYSTEM等賬號共享的database Password即可。
:筆者在走到這個步驟時,其實安裝界面裡面的Oracle Home Location包括之後的一些路徑都和圖中不太一樣,不過沒關系,為了保證之後的路徑一直,方便學習,這裡可以手動修改為和圖中一樣的路徑,前提是你前面也建立了路徑/opt/oracle/102。後面的一些設置也類似。

然後選擇Next即可。

這裡寫圖片描述

同樣的,將路徑設置為圖中路徑,將群組選擇為dba群組,按Next

在這個步驟中,請點選Checking Network Configuration requirements為User Verified,接著按下Next
這裡寫圖片描述

最後出現Install Summary畫面,此時只要按下Install按鈕,系統即開始安裝。

這裡寫圖片描述

安裝過程…
這裡寫圖片描述

安裝進度大約到65%時會有錯誤提示:

Error in invoking target ‘collector’ of makefile
‘/opt/oracle/102/sysman/lib/ins_emdb.mk’.

這裡寫圖片描述

同時oraInventory/logs/目錄下的安裝日志文件裡面會有如下類似錯誤提示:
這裡寫圖片描述

這是oracle安裝程序的一個bug,可以忽略此錯誤繼續安裝,對系統沒什麼影響。

在Configuration Assistants 時會出現錯誤提示:

OUI-25031:Some of the configuration assistants failed.

這裡寫圖片描述

分析:主機名映射錯誤

解決:修改/etc/hosts文件,增加IP地址與主機名的映射如下:
這裡寫圖片描述

接著可能會遇到錯誤提示(未遇到可以忽略,也可以看一下不遇到的原因):

ORA-27125:unable to create shared memory segment

這裡寫圖片描述

為什麼這裡說可能,因為這個錯誤的解決方式就是(下面兩個小步驟先不要執行,讀一下後面的說明先):
(1) 確定安裝oracle所使用的用戶組

# id oracle

可以看到oracle組dba id 為501。

(2)修改內核參數

echo "501" >/proc/sys/vm/hugetlb_shm_group

就可以了。
這裡寫圖片描述

說明:這個過程我們可能並不會再遇到,因為之前在安裝准備工作時,我們已經將該步驟執行過了。

之所以在前面就將該參數配置好,

vm.hugetlb_shm_group=501 //這裡501是oracle用戶組dba的gid,原文這裡沒有配置,這裡一定要配置,要不然後面每次重啟後,啟動oracle實例都會碰到一個錯誤,具體的在下文會說到。

是因為原文這裡提供的解決方式,在每次重啟之後,又得執行一次,否則失效,還會遇到這個問題,包括後面安裝好之後,啟動數據庫實例,也會遇到這個問題。但是在前面在內核參數裡添加之後,便一勞永逸了。
大家這裡可以執行以下下面的命令看下,如果前面設置了,這裡應該是dba的用戶組id而不是0。

echo /proc/sys/vm/hugetlb_shm_group

跳過這個梗。

安裝到數據庫設置助理,可以在這邊選取password management作密碼的修改,如不需要修改,只需要按下ok按鈕即可。

這裡寫圖片描述

安裝完成前,出現以下的設置腳本:

這裡寫圖片描述

開啟一個新的終端,su到root。

將要求執行的兩段script依序執行。

/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/102/root.sh

這裡寫圖片描述

執行畫面如上圖。
執行完後,回到安裝窗口按下OK完成所有的oracle安裝。安裝完成會出現以下畫面。
這裡寫圖片描述

此時,您可以以上述網址,作為測試,登入賬號可以為sys或system
http://CentOS-Oracle:5560/isqlplus
http://CentOS-Oracle:5560/isqlplus/dba
http://CentOS-Oracle:1158/em

這裡寫圖片描述

以上畫面都成功代表oracle已經正常安裝了。

原博文到這裡還沒有結束,後面又對oracle進行了升級,如果有需要的可以去原文參考,因為我沒測試,這裡就不搬過來了,傳送門:

如果後面我也升級了,再來整理下centos7下的與原文的出入的地方。同時後面還會寫一篇關於設置開機自啟動的文章,也因為centos7和6的不同的原因饒了一些彎路,有需要的到時候可以去看看。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved