日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法

發(fā)布時間:2023/12/10 Ubuntu 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這兩天在Ubuntu上安裝Oracle把人折騰毀了,即使照著網(wǎng)上的教程來,還是出了很多問題。好在最后終于搞定了。寫出來總結(jié)一下,免得以后忘了。

標題注明32位是因為網(wǎng)上教程幾乎全是以64位安裝為例的,32位系統(tǒng)下照著做是絕對會安裝失敗的。

出現(xiàn)的問題主要有兩方面,一個是安裝過程中出現(xiàn)的,另一個是安裝完成后出現(xiàn)的。

安裝過程(主要過程就直接copy別人的教程了)及問題:

1.將系統(tǒng)更新到最新:

sudo apt-get update
sudo apt-get dist-upgrade

2.如果使用的Ubuntu不是桌面版(如Ubuntu server),由于Oracle安裝需要用到圖形界面,所以需要安裝桌面程序:

sudo apt-get install gnome-core

相信很多都是使用的桌面版,那么這個步驟就不需要了。

3. ?安裝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自帶的了,謹慎6起見都執(zhí)行一遍吧。

4.創(chuàng)建用戶(此步可省略,直接使用當前的用戶即可,下面的安裝過程都是以不執(zhí)行這一步為準的)
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba ?-d /opt/oracle -s /bin/bash oracle
sudo passwd oracle
5.檢查系統(tǒng)變量

/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


然后根據(jù)上面命令中得到的參數(shù)值在/etc/sysctl.conf中增加對應數(shù)據(jù),比如:
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
運行一下命令更新內(nèi)核參數(shù):
sysctl –p

6.添加對oracle用戶的內(nèi)核限制在 /etc/security/limits.conf 文件中增加以下數(shù)據(jù)
oracle ? ? ? ? ? ? ?soft ? ?nproc ? 2047

oracle ? ? ? ? ? ? ?hard ? ?nproc ? 16384

oracle ? ? ? ? ? ? ?soft ? ?nofile ?1024

oracle ? ? ? ? ? ? ?hard ? ?nofile ?65536

oracle ? ? ? ? ? ? ?soft ? ?stack ? 10240
其中oracle是在第四步中創(chuàng)建的用戶,跳過第四步的話就寫當前用戶

7.查看/etc/pam.d/login,增加以下行(有了就不用增加了):

session required pam_limits.so
同樣檢查/etc/pam.d/su,沒有以下行就自己加上:

session required pam_limits.so

7.創(chuàng)建需要的文件夾(用于安裝oracle)并設置其所有權(quán):
mkdir -p /opt/oracle
mkdir -p /opt/oraInventory

chown -R oracle:oinstall??/opt/oracle

chown -R oracle:oinstall??/opt/oraInventory

同樣,如果跳過了第四步,那就將所有權(quán)設置命令中的用戶oracle和組oinstall改為自己當前用戶和組(通常二者是一樣的),當然這時也可以不執(zhí)行這兩個chown命令,本來目錄創(chuàng)建者就是所有者了。另外,需要root權(quán)限執(zhí)行這些命令(sudo,下同)

8.如果Ubuntu上沒安裝JRE的話,需要安裝JRE(我這里直接安裝了JDK,以JDK為例):

到Oracle官網(wǎng)下載JDK6(最新為7,考慮到兼容性問題,安裝6):

http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html

下載jdk-6u45-linux-i586.bin這個文件。放到主文件夾(home目錄)下,進入終端:

$sudo chmod 777 jdk-6u37-linux-x64.bin ? // 將文件賦予運行權(quán)限 ?

$sudo -s ./jdk-6u37-linux-x64.bin /usr/lib/jdk ?//將JDK安裝到/usr/lib/jdk 目錄下。

注意:最后安裝完成后可能安裝到了主文件夾下了,這是使用命令將其全部復制到/usr/lib/jdk目錄下即可。(如果沒有權(quán)限,就使用sudo chmod 777獲取權(quán)限再復制)

配置JDK的環(huán)境變量,使用編輯器打開主文件夾下的.bashrc配置文件(隱藏),向其中加入如下內(nèi)容:

#JDK
JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
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};

注意核對一下目錄結(jié)構(gòu)是不是正確的。

最后驗證JDK是否安裝正確:

java -version

出現(xiàn)了JDK版本信息就表示正確了。

9.為Oracle配置環(huán)境變量。同樣在主文件夾下的.bashrc配置文件中加入如下內(nèi)容:

#Oracle
#這個寫剛剛創(chuàng)建的文件夾
export ORACLE_BASE=/opt/oracle?
#這個后面可以隨便填寫
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#數(shù)據(jù)庫的sid
export ORACLE_SID=orcl

export ORACLE_UNQNAME=orcl
#默認字符集
export NLS_LANG=.AL32UTF8
#環(huán)境變量
export PATH=${PATH}:${ORACLE_HOME}/bin/;

