ubuntu14.04(amd64)安裝Oracle_linux_x64_11gR2

如果你還沒有安裝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 http://extras.ubuntu.com/ubuntu trusty main 
deb-src http://extras.ubuntu.com/ubuntu trusty main 
deb http://archive.ubuntu.com/ubuntu/ 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下面中文亂碼問題 
參考原文: 
http://blog.csdn.net/hymer2011/article/details/6888344 
根本原因:是因爲linux下的jre下面沒有中文字體 
解決方案:從windows系統的fonts裏面淘一個過來用 
控制檯代碼:cd $JAVA_HOME/jre/lib/fonts   這裏JAVA_HOME前面有$ 
                        sudo mkdir fallback 
                        cd fallback 
                        cp /home/user/msyh.ttf    ./  注:msth.ttf是微軟雅黑,拷貝其他的字庫也行,前提是支持中文 
                        sudo mkfontdir 
                        sudo mkfontscale 
再重啓一下sqldeveloper就行了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章