返回列表 回復 發帖

[資源分享] [教學] ORACLE v8.1.7 FOR Linux Red Hat Enterprise AS 3.0 安裝筆記

[資源分享] [教學] ORACLE v8.1.7 FOR Linux Red Hat Enterprise AS 3.0 安裝筆記

*****************************************************
ORACLE v8.1.7 FOR Linux Red Hat Enterprise AS 3.0 安裝筆記
                                --written by Dandy
*****************************************************

1.以 root 的身分簽入,建立使用者 oracle 及群組 dba,並使oracle的群組為dba。

  #groupadd dba
  #useradd oracle -g dba

2.先用下列指令檢查系統內是否有安裝並符合下列套件,若不符合請安裝
  #rpm -q glibc
  #rpm -q tcl

應該會得到下列結果:
*glibc-2.3.2-95.3 --(GLIBC package version 2.1 or higher)
*tcl-8.3.5-92     --(TCL library version 7.5 or higher)http://www.scriptics.com

3.因為RHEL 3.0的binutils與Oracle 8i有不相容的情況,所以可採用RedHat7.0
所附的binutils-2.10.0.18-1.i386.rpm,
或從此下載,
ftp://ftp.redhat.com/pub/redhat/ ... .10.0.18-1.i386.rpm

或使用較穩的binutils-2.10.91.0.4-1.i386.rpm
http://www.kernel.org/pub/linux/ ... 0.91.0.4-1.i386.rpm

#rpm -Uvh --force --nodeps binutils-2.10.91.0.4-1.i386.rpm

4.由於Oracle 8i的開發平台是建立在glibc 2.1(RedHat 6.2)上,所以在RedHat 7.x以上就無法正常運作,
  所以在安裝RedHat 7.x以上時須選擇Red Hat Linux 6.2相容套件,並執行下列指令:
  $export LD_ASSUME_KERNEL=2.2.5

  <***>此指令非常重要,也可在執行runInstaller.sh之前執行

<***>因為Oracle 8i跟RedHat 7的glibc 2.3不相容,會產生建立資料庫時的錯誤,
所以需要glibc 2.1 compatibility SDK, i386-glibc-2.1-linux.tar.gz,
http://ftp.valinux.com/pub/suppo ... bc-2.1-linux.tar.gz取得後,
進行下列步驟:
<p1>.解壓縮到/usr
    #cd /
    #tar zxvf /tmp/i386-glibc-2.1-linux.tar.gz
<p2>.將/usr/bin裡的gcc,ld備份到saved,另link到/usr/i386-glibc-2.1-linux/bin
    #cd /usr/bin
    #mkdir saved
    #mv gcc ld saved
    #ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
    #ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld
<p3>.將/usr/lib裡的libc.so,ibdl.so,libm.so,libpthread.so,libc.a,libdl.a,libm.a,libpthread.a備份
    #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
   
5.安裝JDK1.1.8
取得 JDK1.1.8 檔案 jdk118_v3-glibc-213tar.bz2, download後存放於 /tmp,執行下面指令 :

$cd /tmp
$tar -xvjf jdk-1.1.8_v3.tar.bz2 -C /usr/local
$ln -s /usr/local/jdk118_v3 /usr/local/java

6.確保使用者 oracle 擁有初始目錄 (home directory)
$ chown -R oracle.dba /oracle

7.重新以oracle身份登入,在home裡面修改oracle環境參數,

  a.bash--.bash_profile,加入下列幾行(假設機器名稱為localhost):
  b.sh  --.profile

#Oracle 環境變數
PATH=$PATH:/oracle/8.1.7/bin; export PATH
DISPLAY=localhost:0.0
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_HOME=/oracle/8.1.7; export ORACLE_HOME
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=vt100;export ORACLE_TERM
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
NLS_LANG="TRADITIONAL CHINESE.ZHT16BIG5";export NLS_LANG
CLASSPATH=/usr/lib/jdk/lib/classes.zip; export CLASSPATH
umask 022

c.csh --.cshrc
#Oracle 環境變數
set path =($path /oracle/8.1.7/bin .)
setenv DISPLAY=ordb:0.0
setenv ORACLE_HOME /home/oracle/8.1.7
setenv ORACLE_BASE /home/oracle
setenv ORACLE_OWNER=oracle
setenv ORACLE_SID ORCL
setenv NLS_LANG "TRADITIONAL CHINESE.ZHT16BIG5"
setenv ORACLE_TERM=vt100
umask 022

8.把CDROM mount上去,將linux81701.tar由CDROM解壓縮至/tmp
  $cd /tmp
  $tar xvf /mnt/cdrom/linux81701.tar /tmp

  產生Disk1的目錄

9.一切就緒,登出系統,重新以oracle登入,先確定環境變數是否正確
  $env

10.啟動XWindow開始安裝:
  $startx

  開啟xterm,執行安裝程式便可開啟Java安裝畫面
  $cd /tmp/Disk1
  $./runInstaller.sh
  或直接打開GNU Midnight Command(桌面上的Home Directory資料夾),
  到/tmp/Oracle8iR2,執行runInstaller.sh

