Oracle9i 2000 年 10 月在 Oracle Open World 上發布,為 Oracle 資料庫、應用伺服器和開發工具引進了許多新功能。Oracle9i是業界第一個完整、簡單的用於互連網的新一代智能化的、協作各種應用的軟體基礎架構。Oracle9i 實際上是指 Oracle9i Database, Oracle9i Application Server 和Oracle9i Developer Suite的完整整合。隨著軟體逐漸開始轉變為一種託管服務( hosted services), 具有internet上的高伸縮效能的、智能化的、和可靠的Oracle9i 將成為高品質的電子商務服務實現的關鍵軟體。
本文將介紹Oracle Database 9i在Linux下的安裝過程,如果你是有過安裝Oracle的經驗本安裝過程可以權當快速安裝手冊;如果你以前從未在Linux下安裝過Oracle資料庫,那我們就從這篇文章開始熟悉oracle的安裝過程。
系統要求:
以下的系統要求適用於典型的Oracle安裝和建立簡單資料庫的方式。
記憶體:
安裝Oralce 9i軟體至少需要512M記憶體,用以下命令可以查看機子的記憶體大小:
grep MemTotal /proc/meminfoMemTotal: 900252 kB
|
900252kB就是你系統的記憶體大小。
交換區:
交換區的大小一般要求是記憶體的兩倍,至少要求達到400M以上,當然是越大越好,用以下的命令可以查看系統交換區的大小:
/sbin/swapon -sFilename Type Size Used Priority/dev/sda6 partition 105221 686976 -1
|
其中105221就是系統交換區的大小。
光碟機:
如果你使用光碟片安裝Oracle9i則你的機子上需要8速以上的CDROM,如果你是下載了oracle9i的包檔案,則不需要使用的CDROM。
硬碟空間:
安裝Oracle9i資料庫至少要有2.5GB以上的剩餘空間。
臨時硬碟空間:
Oracle安裝程式在安裝過程中需要400M以上的臨時硬碟空間,建議使用/tmp檔案夾作為零時檔案夾,如果/tmp檔案沒有足夠的硬碟,可以新建立一個檔案夾作為安裝的臨時目錄,之後設定環境變數TEMP和TMPDIR指向相應的位置,例如:
使用bash
mkdir /home/tempTEMP=/home/temp ; export TEMPTMPDIR=/home/temp ; export TMPDIR
|
使用csh
mkdir /home/tempsetenv TEMP /home/tempsetenv TMPDIR /home/temp
|
作業系統:
Oracle公司官方公布的資料指出Oracle 9i只在安裝SuSuSe 7.1, 核心 2.4.4 和glibc2.2的系統上測試通過,經過本人的測試,Oracle在Linux Mandrake release 8.0,核心2.4.3-20和glibc-2.2.2的版本上也可以順利安裝,本文將以Linux Mandrake8.0為例介紹Oracle9i的安裝過程。
虛擬x-windows軟體:
這個軟體不是必要的!所謂虛擬x-windows軟體指的是可在遠程終端允許伺服器x-windows的虛擬軟體,現在流行的x-windows軟體有exceed、x-win32等軟體,如果你嫌在控制台安裝oracle系統麻煩,可以使用虛擬x-windows軟體在遠程終端在圖形介面下安裝oralce9i,本文將以x-win32 5.0為例介紹用虛擬x-windows安裝oracle9i的過程。
如果你要安裝Oracle HTTP Server還需要用到blackdown的JDK1.3.1,請到以下地址下載ftp://ftp.progsoc.uts.edu.au/pub/Linux/java/JDK-1.3.0/i386/rc1/j2sdk-1.3.0-RC1-linux-i386.tar.bz2
配置核心參數
oracle9i使用Linux的共用記憶體、交換區等資源進行工作,如果你的核心參數設定不能滿足oracle的要求,那在安裝oracel9i或使用過程就會頻頻出現問題,因此配置系統核心的參數就顯得尤為重要和關鍵了。
核心參數的配置一般在/proc檔案夾下配置:
1. 以root使用者允許以下命令;
2. 進入目錄/proc/sys/kernel;
3. 用cat命令或more命令查看semaphore當前參數的值:
命令運行後將會出現如下的結果:
其中, 250 是參數SEMMSL的值,32000是參數SEMMNS的值, 32是參數SEMOPM的值,而128則是參數SEMMNI的值。
4. 用以下的命令可以對上述參數進行修改
echo SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value > sem
|
其中SEMMSL_value、SEMMNS_value、SEMOPM_value、SEMMNI_value分別用相應的值進行替換,並且這些值的順序不能調換
5. 設定共用記憶體大小,共用記憶體大小一般設為實體記憶體的一半,在這裡我們假設實體記憶體為512M則共用記憶體的值4294967295以此類推,如果你的實體記憶體是1G則這裡的值則是8589934590:
添加使用者
Oracle在安裝和使用中需要用特定使用者(非root使用者),按照oracle的標準說明是需要添加三個專門使用者和使用者組,為了簡便大家的安裝和使用我們把oracle的安裝和使用歸到一個特定使用者來完成。
首先建立oracle使用者組,我們架設這個使用者組命名為dba:
以root使用者登陸系統;
運行groupadd dba命令添加dba使用者組;
添加oracle使用者:
以root使用者登陸系統;
運行useradd –g dba –p password –d /oracle –s /bin/bash oracle
|
運行後系統建立了一個屬於dba使用者組的使用者oracle,密碼為password,主目錄為/oracle使用bash
這個使用者將作為系統的安裝和使用指定使用者,因此要妥善儲存好!
建立安裝點(mount point)
oracle9i的典型安裝需要至少兩個安裝點:一個安裝基本的運行程式,要求至少要有850M的硬碟空間;一個為存放資料庫,至少要求有450M的硬碟空間。為了簡化安裝我們可以把運行程式和資料庫裝在同一個安裝點下。
在你的檔案系統上找到有足夠空間的分區,在分區下建立檔案夾,我們假設這個檔案夾為/oracle。
配置系統內容變數
很多網友安裝oracle失敗都是因為環境變數沒有配置正確,環境變數的配置直接影響到以後oracle9i的安裝和配置,在配置的時候要尤為小心!
配置x-windows變數
確認oracle9i在安裝過程中是否使用本地x-windows安裝還是遠程虛擬x-windows安裝,如果需要遠程x-windows安裝,則需要配置DISPLAY變數,這個變數用於告訴系統螢幕的圖形將輸出到什麼位置,預設情況下是本機,如果你使用虛擬x-windows進行安裝,則在這裡指明遠程終端的顯示情況,比如你遠程終端的IP地址是xxx.xxx.xxx.xxx則DISPLAY的變數應設為“xxx.xxx.xxx.xxx:0”後面的“:0”表示該終端的第一個顯示器。
確定安裝臨時目錄
前面我們提到過oracle9i的安裝需要一個臨時的可寫空間,我們在這裡把/tmp作為臨時的可寫目錄。如果你不是使用/tmp作為臨時可寫目錄則需要配置相應的值TMPDIR=/path。
配置oracle的環境變數
下面提供一個例子可以供大家參照使用
export DISPLAY="192.9.200.24:0.0" export BASH_ENV=$HOME/.bashrcORACLE_HOME=/oracle/product/9.0.1; export ORACLE_HOME ORACLE_SID=oracle; export ORACLE_SIDORACLE_TERM=xterm; export ORACLE_TERMTNS_ADMIN=/home/oracle/config/9.0.1; export TNS_ADMINNLS_LANG=american_america.ZHS16GBK; export NLS_LANGORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATHPATH=$PATH:/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/openwinPATH=$PATH:/opt/local/bin:/opt/NSCPnav/bin:$ORACLE_HOME/binPATH=$PATH:/usr/local/samba/bin:/usr/ucb:export PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibCLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlibTMPDIR=/tmp;export TMPDIRumask 022
|
其中:
ORACLE_HOME為系統軟體的安裝目錄;
ORACLE_SID 為資料庫的SID,這裡可以自行設定;
NLS_LANG 為資料庫的字元集,為了保證資料庫能夠輸出輸入資料庫,我們需要在這裡把字元集設為american_america.ZHS16GBK,其中american_america英文字元集,ZHS16GBK為中文字元集。
以oracle使用者登陸系統,
把以上環境變數的設定粘貼到檔案中,確認相應的內容並修改,存檔退出。
重新登陸oracle使用者
使用set|more命令查看oracle使用者的環境變數是否生效
CLASSPATH=/oracle/product/9.0.1/JRE:/oracle/product/9.0.1/jlib:/oracle/product/9.0.1/rdbms/jlib:/oracle/product/9.0.1/network/jlibDISPLAY=192.9.200.24:0.0LD_LIBRARY_PATH=/oracle/product/9.0.1/lib:/lib:/usr/lib:NLS_LANG=american_america.ZHS16GBK ORACLE_HOME=/oracle/product/9.0.1ORACLE_SID=oracleORACLE_TERM=xtermORA_NLS33=/oracle/product/9.0.1/ocommon/nls/admin/dataOSTYPE=linux-gnuPATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/openwin:/opt/local/bin:/opt/NSCPnav/bin:/oracle/product/9.0.1/bin:/usr/local/samba/bin:/usr/ucb:TNS_ADMIN=/home/oracle/config/9.0.1
|
仔細檢查一下以上的幾項,確保都設定正確了。
安裝Oralce9i
安裝JDK1.3.1
把下載的j2sdk-1.3.0-RC1-linux-i386.tar.bz2檔案上傳到伺服器的/usr/local/目錄下,以root使用者登陸,用bzip –d j2sdk-1.3.0-RC1-linux-i386.tar.bz2命令先把檔案解成tar格式,再使用tar xvf j2sdk-1.3.0-RC1-linux-i386.tar.bz2解壓出來,為了便於操作可以把檔案夾名改成jdk.。
配置x-windows
oracle9i的安裝幾乎支援所有的x-windows,也支援遠端虛擬x-windows安裝,如果你要在本機安裝在控制台上以我們先前建立的oracle使用者登陸(注意要先設定好環境變數,並把DISPLAY的值設為空白export DISPLAY=””)運行startx命令進入x-windows。
如果需要在遠程終端使用虛擬x-windows進行安裝,需要在用戶端先安裝x-win32軟體,x-win32的安裝過程我們就不多介紹了,安裝完成後運行x-win32命令在你的工作列會出現一個x的標緻。使用neterm等終端攻擊以oracle使用者登陸系統確認環境變數都已經生效並且DISPLAY變數的值為你終端機的IP地址,運行startkde命令啟動x-windows,運行完畢後系統會出現一大堆的出錯資訊,忽略不管,過了幾秒後在你的遠程終端上會出現Linux的kde介面。
下載Oracle安裝軟體
Oracle網站(http://otn.oracle.com)現在提供Oracle9i for Linux軟體下載,在下載前請仔細閱讀他的Licence,這樣在今後的使用中才不會有著作權問題。在下載前你需要一個otn的賬戶,申請是免費的,只要簡單回答幾個問題就可以,oracle9i的安裝程式共有三個檔案包分別是:
Linux9i_Disk1.cpio.gz (412,092kb)Linux9i_Disk2.cpio.gz (638,547kb)Linux9i_Disk3.cpio.gz (82,956kb)
|
下載完這三個檔案後,把這三個檔案上傳到伺服器/oracle目錄下,並保證這三個檔案的屬主是oracle使用者。如果你有Oracle9i的安裝CD那就可以省下大把下載時間了。
安裝Oracle 9i 資料庫
以oracle使用者登陸系統,啟動本地x-windows或虛擬x-windows,開啟一個控制台視窗,進入到剛才存放oracle檔案的目錄下,分別使用
gunzip Linux9i_Disk1.cpio.gzcpio -idmv
|
命令解包,把三個檔案包解壓縮成三個安裝資料夾分別為Disk1、Disk2、Disk3。
進入Disk1目錄
在控制台視窗敲入
運行後會出現一個OUI的圖形介面,如所示:
中間綠色的視窗就是oracle的安裝圖形介面了。
下面我們來進行oracle9i最基本的安裝,在進入安裝介面後點Next進入下一步:
Source指的是包含Oracle產品資訊的檔案,一般情況下他會自動識別到,如果找不到可以用Browse按鈕來手工指定路徑。
Destination指的是9i將要安裝的路徑這裡就是我們在環境變數裡設的$ORACLE_HOME,如果這一欄裡是空白的則要重新檢查環境變數中各值的設定是否有誤。確認正確後按Next進行下一步:
這一步有三個安裝選項供選擇:
Oracle9i Database 9.0.1.0.0,安裝oracle9i的資料庫伺服器版本、管理工具、網路服務以及基本的用戶端軟體;
Oracle9i Client 9.0.1.0.0 ,企業版的用戶端軟體,網路服務以及開發工具等。
Oracle9i Mangement and Integration 9.0.1.0.0,安裝Management Server,管理工具Oracle的網路目錄、綜合服務、網路服務以及基本的用戶端軟體。
我們選第一項安裝Oracle9i資料庫服務其,接著安Next按鈕;
這一步是選擇Oracle安裝的類型,有三個類型供選擇Enterprise Edition,企業版,Standstard Edition標緻版,Custom自訂安裝,我們選擇企業版的安裝,如果你對Oracle這一系列的產品比較熟悉的化可以選擇Custom自訂安裝,按自己的需求選擇組件進行安裝,確認後安Next進入到下一步;
這裡可以選擇一種適合你的資料庫模版,一般我們選第一種通用的資料庫模版,如果你需要使用資料倉儲,則可以使用選擇資料倉儲的模版進行安裝。確認後按Next進入下一步;
這一步是確認Oracle9i的SID和全域資料庫的名字,SID的值我們在環境變數中已經設好了,所以這裡就自動顯示了,全域資料庫名(Global Database Name)我們可以也指定成和SID的值相同,確認後按Next進入下一步;
前面我們提到了,資料庫的字元類型在資料庫超作中是很關鍵的,這一步就是設定資料庫的字元集,前面我們設定的是NLS_LANG=american_america.ZHS16GBK,所以我們選擇Simplifiled Chinese ZHS16GBK,按Next進入下一步;
因為我們在前面選擇了Enterprise的版本進行安裝,系統會安裝Oracle Web Server,安裝Oracle Web Server需要使用JDK,我們使用Browse按鈕把前面安裝JDK的目錄指定好以便系統能在安裝過程中找到需要的應用程式,確認按Next進入下一步;
進行完所有選擇後,系統會給出一個安裝概要,這裡列舉了你選擇安裝的組件,確認你要安裝的東西都在列表內後,安Install鈕進行安裝,如果不需要安裝其它的程式,則按Exit退出安裝介面。
Oracle的安裝速度視伺服器的效能一般來說需要裝30分鐘的時間,在安裝過程中可能會有對話方塊彈出,對話方塊內會有一些需要root啟動並執行命令要求你執行,這時候另外開一個控制台視窗,su成root並運行提示框內的命令,運行完畢後按確定繼續安裝;
安裝完資料庫後系統會回合組態工具對系統進行網路和資料庫的配置。配置完成後,系統會自動啟動資料庫,並開啟Oracle Web Server。所有配置完後,按Next完成安裝。
如果一切正常,OUI會出現The Installation Of Oracle9i Database Was successful.的字樣,這表明你的Oracle9i資料庫安裝正常了,如果需要安裝其它的內容按Next Install鈕進行其它內容的安裝,否則按Exit退出安裝。
使用Oracle 9i 資料庫
安裝完畢後Oracle資料庫會自動啟動,下面我們用實際超作來說明一下Oracle 9i資料庫的啟動和關閉。
以oracle使用者登陸資料庫,開個控制台視窗;
關閉Oracle 9i 資料庫
[oracle@wing /oracle]$ sqlplus " / as sysdba" //以sysdba使用者登陸資料庫SQL*Plus: Release 9.0.1.0.0 - Production on Wed Jul 11 15:35:31 2001(c) Copyright 2001 Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.0.1.0.0 - ProductionWith the Partitioning optionJServer Release 9.0.1.0.0 - Production運行shudown命令關閉資料庫SQL> shutdownDatabase closed.Database dismounted.ORACLE instance shut down.SQL>
|
啟動Oracle 9i 資料庫
[oracle@wing bin]$ sqlplus " / as sysdba"SQL*Plus: Release 9.0.1.0.0 - Production on Wed Jul 11 16:00:59 2001(c) Copyright 2001 Oracle Corporation. All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 336356520 bytesFixed Size 279720 bytesVariable Size 268435456 bytesDatabase Buffers 67108864 bytesRedo Buffers 532480 bytesDatabase mounted.Database opened.SQL>
|
啟動Oracle 9i監聽程式
Oracle的監聽程式主要是為用戶端的串連提供介面
[oracle@wing bin]$ lsnrctlLSNRCTL for Linux: Version 9.0.1.0.0 - Production on 11-JUL-2001 16:12:17Copyright (c) 1991, 2001, Oracle Corporation. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> startStarting /oracle/product/9.0.1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 9.0.1.0.0 - ProductionSystem parameter file is /oracle/product/9.0.1/network/admin/listener.oraLog messages written to /oracle/product/9.0.1/network/log/listener.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wing)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 9.0.1.0.0 - ProductionStart Date 11-JUL-2001 16:12:58Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity OFFSNMP OFFListener Parameter File /oracle/product/9.0.1/network/admin/listener.oraListener Log File /oracle/product/9.0.1/network/log/listener.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wing)(PORT=1521)))Services Summary...Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...Service "oracle" has 1 instance(s). Instance "oracle", status UNKNOWN, has 1 handler(s) for this service...The command completed successfullyLSNRCTL>
|
關閉Oracle 9i監聽程式
[oracle@wing bin]$ lsnrctlLSNRCTL for Linux: Version 9.0.1.0.0 - Production on 11-JUL-2001 16:12:17Copyright (c) 1991, 2001, Oracle Corporation. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> stopConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))The command completed successfullyLSNRCTL>
|
關閉Oracle Web Server
cd $ORACLE_HOME/Apache/Apache/bin./stopJServ.sh/oracle/product/9.0.1/Apache/Apache/bin/apachectl stop: httpd stopped
|
啟動Oracle Web Server
cd $ORACLE_HOME/Apache/Apache/bin[oracle@wing bin]$ ./startJServ.sh/oracle/product/9.0.1/Apache/Apache/bin/apachectl start: httpd started
|
啟動Oracle Web Server後預設的連接埠號碼是7777
在用戶端瀏覽器地址欄輸入http://xxx.xx.xxx.xxx:7777/
如果瀏覽器出現以下介面則表示Oracle Web Server運行正常