RedHat 7.0上按步就班裝好Oracle 8i release 3-(version 8.1.7)

ORACLE 8i 的重要訊息!
ORACLE 8i
目前有三個版本-8.1.5 ;8.1.6 & 8.1.7三版. 一般文件上的評論是

8.1.5bug極多. 8i Release 2 (version 8.1.6.1).是較受推薦的版本. 8.1.7 則是目前oracle官方網站的release版本.不管幾個版本,總是要試看看

我使用的機器組態

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

      AMD 333 ,192 megs RAM , 10 gig HD.ORACLE 8.1.5跑得動, 8.1.6 也可以,至於8.1.7也跑得動

文件分六段落

RedHat 基本安裝 -包括 RedHat 7.0安裝, 增加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 會更好些.

 

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

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

  • XWindows 相關項目
  • C Development

Kernel memory 參數
根據 Oracle install manual必需在install前先調整好記憶體參數. 在 RedHat 7.0中, Oracle 並不需調整 kernel memory就會跑. 個人看法是依你的需求和硬體狀況決定. Redhat 7.0 的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 檔案
當開始裝 8i-8.1.7,必需自己 download oracle817ee.tar.gz檔案 方法如下:

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

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

3) 最後找到 oracle817ee.tar.gz

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

5) tar  xvzf  oracle817ee.tar.gz

 

Java SDK 檔案
當開始裝 8i-8.1.7, 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 Glibc2.1 檔案
RedHat7.0
安裝的是glibc2.2 .Oracle8i不能使用glibc2.2,而需要glibc2.1SDK. 所要做的是必需 download i386-glibc-2.1-linux.tar.gz檔案 方法如下:

1) 上網連到 ftp://ftp.kernel.org/pub/software/libs/glibc/hjl/sdk/2.1/

2) 找到i386-glibc-2.1-linux.tar.gz download下來

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


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

編譯 glibc2.1SDK
1)
先開一個文字 terminal window.

2) cd / 回到 /  .

  • tar xvfz  i386-glibc-2.1-linux.tar.gz

3) 接著隱藏 /usr/bin 目錄下的 gcc , cc ,ld ,避免被oracle installer 使用

  • cd /usr/bin
  • mkdir saved
  • mv gcc cc ld saved
  • ln –s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
  • ln –s gcc cc
  • ln –s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld

4) 接著隱藏 /usr/lib 目錄下的 libc.so , libdl.so ,libm.so libpthread.so ,避免被oracle installer 使用 

  • cd /usr/lib
  • mkdir saved
  • mv libc.so libdl.so libm.so libpthread.so  saved
  • mv libc.a libdl.a libm.a libpthread.a  saved

 

建立 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/8.1.7; export ORACLE_HOME
  • LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.7/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/8.1.7/ocommon/nls/admin/data; export ORA_NLS33
  • PATH=$PATH:/u01/app/oracle/product/8.1.7/bin; export PATH
  • CLASSPATH=.:/u01/app/oracle/product/8.1.7/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

2) 啟動 installer

  • ./runInstaller

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

4) Next .

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

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

7) Next.

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

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

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


10)
回到剛剛彈現的視窗中,接著Retry.

11) 接下來進入產品視窗. 選擇 Oracle 8i Enterprise Edition 8.1.7.0.0 並按 Next .

12) 在下一視窗, Custom, 並按 Next .

13) Available Product Components 畫面中. 你可以預設值去install. 或者先把 Oracle Intermedia不選. 一方面是作單機測試, 一方面也是大部份使用者用不到,不選就不用為它的設定傷腦筋,不過選不選看需求.product languages 選項中加選 “Tradiotion Chinese”,osdbaosoper group 項目都以預設值enter 過去即可, 接著Next.

14) 現在 installer 會問你是否要 create 一個 database. yes..

15)  Oracle Protocol Support 畫面出現. 設定中出現空白,不用擔心. TCP/IP 已經內建了, 接著Next.

16) 最後回到 Summary 畫面下, 你所選定的功能項都會在此出現. Install .

17) 此處有 bug , installer 會出現警告硬碟空間不足. 不用擔心, OK鍵繼續安裝.

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

      在過程中有時會出現找不到 /usr/local/java 的訊息 .就必需自己 link JDK118_v3 .而因Oracle Intermedia不選,會出現的錯誤訊息,都選 Ignore 跳過即可

19) 當所有檔案都 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)

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

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

22) 此時會出現 error message 開始句子為 "JNLS Exception." ,這是JAVA的問題,不要理會,程式依然可以完成(雖然畫面字型會怪怪的). OK.

23) Database Configuration Assistant 出現時, Cancel .(稍後再裝設)

24) 確認將 exit 出視窗.

25) 你將得到訊息顯示會有些功能失敗. 不要理會. OK.

26) Next .

27) End of Installation 畫面中. Exit.

28) 確認將 exit 出視窗.

29) 接著我們將更動一些檔案的 permission來讓 patch可以執行. (此時切記terminal window不要關掉)


建立 Database
接下來的步驟要建立原始 database. 會要點時間.

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

  • dbassist &

2) 畫面會再出現 JNLS Exception error的訊息. 仍是JAVA的問題, OK.

3) Create a Database Next.

4) Custom Next.

5) 接下來四個畫面都用 default值執行. Next鍵過去, 在畫面要求你輸入 Global Database Name 時停下來.

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

7) Change Character Set National Character Set  的選項中,選取文字使用ZHT16BIG5”, Next.

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

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

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

11) 在等待時休息一下慰勞自己. 這階段會要點時間. 但因稍前未選裝Oracle Intermedia 相關套件會出現錯誤訊息,都選Ignore鍵跳過即可.

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. ORACLE8i 內建當程式起來時 TCP/IP 就執行, 但仍需調整. 讓它更順暢

  • lsnrctl start

3) 啟動 Oracle Server:

  • svrmgrl
  • connect internal
  • startup
  • quit

4) 或者你想試用內建的 sample tables ( user/password scott/tiger),你可如此做:

  • cd $ORACLE_HOME/rdbms/admin
  • sqlplus (先用 system/manager登入)
  • @utlsampl.sql

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

  • sqlplus
  • username: scott
  • password: tiger
  • select * from emp;

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

 

回存 glibc2.2SDK
1)
先開一個文字 terminal window.

2) 接著回復 /usr/bin gcc , cc ,ld

  • cd /usr/bin
  • rm –f gcc cc ld
  • cd /usr/bin/saved
  • mv * ..
  • cd ..
  • rm –rf saved

4) 接著回復 /usr/lib 目錄下的 libc.so , libdl.so ,libm.so libpthread.so 

  • cd /usr/lib/saved
  • mv * ..
  • cd ..
  • rm –rf saved

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