11.若看見安裝界面是oo的亂碼,請先退出,在xterm裡下一指令:
  $export LC_ALL=en_US


12.依照畫面執行即可,遇到UNIX GROUP NAME時,UNIX GROUP NAME留空白跳過,請按Next繼續.

12.遇到OUI的訊息提示有些檔案需有root權限,在xterm裡su成root下一指令:
  $su
  #/oracle/8.1.7/orainstRoot.sh     -->在/etc/裡增加檔案oraInst.loc

13.下一步選擇Oracle 8i Enterprise Edition 8.1.7.1.0

14.下一步選擇Custom安裝,將所有選項打勾,約需1.6GB左右,再選擇語系(Product Languages),加入
   繁體中文(Traditional Chinese)

15.下一步提示JDK的安裝路徑,  輸入/usr/local/java,按Next繼續.

16.下一步提示Privileged Operating System Groups,設定資料庫群組,default都為dba,請按Next繼續.

17.下一步選擇要不要在安裝時Create Database,選"YES"繼續

18.給予Global Database名稱和SID,由於Oracle 8i提供全球資料庫串連功能,所以你必須要為你的資料庫取一個
   獨一無二的名稱,不管你的資料庫分散在世界各地都可以直接存取,Global Database name 最好是ordb.oracle.com的格式
   
19.安裝將近結束時(約64%),會發生link錯誤,請開啟xterm安裝oracle的glibc patch.
   請開啟xterm,以oracle身份解壓glibc-2.1.3-stubs.tar.gz
  $cd /tmp
  $mkdir glibc
  $cd glibc
  $tar zxvf glibc-2.1.3-stubs.tar.gz
  $cd lib
  $cp -rf stubs /oracle/8.1.7/lib
  $setup_stubs.sh
<ps>應該會有兩次link錯誤,一次是64%,一次是94%,第二次應該修改/etc/ld.so.conf,
加入/oracle/8.1.7/lib,執行ldconfig   

20.安裝至最後會提示執行 root.sh,請開xterm,以root身份執行/oracle/8.1.7/root.sh
  $su
  #sh /oracle/8.1.7/root.sh

  local bin directory:/usr/local/bin

21.開始建立資料庫Create Database
  有三種型態的資料庫可選擇
  1.Online Transaction Process(OLTP):線上交易型
  2.Data Warehousing:資料倉儲型
  3.Multipurpose:多目標型
請選擇Multipurpose(多目標型)

22.輸入連線人數,內定為15個user,先設為60

23.選擇要操作的default的資料庫,有
  1.Dedicated Server Mode(專用伺服器)--oracle將對每一個client分配資源,若client數目較預期少,或
                                       client持續且長時間向server做request時.
  2.Share Server Mode(共享伺服器)--oralce自動將數個client共享分配資源,適用於用戶較多時.
                                   MTS(Multi Transaction Service)將被啟動.
  若一般情況請選擇Dedicated Server Mode.

24.選擇options選項,請依照需求選取.

25.確定Global Database Name,SID,Initializaion Filename,Compatible Patameter,按Next繼續

26.確定Control Files,Maximum Datafiles,Maximum Log Files,Maximum Log Members,按Next繼續

27.確定System Tablespace,改變temporary和rollback這兩個tabs的大小為150Mb,按Next繼續.

28.確定Redo Log,改變大小為10000K,按Next繼續

29.確認Logging parameter,Enable Archive Log要打勾,按Next繼續

30.SGA 參數,增加Processes到100; Block Size到4096(此參數較適合small Linux boxes;
在大型的Solaris SUN上面最好調成8192,),按Next繼續

31.Trace File Directory,按Next繼續

32.Create database now,按Finish開始建立資料庫,128MB RAM約需2-3hr.

33.建立完畢後,安裝程序結束.離開Xwindow.

34.修改/etc/oratab,修改此行
     ORCL:/oracle/8.1.7:Y
                        ^^ dbstart 時 ORCL instance 自動起來

35.listener 自動啟動安裝,
<在/oracle/8.1.7/bin/dbstart 加入>

##自動啟動Listner
if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then
  $ORACLE_HOME/bin/lsnrctl start
fi
##自動啟動Oracle Apache Jserv
if [ -f $ORACLE_HOME/Apache/Apache/bin/httpdsctl ] ; then
  $ORACLE_HOME/Apache/Apache/bin/httpdsctl start
fi

<在/oracle/8.1.7/bin/dbshut 加入>

##自動關閉Listner
if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then
  $ORACLE_HOME/bin/lsnrctl stop
fi
##自動關閉Oracle Apache Jserv
if [ -f $ORACLE_HOME/Apache/Apache/bin/httpdsctl ] ; then
  $ORACLE_HOME/Apache/Apache/bin/httpdsctl stop
fi
##清除連線記錄
rm -f @ORACLE_HOME/network/log/listener.log


36.完成後請測試
        $/oracle/8.1.7/bin/dbstart
        $/oracle/8.1.7/bin/dbshut


