在Redhat 9上安裝 Oracle 817心(轉)

PigBaby2007發表於2007-08-08

idea | 07 八月, 2007 20:30

 關於 Oracle 安裝的討論已經有很多了,可是在實踐中你還是總會遇到某些麻煩,因此我就留下我的兩分錢吧。本文討論的環境基於 Redhat Linux 9.0.93,
  
  Oracle 的版本號為 8.1.7.0.1。

[@more@]


  
  下載軟體
  假設你已經有了一臺跑著 Redhat 的機器,並且它滿足 Oracle 8i 對硬體的相關要求,並且具有網路連線,下面就下載其他所需的軟體。首先在 OTN 下載 linux
  
  81701.tar 和 glibc-2.1.3-stubs.tar.gz,另外還需要:i386-glibc-2.1-linux.tar.gz
  (Redhat 自帶的是 binutils-2.13.90.0.18-9.i386.rpm,用於恢復
  
  因為 Oracle 自帶了 JRE 1.1.8,所以不用單獨安裝,假設以上所述軟體都放在 /tmp 目錄。
  
  (注:還需要從Java官方網站下載JDK 1.4.2用以恢復,我安裝的Redhat9沒有發現JDK 1.4.2,下載位置:
  
  .com/j2se/1.4.2/download.html)
  
  安裝glibc、JDK、和 binutils
  su
  cd /
  tar zxvf /tmp/i386-glibc-2.1-linux.tar.gz
  
  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
  (注:安裝oracle過程中發現/usr/bin/ld變為非連結,需要重新設定,否則會出現連線出錯!)
  
  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
  
  (注:沒有安裝過java的話就沒有這個目錄,需要先mkdir /usr/java)
  cd /usr/java
  tar jxvf /tmp/jdk118_v3-glibc-2.1.3.tar.bz2
  ln -s /usr/java/jdk118_v3 /usr/local/java
  (注:原來是ln -s jdk118_v3 /usr/local/java,後來發現連結不正確)
  
  (注:安裝前先轉到軟體放置目錄cd /tmp)
  rpm -Uvh --force --nodeps binutils-2.10.91.0.2-3.i386.rpm
  (注:執行這一命令後/usr/bin/ld變為非連結,需要重新設定,否則會出現連線出錯!)
  
  建立使用者和組
  groupadd oinstall
  groupadd dba
  groupadd oper(注:此組還象沒有用到,可以去掉,下面的useradd也要相應的去掉)
  useradd -d /oracle -g oinstall -G dba,oper oracle(注:此處為給oracle使用者設定/oracle目錄,預設是/home/oracle)
  passwd oracle
  chown -R oracle.dba /oracle
  chmod 750 /oracle
  
  準備安裝
  vi /oracle/.bash_profile(注:由於前面給oracle設定/oracle目錄,預設是/home/oracle/.bash_profile)
  
  修改為如下內容:
  (注:內容開始,可以在非Linux環境修改這個檔案,不過該檔案中換行只能是0A,要去掉所有的0D)
  # .bash_profile
  
  # Get the aliases and functions
  if [ -f ~/.bashrc ]; then
  . ~/.bashrc
  fi
  
  # User specific environment and startup programs
  unset USERNAME
  umask 022
  export EDITOR=vi
  export TERM=xterm
  export TMPDIR=/tmp
  
  # Setup installation environment
  export ORACLE_SID=orcl
  export ORACLE_BASE=/oracle
  export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/i386-glibc-2.1-linux/i386-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib(注:恢復時這一行要刪i
  
  386-glibc-2.1的路徑)
  export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
  export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
  export TNS_ADMIN=$ORACLE_HOME/network/admin
  export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
  export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
  export ORACLE_OWNER=oracle
  export ORACLE_TERM=xterm
  export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
  export LD_ASSUME_KERNEL=2.4
  export JAVA_HOME=/usr/local/java
  export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.
  (注:內容結束,注意export的內容在同一行上,CLASSPATH後面的classesxxx.zip建議自己去查一下,我這裡xxx是111,路徑用冒號分隔而不是分號)
  
  su oracle
  . .bash_profile
  export LANG=en
  cd /tmp
  tar xvf linux81701.tar
  
  其中 export LANG=en 是為了防止介面黑做一團。
  
  (注:此時最好去檢查一下/usr/bin/ld的連結是否正確:ls -l /usr/bin/ld,應該連結到/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld才對,否則重
  
  復前面的做法,先rm /usr/bin/ld,再ln。另外建議對前面設定的各個連結都檢查一下:/usr/bin/gcc,/usr/bin/cc,/usr/local/java,深紅色的表示連結不正確)
  
  開始安裝
  ./Disk1/runInstaller
  
  點選 Next;在 UNIX Group Name 裡輸入 oinstall;出現一個提示框要求執行 orainstRoot.sh,這時另外開啟一個終端:
  
  su
  cd $ORACLE_HOME
  ./orainstRoot.sh
  
  回到 GUI,按 Retry;選擇安裝 Enterprise Edition;選擇典型安裝;選擇使用一個已經存在的 repository;選擇 JDK 的位置(注:應是/usr/local/java);問
  
  是否要新建一個資料庫,不用;繼續,等待一段時間;出現一個提示框要求執行 root.sh;回到終端:
  (注:建議選擇自定義安裝,這樣可以新增支援的語言,比如簡體中文等,連線過程如果出錯的話請按後面的“處理錯誤”執行,我沒有碰到錯誤)
  
  vi root.sh
  
  按下列要求修改:第98行,把 SED=/usr/local/bin/sed 改為 SED=/bin/sed;第102行,把 RMF=/bin/rm –f 改為 RMF="/bin/rm -f";第156行,把 RUID=`/usr
  
  /bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}` 改為 RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}'`。
  
  ./root.sh
  
  回一次車;回到 GUI,按 OK。
  
  處理錯誤
  (注:出錯的可能性是/usr/bin/ld的連結被更改,記住在安裝binutils-2.10.91.0.2-3.i386.rpm之後要去更改)
  出現一個提示框,說 Error in invoking target relink of makefile /oracle/product/8.1.7/precomp/lib/ins_precomp.mk 或者 Error in invoking target
  
  relink of makefile /oracle/product/8.1.7/rdbms/lib/ins_rdbms.mk,回到終端:
  
  exit
  cd $ORACLE_HOME
  tar zxvf /tmp/glibc-2.1.3-stubs.tar.gz
  ./setup_stubs.sh
  
  連結工作完成後,回到 GUI,按 Retry;等待,直到安裝完成;完成後自動啟動的 Net8 配置嚮導沒有反應,kill 之。
  
  恢復其他軟體
  su
  rpm -e --nodeps bintutils-2.10.91.0.2-3
  rpm -ivh /mnt/cdrom/Redhat/RPMS/binutils-2.13.90.0.18-9.i386.rpm(注:如果是下載的,位置可能不一樣)
  cd /usr/local
  rm java
  
  (注:補充開始)
  安裝JAVA
  1、#cp j2sdk-1_4_2_05-linux-i586-rpm.bin 到/usr/local
  2、#chmod 755 j2sdk-1_4_2_05-linux-i586-rpm.bin
  3、#./j2sdk-1_4_2_05-linux-i586-rpm.bin (解出j2sdk-1_4_2_05-linux-i586.rpm)
  4、#rpm -ivh j2sdk-1_4_2_05-linux-i586.rpm
  rpm安裝很方便,不用保佑了。
  (注:補充結束)
  
  ln -s /usr/java/j2sdk1.4.2_05 java
  (注:原來是j2sdk1.4.2_01,我現在從網下載到的是j2sdk1.4.2_05,建議安裝完後自己去檢查一下。我用的是“ln -s /usr/java/j2sdk1.4.2_05 /usr/local/
  
  java”,擔心又出來連結不對的情況)
  cd /usr/bin
  rm gcc cc ld
  mv ./saved/* .
  rmdir saved
  cd /usr/lib
  mv ./saved/* .
  rmdir saved
  
  然後把 oracle 使用者環境變數 LD_LIBRARY_PATH 中的 glibc 的部分刪去。
  
  建立資料庫
  exit
  cd $ORACLE_HOME/bin
  unset LANG
  unset NLS_LANG
  ./dbassist
  
  選擇建立資料庫;定製;多用途;下一步;共享伺服器模式;去掉所有選項(建立 JServer 的時間巨長);設定全域性資料庫名和 SID,假設全域性資料庫名為 testdb
  
  ,SID 為 orcl;更改字符集:字符集為 UTF8、國家字符集為 ZHS16GBK;六次下一步;完成。
  
  配置 Net8
  ./netca
  
  使用 netca 是因為 netasst 總是沒有反應,讓我們鄙視它吧。選擇監聽程式配置;新增;監聽程式名使用預設的 LISTENER;三次下一步。
  
  上面步驟即是對 $ORACLE_HOME/network/admin/listener.ora 的編輯:
  
  # copyright (c) 1997 by the Oracle Corporation
  #
  LISTENER =
  (ADDRESS_LIST=
  (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
  (ADDRESS=(PROTOCOL=ipc)(KEY=EXTPRO

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10144097/viewspace-934597/,如需轉載,請註明出處,否則將追究法律責任。

相關文章