RedHat 7.1上按步就班裝好Oracle 9i -(version 9.0.1)


這是我在 RedHat 7.1(核心為 2.4.2) 上安裝ORACLE 9i的經驗.隨著版本提昇.我的硬體也面臨瓶頸.唯願能對ORACLE的使用者多些參考資源.不管幾個版本,總是要試看看

我使用的機器組態

雖然 Oracle 建議值至少 256 megs RAM, 但我使用過這組機器裝設,機器組態為:

      AMD 333 ,192 megs RAM , 10 gig HD.ORACLE 9.0.1也跑得動

文件分六段落

RedHat 基本安裝 -包括 RedHat 7.1安裝, 增加Oracle記憶體參數( memory parameters)的方法
安裝前需download 和注意事項
在安裝前需準備的檔案 JDK 1.1.8 .
Oracle 安裝前組態 -
設定 users, groups, mount points environment variables.  
Oracle 安裝 -
一步步安裝Oracle.
Oracle 安裝後的調整 -
組態調整和測試
我必需特別強調,這些步驟在我的機器組態中都確實執行過,確定可行;但我不保證只執行片斷的部份步驟也可執行,如各位有更好的安裝方法,請不吝告訴我。

為何選擇 Redhat?
個人還屬Linux 的新生,選擇由RedHat 開始入門,就是著眼在 RedHat 有較完備的RPM  套件;且Oracle RedHat Linux 上最主要的平台。  


Redhat基本安裝
可依個人需求去規劃, 以下只是我的建議做法.

A.     Partitioning
1)
swap partitions  盡量調成 400mb或成為記憶體總數的2倍或以上(以何者較大為選擇) 

2) 規格化你的硬碟,我將硬碟規劃如下:

 /          hda1      8001mb      linux native

/home   hda5      1302mb      linux native

hda6         462mb      swap

或是給Oracle 一個mount point (/u01). 當然你也可以如 OFA 中建議做成4mount point,或許 performance 會更好些.

 3) tmpswap partitions  盡量調成 512mb成為記憶體總數的2倍或以上(以何者較大為選擇).這是oracle推薦值.但因我的記憶體只有192mb.考慮實體記憶體不足.我直接將tmpswap partitions 加大到600mb.幸而可行.方法如下:

    先檢查現有swap partitions

  • cat /proc/swaps

增加tmpswap partitions

  • dd if=/dev/zero of=tmpswap bs=1k count=300000
  • chmod 600 tmpswap
  • mkswap tmpswap
  • swapon tmpswap

 

B. X Windows
 Oracle 9i
一定要使用到X Windows. 程式本身已經是 GUI-based. Redhat 7.1, 可使用 Gnome KDE環境. 基本上都跑得動.而個人是較喜歡Gnome環境 .

C. Redhat Install 的選項狀況
最小需求組態下,ORACLE必要需求的組態中,一定要有---

  • XWindows 相關項目
  • C Development

Kernel memory 參數
根據 Oracle install manual必需在install前先調整好記憶體參數. 在 RedHat 7.1中, Oracle 並不需調整 kernel memory就會跑. 個人看法是依你的需求和硬體狀況決定. Redhat 7.1 的SHMMAX default setting 是 32 megs,如你有更多 RAM(多於64 megs), 就可以調調看。

警告你!
更動 kernel parameters 必須 recompile你的 Linux kernel. 如不曾做過,一定要先看好手冊再做,否則還是少做異動;異動步驟如下:

更動 memory params
1)
切換到目錄中再編輯 shmparam.h 

  • cd /usr/src/linux/include/asm
  • vi shmparam.h

2) 往下找到 "#define SHMMAX 0x2000000." 其中 0x2000000 代表 32 megs. 將它改成你所要的(ORACLE建議合理值為你的硬體記憶體總數的一半). 我將它改成 0x6000000代表有96 megs RAM . 
其餘參考值有
0x4000000 = 67108854          64 megs RAM
0x6000000 = 100663296        96 megs RAM
0x8000000 = 134217728      128 megs RAM
0x10000000 = 268435456    256 megs RAM
0x20000000 = 536870912    512 megs RAM

3) 異動後存檔 