37.開機自動啟動 Oracle
    請將oracle8i這個script cp至/etc/rc.d/init.d
        $cp oracle8i /etc/rc.d/init.d
    再加入開機服務程序中
    #chkconfig --add oracle8i
    #linuxconf
   用linuxconf即可控制啟動的層次.

38. Oracle的內定用戶 (Default User)
        在建立資料庫時,會自動產生兩個特別的用戶:
        --------------------------------------------------------
        Username                Password
        --------                -------------------
        SYSTEM                  manager
        SYS                     change_on_install

39.大功告成,將Oracle的Demo資料庫加入=>有名的SCOTT/TIGER測試帳號
SQL>@/oracle/8.1.7/rdbms/admin/utlsampl.sql

40.載入Oracle的測試script檔
SQL>SELECT * FROM TAB;

41.由於Oracle 8.1.7自帶有Apache Jserver,可由http://ordb:7777啟動,內有一個BC4J的範例檔,由以下步驟建立.
--<1>建立使用者bc4j
   create user BC4J identified by BC4J;

   <2>授權
   grant resource,connect to BC4J;

   <3>設定BC4J的Java 2(JServer)權限
SET VERIFY OFF;
EXEC DBMS_JAVA.GRANT_PERMISSION('BC4J', 'SYS:java.util.PropertyPermission', '*', 'write');
EXEC DBMS_JAVA.GRANT_PERMISSION('BC4J', 'SYS:java.util.PropertyPermission', '*', 'read');
EXEC DBMS_JAVA.GRANT_PERMISSION('BC4J', 'SYS:java.lang.RuntimePermission', 'createClassLoader', null);
EXEC DBMS_JAVA.GRANT_PERMISSION('BC4J', 'SYS:java.lang.RuntimePermission', 'setContextClassLoader', null);
COMMIT;
SET VERIFY ON;
EXIT;

<4>重新登入
connect BC4J/BC4J@ordb.oracle.com

<5>執行範例檔的pl/sql
@/oracle/8.1.7/Apache/BC4J/samples/onlineorders/sql_install/OnlineOrders.sql


42.修改kernel參數
Oracle 使用Linux的shared memory來運行SGA,所以要調整kernel參數符合SGA,
$ ipcs -al
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 32768        <--------------------------linux預設值是32Mb
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

shmmax是以位元組記的共用記憶體段的最大尺寸,
shmmni是共用記憶體段的最大數量
shmmax是共用記憶體總共最大容量(shmmax*shmmni)
sem是信號量參數,msgmax,msgmnb,msgmni是message queue的參數。

要改變share memory只能重新recompiler kernel,或者直接在proc設定,但重開就會恢復default設定
#echo 134217728 > /proc/sys/kernel/shmmax (SGA最大為128M)
#echo -e "250 32000 100 128" > /proc/sys/kernel/sem
請加入/etc/rc.d/rc.local,開機載入

------------------------------------------
以下為另一種參考值
cd /proc/sys/kernel/
echo 100 32000 100 100 > sem
echo 2147483648 > shmmax
echo 4096 > shmmni
echo 2097152 > shmall
echo 65536 > /proc/sys/fs/file-max
echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
------------------------------------------

43./oracle/8.1.7/bin/netasst有jre的bug,

$pico netasst

將$JRE -classpath $CLASSPATH oracle.net.asst.container.NetApplication oracle.net.asst.container.NetApplication
換成
$JRE -nojit  -classpath $CLASSPATH oracle.net.asst.container.NetApplication oracle.net.asst.container.NetApplication
         ^^^^^^
在xwindow內即可執行netasst,執行前還是先
$export LD_ASSUME_KERNEL=2.2.5
$export LC_ALL=en_US         
$netasst

44.Xwindow中開啟DBA Studio
$export LD_ASSUME_KERNEL=2.2.5
$export LC_ALL=en_US
$oemapp dbastudio        


45.COMPLETE.



$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
<不選擇Typical Configuration的做法>

19.請確定Typical Configuration沒有打勾,按Next繼續進入Oracle Database Configuration Assistant.
20.進入Directory Service Access,選擇No,按Next繼續
21.下一步Listener Name,輸入LISTENER,按Next繼續
22.下一步為通訊協定選擇,至少要有TCP,按Next繼續
23.下一步為TCP/IP Port選擇,default為1521,按Next繼續
24.下一步為Naming Methods Configuration,選No,Naming Methods Configuration
25.下一步為Listener設定結束,按Finish繼續
26.再回到建立資料庫的步驟.
大家好我叫祐祐唷^^~

希望能與各位大大多多認識交流^^~

祐祐大帥哥
謝謝你的幫助>ˇ<
這是給你的回報
以後還要請你多多幫忙喔
愛死你了


【※孤獨無罪※】
祐祐大帥哥
謝謝你的幫助>ˇ<
這是給你的回報
以後還要請你多多幫忙喔
愛死你了


黄小樂 發表於 2010-11-23 20:31
呵呵

不會啦^^~

你開心就好^^~

乖^^~
大家好我叫祐祐唷^^~

希望能與各位大大多多認識交流^^~
返回列表