10.oracle本身并不支持ubuntu來安裝,所以要進行欺騙oracle的安裝程序(sudo執(zhí)行):

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/


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

注意:以上命令是對應于32位Ubuntu安裝32位Oracle的,如果是64位Ubuntu安裝64位Oracle,上面的i386-linux-gnu就都要改成x86_64-linux-gnu,目標目錄的lib也要改成lib64.(沒有l(wèi)ib64就新建一個)

因為Ubuntu將某些庫文件根據(jù)32位系統(tǒng)和64位系統(tǒng)分別存放了,但Oracle只認/usr/lib和/lib目錄,所以需要進行上面的軟鏈接。

11.下載Oracle安裝程序:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

下載Linux x86的那兩個文件(64位系統(tǒng)就下Linux x86-64),解壓后得到database文件夾。

12.正式安裝Oracle,為database文件夾下的runInstaller文件賦予可執(zhí)行權(quán)限:

chmod 777 runInstaller

跳轉(zhuǎn)到database目錄,在終端下執(zhí)行:

./runInstaller

此時可能會出現(xiàn)database目錄下部分文件的權(quán)限不足,導致安裝程序無法啟動的問題,根據(jù)提示,對那些文件使用chmod 777進行授權(quán)就行了(貌似一共3個文件)。

啟動安裝圖形界面后,可能會發(fā)現(xiàn)文字亂碼,全是口口口:


這時可以關(guān)閉該界面,先在終端輸入:

export LANG=en_US

或者

export LANG=zh_CN.gbk

然后再執(zhí)行:

./runInstaller

就可以在全英文界面下進行安裝了。

13.安裝前進行swap空間檢查時可能出現(xiàn)swap空間太小的問題,這一般是由于系統(tǒng)安裝時沒有創(chuàng)建swap分區(qū),解決辦法是創(chuàng)建swap文件來開辟swap空間:

通過下面方法建立swap文件:
#dd if=/dev/zero of=/tmp/swapfree bs=32k count=65515 (count是分區(qū)數(shù)量,swap大小=bs*count,增加2G)
#mkswap /tmp/swapfree (格式化交換分區(qū)文件)
#swapon /tmp/swapfree (啟用交換分區(qū)文件)
#swapon –s (顯示swap狀態(tài))
修改/etc/fstab,讓系統(tǒng)每次啟動都把/tmp/swapfree作為swap使用,增加下面一行:
/tmp/swapfree swap swap defaults 0 0

14.圖形安裝界面的第一步是填寫電子郵件,但是填完可能會出錯:Unexpected error occurred while validating inputs at state 'getOCMDetails'。這是由于缺少pdksh依賴包,簡單的解決辦法是不填寫郵件地址,不勾選下面的復選框,直接下一步,彈出提示后點‘Yes’就能直接進入下一步了。完美的解決辦法可以到網(wǎng)上去看。


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

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

17.如果沒有嚴格按照前面的要求做,安裝過程中可能彈出錯誤,此時不要關(guān)閉界面,根據(jù)給出的日志位置,在日志中查看錯誤出現(xiàn)的原因,一般都是指定位置找不到相應的文件導致的,此時打開一個新的終端窗口,找到這些文件并將文件復制到對應的位置或者創(chuàng)建軟鏈接即可。(通常是/usr/lib目錄下找不到庫文件,這些庫文件都位于/usr/lib/i386-linux-gnu目錄下了)然后在圖形界面點擊“Retry‘即可繼續(xù)安裝。

比如:“error in invoking target 'client_sharedlib' of makefile '/opt/oracle11g/server/rdbms/lib/ins_rdbms.mk''這個錯誤就是沒有執(zhí)行:

?

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

這兩個命令導致的(針對32位安裝的情況)。

如果嚴格按照前面的要求做了,上面這種錯誤是不會出現(xiàn)的。另外,如果32位系統(tǒng)安裝64位Oracle或者64位系統(tǒng)安裝32位Oracle也是會彈出錯誤的,錯誤提示是這樣的:

Error in invoking target 'client_sharedlib' of makefile '/opt/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'

這種錯誤就只能重新下載正確的Oracle版本再進行安裝了。


18.即使嚴格按照要求做了,還是會出現(xiàn)兩個錯誤:

a.


解決辦法:

打開一個新的終端,輸入如下命令:

sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

然后在圖形界面點擊‘Retry’就能繼續(xù)安裝了。

b.


解決辦法:

打開一個新的終端,輸入如下四個命令:

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’就能繼續(xù)安裝了。

下面的安裝過程就沒有什么問題了。

19.最后應該就順利完成了,按照安裝程序提示最后執(zhí)行兩個腳本:

sudo /opt/oraInventory/orainstRoot.sh
sudo /opt/oracle/product/11.2.0/dbhome_1/root.sh

