How-To] 在FreeBSD 3.x 下安裝 Oracle 8.0.5

类别:数据库 点击:0 评论:0 推荐:

?

http://140.138.144.144/~freebsd/application/oracle/oracle.htm

發信人: [email protected] (Cyberexistence), 看板: BSD
標 題: [How-To] 在FreeBSD 3.x 下安裝 Oracle 8.0.5
發信站: 迷你圈圈站 (Thu Jan 6 01:16:41 2000)
轉信站: bbs.yzu!news.yzu!news.ncu!news2.csie.ncu!news.csie.ncu!netnews.csie.nc

-1.來由
這一篇是小弟參考諸多文件的說法, 加上一點實驗結果, 在3.3-STABLE下
的成功範例, 雖然都建立成功, 也把DB作起來了, 但是由於本身不熟悉的
關係, 所以沒作全面性的測試跟Benchmark, 有興趣的朋友可以試試看:)

0.「安裝之前」

0-1. 『kernel調整』
先檢查自己的kernel設定檔, 請加入以下的設定

options SHMMAL=4097
options SHMMAXPGS=4097
options "SHMMAX=(SHMMAXPGS*PAGE_SIZE+1)
options SEMMAP=255
options SEMMNI=100
options SEMMNS=200
options SEMMNU=235
options SEMMSL=61
options SEMOPM=201
options SEMUME=201
options SEMSEG=10

重作kernel, 先"不要"重開機, vi /etc/rc.conf, 加入

linux_enable="YES"
ibcs2_enable="YES"

重開機, 就有個可以跑linux模擬器的環境

0-2. 『安裝linux模擬器』
請先找個ftp站抓以下的distfiles

linux_base-5.2.tgz
linux_devel-0.2.tgz

再找個有linux的ftp站, 抓以下的rpm

glibc-2.1.1-6.i386.rpm
tcl-8.0.5-30.i386.rpm
kernel-headers-2.0.36-0.7.i386.rpm

先用pkg_add安裝 linux_base-5.2.tgz跟 linux_devel-0.2.tgz,
再用rpm依順序安裝:

kernel-headers-2.0.36-0.7.i386.rpm
glibc-2.1.1-6.i386.rpm
tcl-8.0.5-30.i386.rpm

PS:安裝方法為
rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm


如果碰到該package已安裝的訊息, 請改用
rpm -U --ignoreos --root /compat/linux --dbpath /var/lib/rpm

0-3. 『建立Oracle需要的user』
vi /etc/group, 加入一行

dba:*:82:oracle

vi /etc/shells, 加入一行

/compat/linux/bin/bash

vipw 加入一行

oracle:

:82:82::0:0:Oracle DBA:/usr/local/oracle:/compat/linux/bin/bash

建立目錄

mkdir /home/oracle; ln -s /home/oracle /usr/local/oracle
mkdir -p /usr/local/oracle/etc
echo WHATEVER:/usr/local/oracle:Y > /usr/local/oracle/etc/oratab
ln -s /usr/local/oracle/etc/oratab /etc/oratab
chown -R oracle:dba /home/oracle

抓source, 解開

fetch ftp://ftp.oracle.com/pub/www/oracle8/linux/Oracle8051EE_Intel.tgz


找個source目錄解開吧

mkdir /usr/local/oracle/source; cd /usr/local/oracle/source
tar -xzspvf /usr/local/oracle/Oracle8051EE_Intel.tgz
(要解一陣子, 可以去倒杯茶休息一下)

0-4. 『建立oracle使用者的環境變數』
先su成oracle, 編輯/usr/local/oracle/.profile
加入以下幾行

ORACLE_BASE=/home/oracle; export ORACLE_BASE
ORACLE_HOME=/home/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
ORACLE_SID=WHATEVER; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip; export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin:\
/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:\
$ORACLE_HOME/bin;

請小心不要打錯!!

1.「開始安裝」

1-1.『詳細安裝過程』

cd /usr/local/oracle/source/orainst; ./orainst

a) 請選Custom install
b) 按兩次OK後會看到Installation Activity Choice
請選Install, Upgrade, or De-Install Software
c) Installation Options請選
Install New Product - Do Not Create DB Objects
d) ORACLE_BASE和ORACLE_HOME請填/usr/local/oracle
e) Logging and Status請直接按enter跳過
f) Install Source請選Install from Staging Area
g) Source Staging Area請填入 /usr/local/oracle/source
h) NLS選All Languages
i) 再按一次OK後會進入Software Asset Manager, 別猶豫, 全選吧
j) 再按一次OK後會問DBA group, 填入dba
k) OSOPER group也是填dba
l) Choose JDBC Components的地方全部都選
m) ORACLE_DOC不變, 直接enter過
n) Documentation Format就隨意了
o) 然後就正式開始安裝了, 安裝途中出現任何錯誤都ignore它
後面我們會慢慢解決這些問題

1-2.『先解決linked的問題』

這問題的解決方法很無厘頭, 但是卻很有用....

