歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> ubuntu16.04安裝Oracle_linux_x64_11gR2

ubuntu16.04安裝Oracle_linux_x64_11gR2

日期:2017/3/3 12:26:07   编辑:Linux技術

ubuntu16.04安裝Oracle_linux_x64_11gR2

標簽: ubuntu16—Oracle
來來回回在ubuntu14和16上安裝了好多次oracle,有成功也有失敗,現在把整個過程記錄下來,為了以後能更方便更順利的安裝,這篇文章主要是基於在Ubuntu14上安裝完成後寫的也是參考了不少文章ubuntu14.04安裝Oracle_linux_x64_11gR2
Java的安裝
Oracle安裝前的准備
Oracle的安裝環境配置
安裝Oracle
首先你需要一個ubuntu16的虛擬機,我是在Vmware上安裝的,這裡有一個連接是關於[ubuntu16][1]的裡面有一些小技巧特別是有兩個挺好用的:
點擊縮小圖標最小化:
gsettings set org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/ launcher-minimize-window true

任務欄位置更改:
gsettings set com.canonical.Unity.Launcher launcher-position Bottom

安裝好後,進行Java的安裝,就是先下載,然後配置JDK,這裡主要記錄下JDK的環境變量的配置:
export JAVA_HOME=/opt/Java/jdk/jdk1.7