4) 現在你可以 recompile kernel. Recompile 後繼續往下做。(如不做 Recompile 也可以繼續安裝完成,但效能較差



安裝前需 download 和注意事項
Download Oracle 檔案
當開始裝 9i-9.0.1,必需自己 download Linux9i檔案 方法如下:

1) 上網連到 http://technet.oracle.com.

2) 如你沒有帳號, 就註冊一下. 這是免費而可找到ORACLE資訊的管道.

3) 最後找到 Linux9i_withjre_Disk1.cpio.gz  Linux9i_nojre_Disk2.cpio.gz  Linux9i_nojre_Disk3.cpio.gz

4) 將檔案存到 /usr/src目錄下.

5) 解壓縮 gunzip   Linux9i_withjre_Disk1.cpio.gz  Linux9i_nojre_Disk2.cpio.gz  Linux9i_nojre_Disk3.cpio.gz

6) 解開文件 :

      cpio  -idmv  <  Linux9i_withjre_Disk1.cpio.gz

      cpio  -idmv  <  Linux9i_nojre_Disk2.cpio.gz

      cpio  -idmv  <  Linux9i_nojre_Disk3.cpio.gz

      可以將檔案解開到 Disk1  Disk2 Disk3 三個目錄中

Java SDK 檔案
當開始裝 9i-9.0.1時, Oracle 需要 JDK 1.1.8的環境. java的路徑存在 /usr/local/java .因此.接下來要做的是 JDK 放到 /usr/local 目錄下.並將它 link 起來. 方法如下:

1) 上網連到 http://www.blackdown.org

2) 按下 download 的聯結鍵.

3) 最後找到 jdk118_v3-glibc-2.1.3.tar.bz2  

4) 將檔案存到 /usr/local目錄下.

5) root權限下.打開一個視窗.開始解開檔案並link. 方法如下

tar  xvIf  jdk118_v3-glibc-2.1.3.tar.bz2

     ln –s /usr/local/jdk118_v3  /usr/local/java

 

Download binutils-2.10.0.18-1.i386.rpm 檔案
RedHat7.1
安裝的是binutils-2.10.91.0.2-3.i386.rpm .Oracle9i不能使用,而需要binutils-2.10.0.18-1.i386.rpm 所要做的是必需 download binutils-2.10.0.18-1.i386.rpm檔案 方法如下:

1) 上網連到 http://rpmfind.creatis.insa-lyon.fr/linux/RPM/redhat/7.0/i386/binutils-2.10.0.18-1.i386.html

2) 找到binutils-2.10.0.18-1.i386.rpm download下來 (或是手上有RedHat 7.0 版本.直接copy就有)

3) rpm  –Uvh  --force –nodeps  binutils-2.10.0.18-1.i386.rpm

    binutils 降階.等安裝完成後再升級回去

接著進行 Oracle 安裝前組態的設定.


Oracle 安裝前組態
在此段落中, 將建立 user所需的群組和帳號.

建立 Oracle account group
oracle
帳號用來建立並啟始 oracle database. dba 群組用來做 Database Administrators.

1) root權限下.先開一個文字 terminal window.

2) 在此 terminal window 中建立群組帳號. Oinstall 用來裝置軟體.dba 用來做為databaseadministrators group.
oper 用來做為 management group.

  • groupadd oinstall
  • groupadd dba
  • groupadd oper

3) 接著建立 oracle user帳號.oinstall 設為主群組. Dba oper 設為副群組

  • useradd oracle -g oinstall –G dba,oper
  • passwd oracle (建立使用者密碼)

4) 如你也像我沒做 mount points Oracle, 就做個目錄給 oracle, 我給它名稱 /u01. 

  • mkdir /u01. (你也可像 OFA建議建 /u01, /u02, /u03 /u04 四個目錄).

5) 更改 mount points 上的owner group permissions. 

  • chown oracle.dba /u01 (如你有 /u02, /u03 and /u04 就重覆做)
  • chmod 775 /u01 (如你有 /u02, /u03 and /u04 就重覆做)

6) Log out.  (退出root帳號)

7) oracle 帳號Log in.

設定 oracle user的環境
1)
開個 terminal window.

2) 鍵入 umask [enter],以確認 umask 值為 022. 如果是表示一切順利.如果不是,等一下在  .bash_profile 檔中需加以設定