cp /usr/local/oracle/source/bin/* /usr/local/oracle/bin


2.「修改錯誤」

安裝時會碰到六個錯誤, 我們必須就來一一解決吧,
請使用oracle這個user去作。

2-1.『修改"Oracle Names"的錯誤』

cd /usr/local/oracle/source/lib
vi sysliblist, 把 "-lnsl -lm"的部份砍掉, 換以下的內容

/compat/linux/lib/ld-linux.so.2
/compat/linux/lib/libm.so.6
/compat/linux/lib/libdl.so.2
/compat/linux/lib/libpthread.so.0
/compat/linux/lib/libc.so.6
/compat/linux/lib/libnsl.so.1
/compat/linux/usr/lib/libtcl.so
/compat/linux/usr/lib/libtcl8.0.so

cd /usr/local/oracle/network/lib
vi env_network.mk, 修改以下的部份

150c150, 151
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
223c224, 225
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
632c634, 635
< MY_TMP_FLAGS= -ldl -lc
---
> #MY_TMP_FLAGS= -ldl -lc
> MY_TMP_FLAGS=

make -f ins_network.mk names_targs

2-2.『修改"warp executable"的錯誤』

cd /usr/local/oracle/plsql/lib
vi env_plsql.mk, 修改以下的部份

149c149, 150
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
222c223, 224
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=

make -f ins_plsql.mk install

2-3.『修改"Oracle Trace"的錯誤』

cd /usr/local/oracle/otrace/lib
vi env_otrace.mk, 修改以下的部份

149c149, 150
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
222c223, 224
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=

make -f ins_otrace.mk install

2-4.『修改"Oracle8 Standard RDBMS"的錯誤』

cd /usr/local/oracle/rdbms/lib
vi env_rdbms.mk, 修改以下的部份

149c149, 150
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
222c223, 224
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
680c682, 684
< LDLIBS+=-ldl $(NETLIBS) $(NETLIBS) $(NETLIBS) $(NETLIBS) $(NETLIBS) \
< $(LLIBSQL) $(LLIBSQL)
---
> #LDLIBS+=-ldl $(NETLIBS) $(NETLIBS) $(NETLIBS) $(NETLIBS) $(NETLIBS) \
> # $(LLIBSQL) $(LLIBSQL)
> LDLIBS+=$(NETLIBS) $(NETLIBS) $(NETLIBS) $(NETLIBS) $(NETLIBS) \
> $(LLIBSQL) $(LLIBSQL)

make -f ins_rdbms.mk install

2-5.『修改"Oracle Intelligent Agent"的錯誤』

cd /usr/local/oracle/network/lib
vi env_oemagent.mk, 修改以下部份

149c149, 150
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
222c223, 224
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
477,478c479,482
< LIBTCL=/usr/lib/libtcl.so
< LLIBTCL= -ltcl
---
> #LIBTCL=/usr/lib/libtcl.so
> #LLIBTCL= -ltcl
> LIBTCL = /compat/linux/usr/lib/libtcl.so
> LLIBTCL = /compat/linux/usr/lib/libtcl.so

vi ins_oemagent.mk, 修改以下部份

27c27,28
< MY_TMP_FLAGS= -ldl -lc
---
> #MY_TMP_FLAGS= -ldl -lc
> MY_TMP_FLAGS= -lcrypt

make -f ins_oemagent.mk install

2-6.『修改"SQL*Plus"的錯誤』

cd /usr/local/oracle/sqlplus/lib/env_sqlplus.mk
150c150, 151
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=
223c224,225
< EXSYSLIBS= -ldl
---
> #EXSYSLIBS= -ldl
> EXSYSLIBS=

make -f ins_sqlplus.mk install


到此已經把安裝時的六個錯誤都修正完畢!!
累了嗎?! 喝杯茶, 馬上就是好玩的地方了!!


3.「開始玩Oracle吧」

3-1.『root.sh的修改』

cd /usr/local/oracle/orainst
vi root.sh, 修改以下部份

1c1
< #!/usr/bin/sh
---
> #!/compat/linux/bin/sh
34c34
< CHOWN=/bin/chown
---
> CHOWN=/usr/sbin/chown

用"root"去跑/usr/local/oracle/orainst/root.sh
a) 選"Y"
b) 填入/usr/local/oracle/bin

3-2.『讓Oracle跑起來吧』

cp /usr/local/oracle/dbs/init.ora /usr/local/oracle/dbs/initWHATEVER.ora
vi /usr/local/oracle/dbs/initWHATEVER.ora, 把DEFAULT改成WHATEVER

/usr/local/oracle/bin/svrmgrl, 應該會無誤的進入svrmgrl
connect internal
startup
create database WHATEVER character set WE8ISO8859P1;
alter tablespace SYSTEM
add datafile '/usr/local/oracle/dbs/dbs2WHATEVER.dbf'
size 10M autoextend on;
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql
@$ORACLE_HOME/sqlplus/admin/pupbld.sql
(這裡會有error, 不用管他也~~)

然後就可以sqlplus sys/manager
也可以 select * from tab;
當然也可以quit啦
到此一切完成!!!

好玩嗎?!

--
==============================================================================
Nekobe Wu. (吳遵先) | http://hikaru.tku.net/
[email protected] | (Pure DB web bbs)
[email protected] | http://www.nekobe.tku.net/
| (Personal Homepage)
Network, FreeBSD, Windows NT, HTML, PHP, Perl, Database....

--
※ Origin: 迷你圈圈站 ◆ From: hikaru.tku.net
--

本文地址:http://com.8s8s.com/it/it20776.htm