就完成了全部的安裝。可以通過https://localhost:1158/em進行網(wǎng)絡訪問了。

安裝后的問題

a.終端下使用“emctl start dbcontrol”命令啟動em控制臺時出現(xiàn):Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.的問題,解決辦法是設置一個UNQNAME :export ORACLE_UNQNAME=xxxx.

b.設置完成后

在終端使用emctl命令關(guān)閉或啟動dbconsole(emctl stop dbconsole ?,?emctl start dbconsole)的時候還可能出錯:

OC4J Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl not found.
EM Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl not found.

出現(xiàn)這種錯誤的原因是Oracle會根據(jù)獲取到的系統(tǒng)主機名來選擇使用相應的EM資料庫關(guān)閉或啟動em控制器,比如Ubuntu系統(tǒng)安裝時給主機起了個pavilion的名稱,Oracle獲取到的主機名就是pavilion,然后會尋找OC4J_DBConsole_pavilion_orcl 和pavilion_orcl這兩個資料庫完成關(guān)閉或啟動em控制器的任務。但是Oracle本身只會根據(jù)$ORACLE_HOME/NETWORK/ADMIN/listener.ora文件中的主機名創(chuàng)建資料庫。listener.ora中的HOST默認是localhost,所以Oracle默認創(chuàng)建的資料庫是OC4J_DBConsole_localhost_orcl 和localhost_orcl。因此才出現(xiàn)上述找不到資料庫的問題。

解決此問題的辦法是:

將$ORACLE_HOME/NETWORK/ADMIN/listener.ora文件中的HOST=localhost改為HOST=pavilion(paviliion為你的主機名),然后在相應位置完整復制OC4J_DBConsole_localhost_orcl 和localhost_orcl并重命名為OC4J_DBConsole_pavilion_orcl 和pavilion_orcl:

cp -rp?/opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_localhost_orcl ?/opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl?

cp -rp?/opt/oracle/product/11.2.0/dbhome_1/localhost_orcl ?/opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl?

如此就能正常啟動和關(guān)閉dbcontrol了。

或者可以直接使用

emca -config dbconsole db

命令重新配置一下資料庫也可以解決。

另外,修改了Ubuntu主機名或IP地址后同樣會導致這樣的問題,解決辦法也是一樣的。

另附EM資料庫配置教程:http://ginaduxuefang.iteye.com/blog/1545144

c.EM控制臺中的按鈕都是口口亂碼,其他正常。這是由于Java字體缺失導致的,因為EM的按鈕都是Java生成的。解決辦法是:

在JDK(或JRE)的字體文件夾下新建中文字體目錄fallback,并將Windows系統(tǒng)下的simsun.ttc字體文件復制到fallback下,然后將其改名為simsun.ttf并授予恰當權(quán)限:

$ mkdir $ORACLE_HOME/jdk/jre/lib/fonts/fallback

$ cp simsun.ttc ?$ORACLE_HOME/jdk/jre/lib/fonts/fallback/

$mv??$ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttc ?$ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf

$chmod 444?$ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf

后需要清理一下Cache,重啟EM即可:
$ rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
$ emctl stop dbconsole
$ emctl start dbconsole
登陸Web頁面查看,EM顯示就可以正常顯示中文了.

?

d.在終端運行sqlplus ?/ as sysdba命令進入SQLPlus工具時可能出現(xiàn)錯誤:

sqlplus: error while loading shared libraries: ?/u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

這是由于SELinux導致的,解決辦法是禁用SELinux:

?

更改

/etc/sysconfig/selinux?

文件的內(nèi)容為

?

SELINUX=disabled

,然后重啟

更改/etc/sysconfig/selinux 文件的內(nèi)容為 SELINUX=disabled,然后重啟。

或者使用chcon命令:

chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so?

e.啟動Linstener時可能出現(xiàn)錯誤:

TNS-12555: TNS:permission denied?

原因是無法訪問/var/tmp/.oracle文件夾,解決辦法是進行授權(quán):

sudo chmod 777?/var/tmp/.oracle

f.系統(tǒng)關(guān)機后每次開機都必須手動啟動Oracle,可以編寫一個自啟動腳本實現(xiàn)每次開機自動啟動Oracle,附Oracle啟動/關(guān)閉方法以及開機自啟動腳本:

http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html

g.卸載Oracle的方法:

1. 運行 $ORACLE_HOME/bin/localconfig delete   ?
2. rm -rf $ORACLE_BASE/*   ?
3. rm -f /etc/oraInst.loc /etc/oratab   ?
4. rm -rf /etc/oracle   ?
5. rm -f /etc/inittab.cssd   ?
6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv?
7. rm -rf $ORCLE_HOME?




轉(zhuǎn)載于:https://www.cnblogs.com/xshrim/archive/2013/06/06/4048958.html

總結(jié)

以上是生活随笔為你收集整理的Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。