3) 使用你最常用的編輯工具在 oracle home 目錄下編輯一個 .bash_profile . 內容如下:  

  • ORACLE_HOME=/u01/app/oracle/product/9.0.1; export ORACLE_HOME
  • LD_LIBRARY_PATH=/u01/app/oracle/product/9.0.1/lib; export LD_LIBRARY_PATH
  • ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
  • ORACLE_SID=ora1; export ORACLE_SID
  • ORA_NLS33=/u01/app/oracle/product/9.0.1/ocommon/nls/admin/data; export ORA_NLS33
  • PATH=$PATH:/u01/app/oracle/product/9.0.1/bin; export PATH
  • CLASSPATH=.:/u01/app/oracle/product/9.0.1/jdbc/lib/classes111.zip;export CLASSPATH
  • umask 022 (只有當 umask 值不是 022 時才加入此行)

4) 另外還有一行變數需要加入 .bash_profile . 那就是 NLS_LANG 變數. 加入此設定才能設定使用文字語系. 使用上一定要小心.否則 database 跑起來必定不順! 一些參數如下表:

由於要使用中文, 因此必需在 .bash_profile中加入:

  • NLS_LANG="traditional chinese"; export NLS_LANG

使用語言

NLS_LANG

US English

American

Arabic

Arabic

Brazilian Portugese

"brazilian portugese"

Canadian French

Frc

Czech

Czech

Danish

Danish

Dutch

Dutch

Finnish

Finnish

French

French

German

german

Hungarian

hungarian

Icelandic

Is

Italian

Italian

Japanese

japanese

Korean

korean

Lithuanian

lt

Mexican Spanish

esm

Norweigan

norweigan

Polish

polish

Portugese

portugese

Russian

russian

Simplified Chinese

"simplified chinese"

Slovak

slovak

Swedish

swedish

Thai

th

Traditional Chinese

"traditional chinese"

Turkish

turkish


 

5) Log out, 再次以 oracle 登入. 鍵入 env 來確認方才設訂的環境生效 

6) 再次確認一次 Oracle /bin, /usr/bin, /usr/local/bin 中的路徑 

7) 一定要確認 .bash_profile中的設定生效,接著就安裝程式


Oracle安裝
由於是在 RedHat下安裝,我們將以installer來啟始安裝.

1) 確認以 oracle 登入

2) 切換到含有 RedHat install script的路徑下.

  • cd /usr/src/Disk1

3) 啟動 installer

  • ./runInstaller

4) 此時畫面出現錯誤訊息jre was not found in /tmp/OraInstall/jre/bin/../bin/i586/green_threads/jre

    原因為原來文件解壓縮後只有/i686 目錄

    解決方法: 建一個 /i586 目錄. jre /bin/i686中文件 copy 過去即可

     此外 /tmp/OraInstall /jre/lib .也需多建一個 /i586 目錄. lib /i686中文件 copy 過去.

5) 重新啟動 installer

./runInstaller

6) 接著有 GUI window 出現.畫面出現 Welcome to the Java-based Oracle installer.

7) Next .

8) Inventery Location畫面中按 OK

9) Unix Group Name 格中, 鍵入"oinstall" 做為 group名稱, 接著 Next .

10) 接著會彈現一個問題視窗告訴你 run orainstRoot.sh. 請依下列步驟:

  • 切記不要關掉彈現視窗,另開個新的 terminal window
  • su root (接著輸入root password)
  • cd /tmp
  • ./orainstRoot.sh
  • exit (離開root的權限)
  • exit (關閉 terminal window)


11)
回到剛剛彈現的視窗中,接著Continue.

12) 確認 Source path /usr/src/Disk1/stage/products.jar

13) 確認 Destination path $ORACLE_HOME 環境設定相同.

14) Next .

15) 接下來進入產品視窗. 選擇 Oracle 9i Database 9.0.1.0.0 並在product language選項中.加選”Traditional Chinese”.OK鍵退出後. Next .

16)  在下一視窗, Standard Edition, 並按 Next . (這是因記憶體只有192mb. oracle的手冊建議值.若記憶體充足超過512mb.才可選用 Enterprise Edition)

17) Database Configuration 畫面中. 你可以預設值去install.

18) Database Identification 畫面中. Next . 在畫面要求你輸入 Global Database Name 時停下來.

19) 在此畫面, 輸入一個名稱給 database. 名稱 必需為8個字母以下. 並確認 SID 值與之前設環境參數相同.