export CLASSPATH=${JAVA_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

完了之後別忘記
source .profile
一下,然後再
java -version

Oracle安裝前

在Oracle安裝之前,還需要對系統進行一系列的包的檢查,以下是將ubuntu14的步驟拷貝過來,包名也沒改,有的可以有的不可以裝,反正就是盡量都安裝了,當然也會遇到不少問題,下面就一一來看吧:
[code]sudo apt-get update
sudo apt-get dist-upgrade
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

截止到這裡會出現第一個頭疼的問題,關於ia32-libs的找了好久都沒有解決的辦法。
最後實在不行,只能用lib32z1進行替代了
[code]sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install libmotif-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-dev
sudo apt-get install libstdc++5
sudo apt-get install lsb-cxx
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

至此,安裝oracle的前奏才剛剛開始,下面是檢查系統變量

Oracle的安裝環境配置

[code]/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

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

運行一下命令更新內核參數:
[code]sudo /sbin/sysctl -p(這個地方有可能你也會報錯,原因是因為你當前的用戶不對,換個窗口就可以。)

添加對oracle用戶的內核限制在
/etc/security/limits.conf
文件中增加以下數據
[code]xxx              soft    nproc   2047
xxx              hard    nproc   16384
xxx              soft    nofile  1024
xxx              hard    nofile  65536
xxx              soft    stack   10240

這裡的xxx是你裝oracle的用戶的名字。
查看/etc/pam.d/login,增加以下行(有了就不用增加了):
同樣檢查/etc/pam.d/su,沒有以下行就自己加上:
[code]session required pam_limits.so

創建需要的文件夾(用於安裝oracle)並設置其所有權:
[code]mkdir -p /home/jovi/doc/oracle
mkdir -p /home/jovi/doc/oraInventory
chown -R oracle:oinstall  /home/jovi/doc/oracle
chown -R oracle:oinstall  /home/jovi/doc/oraInventory

將所有權設置命令中的用戶oracle和組oinstall改為自己當前用戶和組(通常二者是一樣的),當然這時也可以不執行這兩個chown命令,本來目錄創建者就是所有者了。另外,需要root權限執行這些命令(sudo,下同)。
為Oracle配置環境變量。這裡我為了保險起見,將root下與我安裝oracle的用戶下的.profile都設置了這些環境變量。
[code]#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 .profile
讓變量生效,最好的辦法就是再確定一遍:
echo $ORACLE_HOME

oracle默認不支持ubuntu需要欺騙一下oracle安裝程序(這裡是要用sudo 去執行的,或者你已經在root用戶下了):
[code]mkdir /usr/lib64 
ln -s /etc /etc/rc.d 
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/ 
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/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/libc_nonshared.a 
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a 
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/ 
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ 
echo 'Red Hat Linux release 5' > /etc/redhat-release

以上是針對64位系統的,32位就是要將上面的x86_64-linux-gnu就都要改成i386-linux-gnu。
為了解決安裝的過程中有一個報錯是關於swap文件的,這說明你之前給oracle的安裝空間太小了。
關於這個的解決辦法是:
可以另開一個終端用下面的命令臨時提升交換空間,就行了:
[code]free -m 
mkdir /swapfile 
cd /swapfile 
sudo dd if=/dev/zero of=swap bs=1024 count=4320000 //(這裡要根據你安裝oracle所需要的多大就是多大,我這個例子是4320M,依次參考)
sudo mkswap -f swap 
sudo swapon swap

安裝Oracle

下載Oracle安裝程序:這個就不用多說了,下載下來後隨便放到一個文件夾下,然後進行解壓,這裡裝過oracle的應該都熟悉,1of2和2of2解壓出來都放到database文件夾中。
正式安裝Oracle,為database文件夾下的runInstaller文件賦予可執行權限:
[code]chmod 777 runInstaller

跳轉到database目錄,為了避免後面安裝界面出現亂碼,需要在這裡輸入:
[code]export LANG=US

然後執行安裝程序
[code]./runInstaller

接下來就一步一步的執行操作:
email的那個勾去掉,不要發送。
然後一步一步走下去,當你到需要輸入密碼的那個界面輸入123456,123456,可能會違反oracle的加密規范,不用管,繼續下去。
這裡最好將character Set:AL32UTF8
安裝到68%時,ins_ctx.mk的錯誤提示,直接contiue跳過去 後面還回報錯: make file ‘/……emagent.mk’出錯,解決方法: 另開一個終端,鍵入命令行:
[code]sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

sed: 無法讀取 /sysman/lib/ins_emagent.mk: 沒有那個文件或目錄
當執行上一個命令出現這個錯誤的時候,說明你沒有將$ORACLE_HOME生效。
點擊安裝界面的retry,就可以繼續了
完了以後,又回報錯 ins_rdbms.mk的錯誤提示,這時,在終端,輸入如下四個命令:
[code]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
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

然後在圖形界面點擊‘Retry’就能繼續安裝了。
最後應該就順利完成了,按照安裝程序提示最後執行兩個腳本:
[code]sudo /home/jovi/doc/oraInventory/orainstRoot.sh   
sudo /home/jovi/doc/oracle/product/11.2.0/dbhome_1/root.sh

至此安裝成功。
終端下使用“emctl start dbconsole”命令啟動em控制台時出現
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.
出現這種錯誤的原因是Oracle會根據獲取到的系統主機名來選擇使用相應的EM資料庫關閉或啟動em控制器,比如Ubuntu系統安裝時給主機起了個
pavilion的名稱,Oracle獲取到的主機名就是pavilion,然後會尋找OC4J_DBConsole_pavilion_orcl
和pavilion_orcl這兩個資料庫完成關閉或啟動em控制器的任務。但是Oracle本身只會根據
[code]$ORACLE_HOME/NETWORK/ADMIN/listener.ora

文件中的主機名創建資料庫。listener.ora中的HOST默認是localhost,所以Oracle默
認創建的資料庫是OC4J_DBConsole_localhost_orcl
和localhost_orcl。因此才出現上述找不到資料庫的問題。 解決此問題的辦法是:
將$ORACLE_HOME/NETWORK/ADMIN/listener.ora文件中的HOST=localhost改為
HOST=pavilion(paviliion為你的主機名),然後在相應位置完整復制OC4J_DBConsole_localhost_orcl
和localhost_orcl並重命名為OC4J_DBConsole_pavilion_orcl 和pavilion_orcl:
[code]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

如此就能正常啟動和關閉dbcontrol了。
Copyright © Linux教程網 All Rights Reserved