RHAS 3.0上的Oracle 9i的安裝
2024-08-29 13:48:01
供稿:網友
RHAS 3.0上的Oracle 9i的安裝
原文來自 :好好先生 llmmysun 修改后發布
參考文檔:http://www.puschitz.com/InstallingOracle9i.sHtml
另外還參考了一篇csdn上的安裝文檔,在此一并表示感謝!
聲明:本文可任意轉載,但請保留上述信息
Oracle是世界上使用最廣泛的數據庫,它可以運行在各種計算機上;也是當前最優秀的關系型數據庫。以前,一至無緣接觸。這兩天,正好有空。就在自己的計算機上裝了一遍,領略了一番她的魅力!
一、預備工作
rpm -aq grep compat*
--以下的包是必須安裝的
gcc
cpp
glibc-devel
compat-libstdc++
glibc-kernheaders
binutils
--檢查這些包是否已經安裝
rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
1.下載oracle 9i for linux的源碼包(一共有三個cpio.gz的文件:lnx_920_disk1.cpio.gz,lnx_920_disk2.cpio.gz,lnx_920_disk3.cpio.gz)
2.下載補丁。至少需要四個補丁文件:
[quote:db788a2c24]p3095277_9204_LINUX.zip 9.2.0.4.0的升級補丁包.
p3006854_9204_LINUX.zip 在運行 runInstaller 之前打. --保證正常啟動圖形界面
p3119415_9204_LINUX.zip 在升級到9.2.0.4.0之后打.
p2617419_210_GENERIC.zip 打3119415補丁所需要的. --ORACLE opatch 工具,是一個perl程序
這幾個補丁文件都可以在Google上搜索到,其中p3095277_9204_LINUX.zip這個補丁有300多M,我在網上搜到了一個國內的下載站,速度有30多K/秒。另外三個,在itpub有人打包上傳了。http://www.itpub.net/showthread.php?s=&threadid=171693&perpage=15&pagenumber=1
3.修改內核參數
echo "kernel.sem="250 32000 100 128"" >> /etc/sysctl.conf
#echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf[/quote:db788a2c24]
第一條命令中的 250、32000、100、128 分別對應SEMMSL、SEMMNS、SEMOPM、SEMMNI這四個核心參數。
上面是典型的核心參數配置.您可能需要根據您的實際環境進行適當的變動.
4.檢查設置
more /etc/sysctl.conf grep kernel.s
kernel.sysrq = 0
kernel.shmmax=2147483648
kernel.sem="250 32000 100 128"[/quote:db788a2c24]
5.檢查安裝所需的rpm包是否齊全,確認以下rpm包都已經安裝(假如你安裝時選擇了軟件開發,那么基本上下面所列的包都已經安裝了,假如沒有安裝,大部分在第三張光盤上,安裝時注重一下順序)
rpm -qa grep compat
compat-gcc-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
# rpm -qa grep openmotif
openmotif-2.2.2-16
openmotif-devel-2.2.2-16
# rpm -qa grep setarch
setarch-1.3-1[/quote:db788a2c24]
6.把gcc,g++更換為2.96的版本。
mv /usr/bin/gcc /usr/bin/gcc323
# ln -s /usr/bin/gcc296 /usr/bin/gcc
# mv /usr/bin/g++ /usr/bin/g++323
# ln -s /usr/bin/gcc296 /usr/bin/gcc
[/quote:db788a2c24]
7.設置用戶及環境變量、安裝目標路徑
a.增加用戶和組
[quote:db788a2c24]groupadd dba # 創建數據庫治理員組
groupadd oinstall # 創建oracle文件的所有組
useradd -c "Oracle software owner" -g oinstall -G dba oracle #創建oracle用戶
passwd oracle #設置oracle用戶的密碼[/quote:db788a2c24]
b.創建安裝目標路徑
[quote:db788a2c24]mkdir /opt/oracle
mkdir /opt/oracle/PRodUCt
mkdir /opt/oracle/product/9.2.0
chown -R oracle.oinstall /opt/oracle
mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle[/quote:db788a2c24]
c.設置環境變量
[quote:db788a2c24]su - oracle
vi .bash_profile加入下面的內容
eXPort LD_ASSUME_KERNEL=2.4.1 #這個參數必須指定,否則java安裝界面無法啟動,這個參數實際上是為了避免Linux上的NPTL(Native POSIX Thread Library)和Oracle應用不兼容的問題.
# Oracle Environment
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=test
export ORACLE_TERM=xterm
# export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin
然后執行
$ source .bash_profe #讓配置文件生效
8.設置swap和臨時文件夾
oracle對內存和swap要求比較高,Oracle 建議 Oracle 9i 服務器至少需要 512M 內存,兩倍內存或不少于 400M 的交換 (swap) 空間。
假如你沒有足夠的交換空間或內存,在數據庫創建過程中,你的 Oracle 服務器將變得非常遲鈍。 我的內存只有256M,512M的swap。在此,我新增了1000M的swap。
su – root
dd if=/dev/zero of=tmpswap bs=100M count=10
chmod 600 tmpswap
mkswap tmpswap
swapon tmpswap[/quote:db788a2c24]
另外,oracle的安裝至少需要400M的/tmp臨時空間。假如你/tmp下的空間不夠,可以可以臨時在另一個文件系統中建立一個/tmp 目錄。
su – root
mkdir //tmp
chown root.root //tmp
chmod 1777 //tmp
export TEMP=/ # used by Oracle
export TMPDIR=/ # used by Linux programs[/quote:db788a2c24]
當安裝完 Oracle 之后,關閉 Oracle 并刪除臨時目錄:
[quote:db788a2c24]su – root
rmdir //tmp
unset TEMP
unset TMPDIR[/quote:db788a2c24]
Oracle 磁盤空間 (Sizing Oracle Disk Space)
僅安裝數據庫軟件,大約需要2.5G 的磁盤空間。
假如執行一個標準的數據庫安裝而不是自定義安裝,則大約需要3.5G空間。
9.解包安裝文件。
把下載的文件拷貝到/tmp中。最好以root身份來解壓,否則可能會報錯。
a.解壓
gunzip lnx_920_disk1.cpio.gz lnx_920_disk2.cpio.gz lnx_920_disk3.cpio.gz Linux9i_Disk3.cpio.gz
b.解包
cpio -idmv < lnx_920_disk1.cpio
cpio -idmv < lnx_920_disk2.cpio
cpio -idmv < lnx_920_disk3.cpio
會生成Disk1,Disk2,Disk3三個文件夾, 好了,預備工作告一段落。萬事俱備,只久安裝了!
二、安裝
1.打第一個補丁。
運行runInstaller之前,需要打補丁3006854: 注重,必須以root身份運行.
[quote:db788a2c24]# unzip p3006854_9204_LINUX.zip[/quote:db788a2c24]
會在當前目錄下創建一個目錄,進入到該目錄中
[quote:db788a2c24] # cd 3006854
#chmod +x *.sh
# ./rhel3_pre_install.sh
2.以root身份執行xhost +
假如以oracle身份執行,會出現提示不能連接到display 0.0之類的錯誤。
3.運行runinstall(激動人心的時刻到了!)
su - oracle
/tmp/Disk1/runInstaller (有文章說不要進入到Disk1的文件夾中再執行./runInstaller,否則會找不到其它的盤。我沒有實驗那樣是否不行。)
根據提示往下面安裝,中間會提示你,有一個地方要組名,輸入oinstall,
另一個地方添數據庫名和SID,請均填入orcl。
還會提示你用root身份執行一個腳本,按ctrl+shift+n新開一個終端窗口, 然后執行/tmp/的一個.sh文件。
另外,relink 階段,會報告兩個錯誤:ins_oemagent.mk 和 ins_ctx.mk. 點 Ignore忽略,安裝后升級到9.2.0.4的版本來消除這個bug.
4.升級
解包:
unzip p3095277_9204_LINUX.zip
cpio -icvd < 9204_lnx32_release.cpio 這個地方最好還以root身份解包,否則可能還會提示你權限不夠。
現在可以再次運行runInstaller,要先升級oui(最后一個選項)否則不讓升級到9.2.0.4.而且,升級完oui以后,要退出oui然后再重新運行oui, 再升級到9.2.0.4.不退出繼續升級會報告錯誤.升級過程中,仍然會出現ins_oemagent.mk錯誤,點 Ignore 忽略(可以通過下面的補丁解決)。然后還會提示你用root身份來執行一個/opt中的一個腳本,你同樣開一個終端,用root身份來執行就可以了。
5.打補丁
[quote:db788a2c24]su - oracle
$ unzip p3119415_9204_LINUX.zip
$ cd 3119415
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin # the patch needs "fuser" which is located in /sbin
$ which opatch
/tmp/OPatch/opatch
$ opatch apply
[/quote:db788a2c24]
這個地方有一個問題需要注重,直接用oracle身份解壓可能提示權限不夠,用root身份解壓,然后用oracle身份來執行還會提示你權限不夠,你用root解壓然后執行chmod 777 3119415,然后su - oracle;/tmp/Opatch/opatch apply就ok了。
好了,大功告成了! 運行dbca命令來創建數據庫,還有文檔上說這個時候可能會出錯,要修改dbca文件來解決,我沒有碰到這個問題,假如你碰到了可以上google上找相關文檔,來解決這個問題。
三、清掃戰場及實驗
1.刪除臨時文件(這些臨時文件將近3G,不用我再說刪除的意義了吧?)
[quote:db788a2c24]cd /tmp
rm -rf *[/quote:db788a2c24]
2.改回gcc,g++的版本,否則在以后編譯安裝其他軟件時可能會有問題
[quote:db788a2c24]# mv /usr/bin/gcc323 /usr/bin/gcc
# mv /usr/bin/g++323 /usr/bin/g++[/quote:db788a2c24]
3.連接一下數據庫,檢查一下自己的勞動成果吧!
[quote:db788a2c24]su - oracle
oracle$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
附:
sqlplus /nolog
connect / as sysdba
startup nomount
1.
CREATE DATABASE ivps
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 7
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/home/oracle/oradata/ivps/system01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/home/oracle/oradata/ivps/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS" DATAFILE '/home/oracle/oradata/ivps/undotbs01.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/home/oracle/oradata/ivps/redo01.log') SIZE 20480K,
GROUP 2 ('/home/oracle/oradata/ivps/redo02.log') SIZE 20480K,
GROUP 3 ('/home/oracle/oradata/ivps/redo03.log') SIZE 20480K,
GROUP 4 ('/home/oracle/oradata/ivps/redo04.log') SIZE 20480K,
GROUP 5 ('/home/oracle/oradata/ivps/redo05.log') SIZE 20480K,
GROUP 6 ('/home/oracle/oradata/ivps/redo06.log') SIZE 20480K;
2.
CREATE TABLESPACE "INDX" LOGGING DATAFILE '/home/oracle/oradata/ivps/indx01.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
CREATE TABLESPACE "USERS" LOGGING DATAFILE '/home/oracle/oradata/ivps/users01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
CREATE TABLESPACE "TOOLS" LOGGING DATAFILE '/home/oracle/oradata/ivps/tools01.dbf' SIZE 50M REUSE AUTOEXTEND ON NEXT 320K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
3.
connect SYS/change_on_install as SYSDBA
@/home/oracle/product/92/rdbms/admin/catalog.sql;
@/home/oracle/product/92/rdbms/admin/catproc.sql;
connect SYSTEM/manager
@/home/oracle/product/92/sqlplus/admin/pupbld.sql;