20) Database Character Set的選項中,不用預設值.選取文字使用Traditional Chinese ZHT16BIG5”, Next.

21) Choose JDK Home Directory 的選項中, JDK Home.填入/usr/local/java, Next..

22) Summary 畫面上.按下install

23) 到這步驟時, 所有基本設定都已完成 ,就等著將程式裝進硬碟了!

     install過程中於 copy export.map .會出現無法寫入 .master的狀況.這是因為檔案權限不足

  • 另開個新的 terminal window (oracle權限下即可)
  • cd $ORACLE_HOME/ldap/odi/conf/
  • chmod 666 *.master ( script 能在oracle 權限下寫入)
  • exit (離開root的權限)

之後. retry 即可

24) 當所有檔案都 copy到硬碟後, 會彈現一個問題視窗告訴你 run root.sh script. 請依下列步驟:

  • 切記不要關掉彈現視窗,另開個新的 terminal window
  • su root (接著輸入root password)
  • cd $ORACLE_HOME
  • chmod 744 root.sh ( script 能在root 權限下執行)
  • ./root.sh
  • 當畫面詢問你的 local bin 目錄路逕時,直接按 Enter
  • exit (離開root的權限)
  • exit (關閉 terminal window)

25) 回到剛剛彈現的視窗中,接著OK.

26) Oracle Net Configuration Assistant 會接著執行.

此時畫面出現錯誤訊息jre was not found in /u01/app/oracle/jre/bin/../bin/i586/green_threads/jre

    原因為原來文件解壓縮後只有/i686 目錄

    解決方法: 建一個 /i586 目錄. jre /bin/i686中文件 copy 過去即可

     此外 / u01/app/oracle /jre/lib .也需多建一個 /i586 目錄.將 lib /i686中文件 copy 過去.

     之後將 Oracle Net Configuration Assistant retry 即可

27) Oracle Database Configuration Assistant 會接著執行. 就等著將程式裝進硬碟了!

28) End of Installation 畫面中. Exit.

29) 確認將 exit 出視窗. (此時機器將建立 JAVA Virtual Machine 需一點時間)


建立新的Database (依需要)
接下來的步驟要建立原始 database. 會要點時間.

1) teminal window, 鍵入如下指令:

  • dbca

2) Oracle Database Configuration Assistant 會接著執行.

3) Create a Database Next.

4) 依需求選擇database template Next.

5) 接下來, 在畫面要求你輸入 Global Database Name 時停下來. 輸入一個名稱給 database. 名稱 必需為8個字母以下. 並填入新建資料庫的 SID . Next.

6) 接下來畫面, 選擇所要的 Server Mode , Next.

7) 於接下來畫面調整Initialization parameters值畫面中.依需求調整.切記於”DB Sizing”選項下將Database Character Set National Character Set  的選項中,選取文字使用ZHT16BIG5”, Next.

8) 接著的畫面都Next鍵接受. 直到畫面詢問 Create database .

9) 確認已選取 Create database , Finish .

10) 畫面再確認是否執行, Yes.

11) 在等待時休息一下慰勞自己. 這階段會要點時間.

12) 當畫面出現database 建立完成時, OK鍵並開始做安裝後調整. (此時切記terminal window不要關掉)



Oracle 安裝後的調整
一切的努力都為了此一刻.

ORACLE的內建密碼
Oracle
內建有兩個帳號來控管database. 名稱和密碼如下:
sys - change_on_install
system - manager

1) 使用與之前同一個 terminal window 以保持裝置的一致性

2) 若你是從別的PC端使用 GUI 介面來管理Oracle server, 你就必需使用到 TNS listener. ORACLE9i 內建當程式起來時 TCP/IP 就執行, 但仍需調整. 讓它更順暢

  • lsnrctl start

3) 啟動 Oracle Server:

    9i中已沒有 svrmgrl .所有工作都由 sqlplus 管理

  • sqlplus /nolog
  • connect / as sysdba
  • startup
  • quit

4) 現在我們隨便做個查詢, 就用 SQLPLUS 還有之前裝的 example tables. username scott password tiger. 

  • sqlplus /nolog
  • connect scott/tiger
  • select * from emp;

 5) 如果一切正常, 你會從 emp table中看到資料. 那就表示ORACLE 開始工作了.

如果一切正常, 那就表示ORACLE 9.0.1RedHat 7.1開始工作了