Ubuntu12.04(32位)安裝Oracle 11g(32位)全過程

zhenghaishu發表於2014-08-11
Ubuntu12.04(32位)安裝Oracle 11g(32位)全過程

1.將系統更新到最新:
sudo apt-get update
sudo apt-get dist-upgrade

2.安裝Oracle所需的依賴包:
sudo apt-get install automake
sudo apt-get install autotools-dev
sudo apt-get install binutils
sudo apt-get install bzip2
sudo apt-get install elfutils
sudo apt-get install expat
sudo apt-get install gawk
sudo apt-get install gcc
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
sudo apt-get install ia32-libs
sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install lesstif2
sudo apt-get install lesstif2-dev
sudo apt-get install lib32z1
sudo apt-get install libaio1
sudo apt-get install libaio-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6-dev-i386
sudo apt-get install libc6-i386
sudo apt-get install libelf-dev
sudo apt-get install libltdl-dev
sudo apt-get install libmotif4
sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
sudo apt-get install libpth-dev
sudo apt-get install libpthread-stubs0
sudo apt-get install libpthread-stubs0-dev
sudo apt-get install libstdc++5
sudo apt-get install lsb-cxx
sudo apt-get install make
sudo apt-get install openssh-server
sudo apt-get install pdksh
sudo apt-get install rlwrap
sudo apt-get install rpm
sudo apt-get install sysstat
sudo apt-get install unixodbc
sudo apt-get install unixodbc-dev
sudo apt-get install unzip
sudo apt-get install x11-utils
sudo apt-get install zlibc
很多都是Ubuntu已經自帶的了,謹慎起見都執行一遍吧。

3.檢查系統變數
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep aio-max
/sbin/sysctl -a | grep ip_local_port_range
/sbin/sysctl -a | grep rmem_default
/sbin/sysctl -a | grep rmem_max
/sbin/sysctl -a | grep wmem_default
/sbin/sysctl -a | grep wmem_max

然後根據上面命令中得到的引數值在/etc/sysctl.conf中增加對應資料,比如:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152kernel.shmmax = 536870912
kernel.shmmni = 4096kernel.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 = 1048586

執行一下命令更新核心引數:
sysctl –p

4.新增對當前使用者(假如使用者名稱是zhs)使用者的核心限制在 /etc/security/limits.conf 檔案中增加以下資料
zhs        soft    nproc        2047
zhs        hard    nproc        16384
zhs        soft    nofile        1024
zhs        hard    nofile        65536
zhs     soft    stack        10240

5.檢視/etc/pam.d/login,增加以下行(有了就不用增加了):
session required pam_limits.so
同樣檢查/etc/pam.d/su,沒有以下行就自己加上:
session required pam_limits.so

6.建立需要的資料夾(用於安裝oracle)並設定其所有權:
sudo mkdir -p /opt/oracle
sudo mkdir -p /opt/oraInventory
sudo chown -R zhs:zhs /opt/oracle
sudo chown -R zhs:zhs /opt/oraInventory
後兩步中,第一個zhs代表當前使用者,第二個zhs代表當前使用者所在的組,linux使用者通常屬於好幾個組,其中有一個組名和使用者名稱相同。這兩步可能可以不用執行,因為那兩個目錄本身就是zhs建立的。

7.安裝JRE環境
如果Ubuntu上沒安裝JRE的話,需要安裝JRE(我這裡直接安裝了JDK,以JDK為例):
到Oracle官網下載JDK6(考慮到相容性問題,安裝6):
下載jdk-6u45-linux-i586.bin這個檔案。放到主資料夾(home目錄)下,進入終端:
$sudo chmod 777 jdk-6u37-linux-x64.bin // 將檔案賦予執行許可權
$sudo -s ./jdk-6u37-linux-x64.bin /usr/lib/jdk //將JDK安裝到/usr/lib/jdk 目錄下。
注意:最後安裝完成後可能安裝到了主資料夾下了,這時使用命令將其全部複製到/usr/lib/jdk目錄下即可。(如果沒有許可權,就使用sudo chmod 777獲取許可權再複製)
配置JDK的環境變數,使用編輯器開啟主資料夾下的.bashrc配置檔案(隱藏),向其中加入如下內容:
#JDK
JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
注意核對一下目錄結構是不是正確的。
接著使新設的環境變數生效,在終端執行命令:source .bashrc
最後驗證JDK是否安裝正確:
java -version
出現了JDK版本資訊就表示正確了。

8.為Oracle配置環境變數。同樣在主資料夾下的.bashrc配置檔案中加入如下內容:
#Oracle
#這個寫剛剛建立的資料夾
export ORACLE_BASE=/opt/oracle
#這個後面可以隨便填寫
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#資料庫的sid
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
#預設字符集
export NLS_LANG=.AL32UTF8
#環境變數
export PATH=${PATH}:${ORACLE_HOME}/bin/;

接著使新設的環境變數生效,在終端執行命令:source .bashrc

9.oracle本身並不支援ubuntu來安裝,所以要進行欺騙oracle的安裝程式(sudo執行):
ln -s /etc /etc/rc.d
ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /lib/
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /lib/
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib/

sudo touch /etc/redhat-release
sudo echo ‘Red Hat Linux release 5’ > /etc/redhat-release

因為Ubuntu將某些庫檔案根據32位系統和64位系統分別存放了,但Oracle只認/usr/lib和/lib目錄,所以需要進行上面的軟連結。

10.下載32位(x86)的Oracle for Linux安裝程式,解壓後得到database資料夾  

11.在終端設定語言環境
export LANG=en_US或者export LANG=zh_CN.gbk
這一步如果不設的話,Oracle安裝程式的啟動介面可能會出現亂碼。

12.為database資料夾下的runInstaller檔案賦予可執行許可權:
sudo chmod 777 runInstaller
跳轉到database目錄,在終端下執行:
./runInstaller

13.出現填寫電郵地址的介面,電郵地址不要填寫且核取方塊不要勾選,點選“下一步”按鈕。彈出帶叉號標誌的提示點選“YES”按鈕後就可進入下一步。

14.剩下的過程基本上很順利了,只需要設定一下密碼就行了,其他的設定都在啟動安裝程式前完成了,不要進行改動!

15.圖形介面下進行依賴檢查的時候會列出很多依賴檢查失敗了,無法進入下一步了,此時選中右上角的“忽略所有”就可以進入下一步了。

16.安裝的過程會出現兩個錯誤(接近70%的時候)
第一個錯誤:
Error in invoking target 'agent nmhs' of makefile 'opt/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. See '/opt/oraInventory/logs/installActions2014-08-09_03-15-56AM.log' for details.

解決方法:
開啟一個新的終端,輸入如下命令:
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
然後在圖形介面點選‘Retry’就能繼續安裝了。

第二個錯誤:
Error in invoking target 'all_no_orcl' of makefile '/opt/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/opt/oraInventory/logs/installActions2014-08-09_03-16-32AM.log' for details.

解決方法:
在新終端中輸入如下四個命令:
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
然後在圖形介面點選‘Retry’就能繼續安裝了。
下面的安裝過程就沒有什麼問題了。

17.最後應該就順利完成了,按照安裝程式提示最後執行兩個指令碼:
sudo /opt/oraInventory/orainstRoot.sh
sudo /opt/oracle/product/11.2.0/dbhome_1/root.sh
就完成了全部的安裝。



注:本人用ubuntu12.04和12.10,按照此方法裝oracle都成功了
參考資料:http://blog.csdn.net/idber/article/details/9039857

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

相關文章