如果你還沒有安裝Ubuntu系統或是感覺自己的Ubuntu系統版本低,想換的話,請在分區時,把交換分區(swap)設定得大一些(最少4G),
困擾了一周,,終于弄出來了。網上教程雖多,但大都是只言片語的截取,外加個體安裝情況各異,很多地方還是需要自己解決 。
現記錄下來,給自己留檔,順便供需要的人參考
如果你還沒有安裝Ubuntu系統或是感覺自己的Ubuntu系統版本低,想換的話,請在分區時,把交換分區(swap)設定得大一些(最少4G)
要不在安裝Oracle做前置條件檢查時,他會提示交換空間不夠,Oracle要求swap最少為3.69G
*oracle的安裝前提:保證機器已安裝jdk
ubuntu linux默認有自己的OpenJdk,交給超級牛力去做就行,終端鍵入:
$sudo apt-get install openjdk-7-jre
$sudo apt-get install openjdk-7-jdk
(ps:我因為對ubuntu不熟悉,一上來自己安裝了從官網下的jdk 1.7_u60 for linux 所以后來機器有兩個jdk,萬幸也沒沖突,懶得理了)
jdk安完以后可以去終端看一下版本信息:
java -version
下面開始進入正題,安裝oracle:
1.更新系統:(這步我沒做,14.04是ubuntu最新一版系統,系統服務差不多都是比較新的版本,外加自己手工安過一堆deb包)
sudo apt-get update
sudo apt-get dist-upgrade
*2.安裝依賴包,很重要的一步
看一下自己的軟件源,因為大多數情況要在上面增加源地址,所以用gedit不用cat
sudo gedit /etc/apt/sources.list
這樣可以打開你現有的源列表。(注意是sources,不是source)
為了能順利安裝32位兼容包ia32-libs,需要在源中增加這些行(也有人說裝了g++-multilib就不用考慮ia32-libs了,我沒試過):
deb trusty main
deb-src trusty main
deb raring main restricted universe multiverse
更新源文件后保存。
下面就可以利用超級牛力執行依賴包的安裝,下面的全部要裝上,否則后頭圖形界面安裝途中會報錯,仔細一個一個查一遍,終端鍵入:
sudo apt-get install bzip2
sudo apt-get install elfutils
sudo apt-get install automake
sudo apt-get install autotools-dev
sudo apt-get install binutils
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
*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中增加對應數據(上面查完以后用筆記一下吧)
sudo gedit /etc/sysctl.conf
把sysctl.conf中的以下內容用查得的值填上
fs.aio-max-nr = ?
fs.file-max = ?
kernel.shmall = ?
kernel.shmmax = ?
kernel.shmmni = ?
kernel.sem = ?
net.ipv4.ip_local_port_range = ?
net.core.rmem_default = ?
net.core.rmem_max = ?
net.core.wmem_default = ?
net.core.wmem_max = ?
運行一下命令更新內核參數:
sysctl –p
4.添加對當前用戶的內核限制在 /etc/security/limits.conf 文件中增加以下數據(XXX為你當前用戶名)
XXX soft nproc 2047
XXX hard nproc 16384
XXX soft nofile 1024
XXX hard nofile 65536
XXX soft stack 10240
5.檢查/etc/pam.d/login,增加以下行(有了就不用增加了):
session required pam_limits.so
檢查/etc/pam.d/su,沒有以下行就自己加上:
session required pam_limits.so
6.oracle默認不支持ubuntu需要欺騙一下oracle安裝程序(看不懂沒關系,按著做就行了,我也不懂):
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/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
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
7.配置oracle的環境變量
sudo gedit ~/.profile
打開.profile文件,為文件中添加以下行:
#Oracle
#這個寫你后頭要安裝的路徑
export ORACLE_BASE=/home/xxx/app/xxx
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1
#數據庫的sid
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
#環境變量
export PATH=PATH:${ORACLE_HOME}/bin/;
8.啟動oracle安裝程式開始安裝
我的安裝程序解壓在主目錄oracle11g下面
所以cd進去:cd /home/XXX/oracle11g
為了不亂碼,終端先export LANG=US一下
再運行目錄下面的runInstaller: ./runInstaller
可進入圖形化安裝界面,接著根據安裝向導提示做就行了
先決條件檢查會提示一堆fails,不用管它,直接把ignore All挑上,直接finish
這里要提一句,如果你的swap空間不夠的話,會提示交換空間不夠,不能繼續
解決方式:
可以另開一個終端用下面的命令臨時提升交換空間,再去recheck一下,就行了:
free -m
mkdir /swapfile
cd /swapfile
sudo dd if=/dev/zero of=swap bs=1024 count=400000
sudo mkswap -f swap
sudo swapon swap
9.安裝到68%時的錯
ins_ctx.mk的錯誤提示,直接contiue跳過去
后面還回報錯:
make file '/......emagent.mk'出錯
解決方法:
另開一個終端,鍵入命令行:
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
點擊安裝界面的retry,就可以繼續了
類似的后面還會提示四次,以下面的命令行如法炮制
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
10.安裝完成會提示有兩個sh文件需要運行:
還是另開一個終端:
sudo /home/xxx/app/xxx/oracle/oraInventory/orainstRoot.sh
sudo /home/xxx/app/xxx/oracle/Oracle11gee/product/11.2.0/dbhome_1/root.sh
安裝完成!
11.運行sqlplus前測試一下oracle的環境變量
echo $ORACLE_BASE
echo $ORACLE_HOME
echo $PATH
看看是不是你配置的值,沒問題繼續向下
12.運行數據庫前測一下監聽狀態
如果監聽沒打開可以用lsnrctl start開啟
lsnrctl status
正常情況會顯示監聽信息一陀
這里如果沒有輸出,說明無監聽,需要自己配置
解決方法:
運行 netca 可以創建監聽,調出圖形界面設置監聽
如果沒有創建庫此時可以dbca 創建數據庫.
順便運行以下代碼修復 dbconsole
emca -repos drop
emca -repos create
emca -config dbcontrol db
emca start dbconsole
到此數據庫應該就可以跑起來了
啟動oracle數據庫
sqlpus /nolog
conn / as sysdba
startup
此時會顯示你創建的orcl實例已經正常加載。
13.sqldeveloper連不上oracle的問題
解決方法:使用netmgr命令
打開后Oracle Net Configuration->Local->Listeners->LISTENER->Add Address添加地址,
Protocal: TCP/IP Host: oracle所在的IP地址 Port:1521
但是在連接時可能又報下一個異常:
ORA-12505, TNS:listener does not currently know of SID given in connect desc .
無法識別數據庫的SID
此時進入/home/xxx/app/xxx/product/10.2.0/db_1/network/admin目錄
cd /home/xxx/app/xxx/product/10.2.0/db_1/network/admin,修改下面的listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /home/xxx/app/xxx/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)
上面的不用管只要是在這里添加藍色的這段
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /home/xxx/app/xxx/product/11.2.0/dbhome_1)
(SID_NAME = ORCL)
)
)
至此終于全部完成!
補充:關于sqldeveloper下面中文亂碼問題
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com