Redhat AS4上安裝64位Oracle9204

Redhat AS4上安裝  6 4 位Oracle9204
===========================================================
作者: yangtingkun(http://yangtingkun.itpub.net)
發表於: 2006.09.20 20:03
分類: ORACLE
出處: http://yangtingkun.itpub.net/post/468/211768
---------------------------------------------------------------

第一次嘗試在REDHAT AS4上安裝64位Oracle,由於缺少資料且操作系統知識相對匱乏,導致安裝過程中錯誤頻繁出現,不過幸好通過兩天的不斷折騰,終於將Oracle安裝成功。這裏將安裝步驟簡單總結一下,儘量使後來人少走彎路。

這篇文檔參考了Oracle9i for Linux x86-64的官方安裝文檔,不過這篇文檔中遺留的東西很多。另外還參考了metalink上的幾篇文檔,這幾篇文章主要是介紹如何解決isqlplus鏈接失敗的。

 

 

下面就開始介紹安裝步驟,對於簡單的部分就不多做說明了:

首先檢查系統是否滿足安裝Oracle的要求,其實這個對於目前大部分的服務器都是滿足的,不過爲了完整起見,還是把Oracle的最低要求和檢查腳本列出來:

512M以上內存;

1G以上交換空間;

/tmp目錄下400M以上空間。

# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo
# df -k /tmp
# grep "model name" /proc/cpuinfo

另外,需要保證Oracle的安裝目錄至少有超過2.5G的空間,才能保證企業版的正常安裝。

通過下面的腳本檢查操作系統信息

# more /etc/issue
# uname -a

下面通過rpm –qa來檢查操作系統是否已經包含了安裝Oracle所需要的包。由於沒有官方版的AS4所需的包的列表,我根據官方AS3所需列表將我的環境中對應的包列出,並將個人認爲比較重要的放在前面。

kernel-2.6.9-42.EL

glibc-devel-2.3.4-2.25

glibc-2.3.4-2.25

gcc-3.4.6-3

gcc-c++-3.4.6-3

compat-libgcc-296-2.96-132.7.2

compat-gcc-32-3.2.3-47.3

compat-gcc-32-c++-3.2.3-47.3

libstdc++-devel-3.4.6-3

libstdc++-3.4.6-3

make-3.80-6.EL4

gtk+-1.2.10-33

gnome-libs-1.4.1.2.90-44.1

tcp_wrappers-7.6-37.2

ORBit-0.5.17-14

libpng10-1.0.16-1

libungif-4.1.3-1.el4.2

imlib-1.9.13-23

setarch-1.6-1

libaio-0.3.105-2

audiofile-0.2.6-1.el4.1

esound-0.2.35-2

上面列出的包並不見得都是必須的,最後幾個包沒有的話,應該也可以安裝成功。不過根據Oracle官方文檔的建議都加上肯定不會有問題。這裏要額外注意compat-libgcc-296-2.96-132.7.2這個包,這個包必須要加上,否則後面的安裝無法繼續進行。

下面需要修改一下系統的核心參數,具體的含義就不多解釋了,Oracle的推薦默認參數爲:

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

我只修改了kernel.shmmax參數,設置其大小超過我預計SGA的值。

將上面的核心參數添加到/etc/sysctl.conf文件中。

完成設置後,重啓操作系統。通過/sbin/sysctl –p可以修改當前核心參數,不過如果系統可以重啓,還是通過這種方式比較保險。

下面爲Oracle用戶設置進程數和打開文件數的限制:修改/etc/security/limits.conf文件,將下面內容填入:

* soft nproc 2047

* hard nproc 16384

* soft nofile 1024

* hard nofile 65536

修改/etc/pam.d/login文件,添加如下的內容:

session required /lib/security/pam_limits.so

這些操作完成之後,開始安裝的前期工作了,首先是創建Oracle帳戶:

# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
# mkdir -p /opt/oracle/product/9.2
# chown -R oracle.oinstall /opt/oracle

至此,root用戶的設置基本結束,可以切換到oracle用戶了。

# su - oracle
$ vi .bashrc

在oracle用戶的初始化腳本中添加如下內容:

if [ $USER = "oracle" ]; then

ulimit -u 16384 -n 65536

fi


export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/product/9.2

export ORACLE_SID=testdb

export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'

export PATH=$ORACLE_HOME/bin:$PATH

export DISPLAY=172.25.6.201:0


export LD_ASSUME_KERNEL=2.4.1

其中上面設置進程和文件的限制是Oracle推薦的。ORACLE_BASE、ORACLE_HOME、ORACLE_SID以及NLS_LANG 的設置都需要根據個人的具體進行調整。DISPLAY變量設置的是我自己機器在局域網中的IP地址,這是方便我使用X-MANAGER進行圖形化操作的。

最需要注意的是LD_ASSUME_KERNEL的設置。首先Oracle的官方文檔中並沒有包含這個變量的設置,但是如果不進行設置的話,那麼一 會在安裝Oracle的時候,安裝到17%,提示拷貝文件naeet.o的時候,整個安裝就停住了,這個時候即使點cancel按鈕都沒有用,只能將整個 安裝窗口關閉。

Metalink上的文章倒是提到了對這個參數的設置,但是Metalink給出的建議設置是2.4.21。這個設置似乎對SuSE 8環境是有效的,但是對REDHAT AS4環境仍然沒有作用。從Metalink上的回覆看,也沒有看到對這個問題的進一步說明。

Oracle9204在REDHAT AS3上的安裝時,建議將這個變量設置爲2.4.1,因此,我選擇了將這個變量也設置爲2.4.1,在隨後的安裝過程中,上面提到的問題沒有再次出現。我 估計將這個值設置的稍微大一些的話,也是可以的,我沒有進行具體的測試,如果有興趣,可以嘗試一下,看看這個值最大可以設置到多大。

設置好環境變量後,重新應用一下初始腳本,保證設置的環境應用到當前用戶:

$ . .bashrc

如果是使用光盤介質,可以跳過下面的步驟,如果是下載的壓縮包,需要將壓縮包ftp到oracle用戶可以訪問的目錄下。解壓並展開:

$ gunzip amd64_db_9204_Disk1.cpio.gz
$ gunzip amd64_db_9204_Disk2.cpio.gz
$ gunzip amd64_db_9204_Disk3.cpio.gz
$ cpio -idcmv < amd64_db_9204_Disk1.cpio
$ cpio -idcmv < amd64_db_9204_Disk2.cpio
$ cpio -idcmv < amd64_db_9204_Disk3.cpio

展開文件後,終於可以開始安裝了:

$ cd Disk1
$ . runInstaller

安裝開始沒有什麼值得說的,無非是點擊幾個NEXT的,輸入用戶組oinstall,並根據提示在後臺使用root用戶執行/tmp/orainstRoot.sh腳本。

隨後選擇安裝Oracle Database 9204,同時添加簡體中文語言,選擇企業版,並選擇定製數據庫配置。這些配置都可以根據個人的需求進行調整。

所有準備工作完成,點擊install。

在安裝到88%的時候,會報錯,錯誤信息如下:Error in invoking target install_isqlplus of makefile /opt/oracle/product/9.2/sqlplus/lib/ins_sqlplus.mk。

這是使用了64位的gcc編譯32位程序時出現的錯誤,這裏先點擊ignore忽略錯誤,隨後我們在解決這個問題。

在安裝到98%的時候,會報和剛纔類似的錯誤:Error in invoking target install of makefile /opt/oracle/product/9.2/rdbms/lib/ins_rdbms.mk,這裏也點擊ignore忽略錯誤。

忽略了兩個錯誤後,安裝完成,這時候Oracle會但出一個對話框,要求用戶以root身份執行$ORACLE_HOME目錄下的一個root.sh腳本。

我們先修正上面兩個錯誤,然後在執行這個腳本。

修正這兩個錯誤是整個安裝過程中最麻煩的地方,參照metalink上的文章,我又反反覆覆摸索了四、五次才嘗試成功。

首先以root身份來到/usr/bin目錄下,查看gcc*:

# cd /usr/bin
# ls -l gcc*
-rwxr-xr-x 2 root root 105392 May 24 07:46 gcc
-rwxr-xr-x 2 root root 94360 Dec 2 2004 gcc32

這時候我們需要編寫一個gcc296的腳本,內容如下:

#!/bin/sh
exec /usr/bin/gcc32 -static-libgcc -B/usr/lib/gcc-lib/i386-redhat-linux/2.96/ "$@"

注意,上述腳本是metalink給出的,不過metalink給出的腳本至少有3個問題,首先metalink上給出的gcc32錯誤拼寫成了 gcc33,第二點metalink腳本中包含了-m32,而這個編譯標誌在編譯上述兩個錯誤時是不需要的,當然metalink上有進一步的說明,不過 還是容易使人誤導。第三點其實不是metalink腳本的問題,而是這個腳本太長了,導致腳本最後的”$@”跑到了第三行,而實際上整個腳本只有兩行。像 我這樣對操作系統、shell腳本語言以及gcc編譯不是很熟悉的人很容易在這裏出錯。

將上面給出的內容添加到gcc296中,然後修改gcc296的文件屬性爲755。

然後進行類似的操作編寫g++296的腳本:

#!/bin/sh
exec /usr/bin/g++32 -static-libgcc -B/usr/lib/gcc-lib/i386-redhat-linux/2.96/ "$@"

同樣,將g++296的腳本的文件屬性修改爲755。

# chmod 755 gcc296
# chmod 755 g++296

下面根據gcc和g++的版本信息,將gcc和g++重命名。然後將gcc和g++分別指向gcc296和g++296。

# mv gcc gcc346
# mv g++ g++346
# ln -s -f gcc296 gcc
# ln -s -f g++296 g++

下面回到oracle用戶環境,重新編譯剛纔出現錯誤的兩個對象:

通過/opt/oracle/product/9.2/install/make.log文件,找到剛纔出現錯誤的兩個對象,重新make

# su - oracle
$ cd /opt/oracle/product/9.2/sqlplus/lib
$ /usr/bin/make -f ins_sqlplus.mk install_isqlplus ORACLE_HOME=/opt/oracle/product/9.2
$ cd /opt/oracle/product/9.2/rdbms/lib
$ make -f /opt/oracle/product/9.2/rdbms/lib/ins_rdbms.mk /opt/oracle/product/9.2/rdbms/lib/extproc32 EXTPROC=/opt/oracle/product/9.2/rdbms/lib/extproc32 LIBDIR=lib32 LDFLAGS='-m32 -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) $(LDPATHFLAG)$(LIBHOME)stubs/'

重新編譯後,回到root用戶,恢復剛纔進行的操作:

$ exit
# rm -f gcc
# rm -f g++
# mv gcc346 gcc
# mv g++346 g++
# . /opt/oracle/product/9.2/root.sh

至此,Oracle9204的軟件部分安裝完畢。

建庫、配置listener等操作就沒有什麼可說的了,值得一提的是,建庫過程中安裝data mining的時候碰到了一個ORA-1031的錯誤,比較奇怪。

 

yangtingkun 發表於:2006.09.20 20:03
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章