在 Ubuntu7.04 上安裝 Oracle 10g
written by flexitime, 2007-10-15〔http://flexitime.blog.sohu.com/)
今天終于在Ubuntu7.04上成功安裝Oracle10g。為了安裝Oracle,花了不少時間到網(wǎng)上查資料,不過更多的時間用于自己的真正實踐,當(dāng)
中走了不少的彎路,現(xiàn)在把安裝過程記下來。(我一共在兩臺機器上安裝了三次,這篇文章是在安裝第三次的時候一邊操作一邊在另外的電腦上寫的)
在網(wǎng)上有不少Oracle的安裝教程,但這些教程更多的只是針對較低版本的Ubuntu(如6.X,5.X等等),而且安裝Oracle的過程中也有些問
題是沒有描述和解決的。因此,我覺得有必要自己寫一下安裝我的實踐過程,當(dāng)然,我主要還是參考了孫高勇先生的《Oracle 10g for
Ubuntu安裝指南》的內(nèi)容。
現(xiàn)在開始吧!
第一步,我們需要一個Ubuntu。當(dāng)然在網(wǎng)上可以免費下載得到,我用的是桌面版,而不是網(wǎng)站上提供的服務(wù)器版,很多剛由Windows轉(zhuǎn)過來的
朋友可能會認(rèn)為服務(wù)器版總會比桌面版多些功能,為此而下載了服務(wù)版來用。其實Ubuntu網(wǎng)上提供的下載卻不然,服務(wù)器版只不過比桌面版多了amp的軟件
(a-apache, m-mysql,
p-php),但卻沒有圖形用戶界面(可以另外再安裝,但比較麻煩)。為此,我使用了桌面版的Ubuntu來完成這次的安裝。安裝的時候雖然有中文可以選
擇,但我還是選用了英文,這不是我的英文特別好(再好也好不過母語)的緣故,而是因為Ubuntu的漢化未如理想,漢字的支持也不怎么樣(特別是在純
CUI模式下)。所以還是用英文會更好(不必?fù)?dān)心,在英文版Ubuntu下一樣可以用中文的輸入法,同樣也可以讓Oracle支持中文),要安裝
ubuntu,可以參考網(wǎng)上的其它教程。
第二步,安裝必需的包
apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio libstdc++5 alien
第三步,創(chuàng)建用戶
在很多教程中都用命令去創(chuàng)建用戶。但我發(fā)現(xiàn)用命令去創(chuàng)建的用戶,在圖形界面下用得不甚理想,所以用圖形界面的用戶管理器增加一下新組叫dba,然后再增加一個普通桌面的用戶叫oracle(按默認(rèn)的設(shè)置即可),接著用命令增加一個組及用戶
addgroup nobody
usermod -g nobody nobody
第三步,復(fù)制文件及設(shè)置安裝目錄
我是用以CD作介質(zhì)來安裝Oracle的,所以安裝之前要先將安裝文件復(fù)制到機器當(dāng)中(不復(fù)制也是可以的,但復(fù)制到機器中會比較穩(wěn)當(dāng)),我在
/ 上創(chuàng)建一個目錄ora_ins_disk,然后將文件都復(fù)制進去。復(fù)制后,為了確保能順利進行安裝,要查看一下runInstaller及
unzip 兩個文件屬性,確保其具有x屬性(我就在unzip這個地方倒了大霉,試著安裝的時候老是報Permission
Denied,我開始的時候一直以為是tmp空間不足,其實是 unzip 中沒有運行的權(quán)限),如果沒有那么要改動一下文件的屬性:
cd /ora_ins_disk
chmod 755 runInstaller
cd install
chomd 755 unzip
我準(zhǔn)備把oracle安裝到/opt/ora10中,而數(shù)據(jù)文件也放在這個目錄的下層子目錄中:
cd /opt
mkdir ora10
chown -R oracle:dba ora10
第四步,修改設(shè)置
A.設(shè)置swap區(qū)
Oracle10g至少需要500M的內(nèi)存和400M的交換空間,要查看swap區(qū)是否足夠大小,用 fdisk -l 命令去查,如果小于400M的空間,那么就要增加swap的大小
重設(shè)交換分區(qū)可以使用如下操作:
dd if=/dev/zero of=tmp_swap bs=1k count=900000
chmod 600 tmp_swap
mkswap tmp_swap
swapon tmp_swap
完成安裝以后,可以釋放這個空間:
swapoff tmp_swap
rm tmp_swap
count 值是根據(jù)你需要調(diào)整的交換分區(qū)大小而定。
B.修改 sysctl.conf
添加如下的行到/etc/sysctl.conf 中:
kernel.shmmax = 3147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
C.修改 limits.conf
添加如下的行到/etc/security/limits.conf中:
* soft nproc 2407
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
D.讓修改生效
修改了以上文件后,必須讓其生效,或重啟系統(tǒng),或切換到 root 用戶下用以下的方式改變內(nèi)核運行參數(shù):
sysctl -p
E.產(chǎn)生相應(yīng)的軟連接
創(chuàng)建一個文件如 kk,內(nèi)容如下:
#!/bin/bash
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
mkdir /etc/rc.d
ln -s /etc/rc0.d /etc/rc.d/rc0.d
ln -s /etc/rc2.d /etc/rc.d/rc2.d
ln -s /etc/rc3.d /etc/rc.d/rc3.d
ln -s /etc/rc4.d /etc/rc.d/rc4.d
ln -s /etc/rc5.d /etc/rc.d/rc5.d
ln -s /etc/rc6.d /etc/rc.d/rc6.d
ln -s /etc/init.d /etc/rc.d/init.d
創(chuàng)建后,切換到 root 用戶去執(zhí)行一下。
F.創(chuàng)建RedHat的版本聲明文件
在/etc/redhat-release中添加以下語句,以使安裝程序認(rèn)為正在一個RedHat的系統(tǒng)上安裝:
Red Hat Linux release 3.1 (drupal)
G.修改環(huán)境變量
編輯 /home/oracle/.bashrc,增加以下export 的內(nèi)容。
(注意,在Ubnutu 7.04中用戶的profile文件已改名為~/.profile,有很多安裝教程都是用 ~/.bash_profile,在7.04中不行的)
export ORACLE_HOME=/opt/ora10
export ORACLE_OWNER=oracle
export ORACLE_SID=ora1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
第五步,開始安裝
注銷原來的用戶,改用oracle用戶登錄。用env查看一下環(huán)境變量是否生效。
然后進行/ora_ins_disk中進行安裝
cd/ora_ins_disk
./runInstaller
在安裝過程中,請使用 Advanced Installation,然后一路按默認(rèn)的設(shè)置進行往下設(shè)置,到窗單名為 “Specify Database Configuration Options”的時候,要修改以下設(shè)置:
Database Character Set 中選擇 Simplified Chinese ZHS16GBK
在安裝的后期,系統(tǒng)提示需要用 root
用戶去運行兩個腳本文件orainstRoot.sh和root.sh,安裝完畢后,Oracle是正常啟動著的,你可以試一下連接數(shù)據(jù)庫,同時也可以使
用瀏覽器去設(shè)置一下Oracle,(url:http: //localhost:1158/em/)(Oracle
10g與之前的版本都不一樣,使用WEB頁的企業(yè)管理器來代替以前的C/S版JAVA企業(yè)管理器)
第六步,設(shè)置自啟動
創(chuàng)建自啟動腳本
創(chuàng)建 oracledb 腳本到/etc/init.d/oracledb,內(nèi)容如下
#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_HOME=/opt/ora10
export ORACLE_SID=ora1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
設(shè)置權(quán)限,放到啟動腳本中去
chmod 755 /etc/init.d/oracledb
update-rc.d oracledb defaults 99
我的 oralce 的安裝盤中可能有些問題,所以如果只用上述的腳本是不能啟動 listener的,要修改一下:
修改 /opt/ora10/bin/dbstart文件
查找:
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
將其改為:
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME
設(shè)置后,測試一下
/etc/init.d/./oracledb reload
如果一切正常的話,會關(guān)閉一次Oracle又再重新打開。
至此就安裝完畢,但這里有個小問題一直未能解決:
如果我用中文WinXP的IE去登錄管理那臺Oracle服務(wù)器的話,頁面中的文字會隨之變?yōu)橹形模ㄔ谟⑽牡臑g覽器下,會看到是純英文的頁面),
但會有部份的字會變成“口口”字符,不知如何解決。我覺得這應(yīng)該是Java問題,因為之前用tomcat寫 jsp 的時候,如果character
encoding沒寫好的話,也會出現(xiàn)這樣的問題,但在Oracle中我還不知如何解決。
上一次由flexitime于2007-10-24 周三, 17:43修改,總共修改了1次
寫的好,我這幾天也正好搞這個,關(guān)于這個中文的問題,我已經(jīng)解決了,就是你可以不使用Oracle自帶的
JDK,而是可以使用自己安裝的JDK,我就是用的自己安裝的,至于如何設(shè)置JAVA中文,你可以看下http:
//forum.ubuntu.org.cn/viewtopic.php?t=71848這篇帖子,設(shè)置好JAVA中文環(huán)境之后,你就可以將
Oracle中的JDK刪掉,然后做一個符號連接,連接到你自己的JDK上就好了。呵呵。我也是先用命令行創(chuàng)建用戶和組,但是創(chuàng)建出來之后,沒有
oracle的目錄,所以就使用系統(tǒng)管理中的創(chuàng)建,然后就沒什么問題了。我還沒有設(shè)置自啟動,看了你的文章可以試一試。
來自:http://forum.ubuntu.org.cn/viewtopic.php?p=481122