何時,紗窗外,風(fēng)搖翠竹

          導(dǎo)航

          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          留言簿(3)

          隨筆分類

          隨筆檔案

          閱讀排行榜

          評論排行榜

          常用鏈接

          統(tǒng)計

          最新評論

          • 1.?re: 慎用AJAX框架
          • AJAX是中國技術(shù)領(lǐng)域的紅燈區(qū)。。想爽,但又怕潛伏著危險。。。
          • --阿斯頓飛
          • 2.?re: 慎用AJAX框架
          • 評論內(nèi)容較長,點擊標(biāo)題查看
          • --夏如嘏
          • 3.?re: 慎用AJAX框架
          • ajax 要懂的原理,同意樓主,框架慎用
          • --驕傲
          • 4.?re: 慎用AJAX框架
          • @讀書、思考、生活
            2、bug滿天飛,那就說明是水平不到家
            您的水平能高到?jīng)]有bug?
          • --樓主
          • 5.?re: 慎用AJAX框架
          • 只要你懂xmlhttp,為什么非要用ajax呢,我從2000年開始使用xmlhttp,ajax剛出來的時候看了一眼,冷笑一聲。所以爭論沒有意義,到處都是新瓶裝老酒的故事
          • --挨踢的貨

          在Red hat ES4 上安裝Oracle9i完全手冊


          一 簡述

          ????在Oracle10g開始盛行的今天,9i依然在眾多項目中得到廣泛應(yīng)用, 這次一個偶然的機會需要在Red Hat ES 4上裝Oracle9i, 想想上次裝Oracle還是三年前的事了, 由于ES4不 在 Oracle 9i 的官方支持的linux版本之內(nèi),這次安裝用了近2天時間才搞定,查資料,找補丁,一遍一遍的重裝,好像回到了當(dāng)年剛參加工作時的那種狀態(tài),很有感觸,做技術(shù)有些東西總是不會變。裝的過程中發(fā)現(xiàn)對ES4上裝9i的總結(jié)不多,大部分都不是很完整,便整理了這個文檔,希望對大家有用。

          二 技術(shù)準(zhǔn)備

          ??? Oracle數(shù)據(jù)庫在linux下的安裝相對來說要復(fù)雜一些,所以大家安裝前要做一定的技術(shù)準(zhǔn)備,有下面幾個方面:

          • 要熟悉linux的基本命令
          • 要了解Oracle的基本結(jié)構(gòu)和一些術(shù)語的含義,如SGA,Redo Log Buffer.
          • 要先準(zhǔn)備一些安裝資料,對安裝的過程和安裝過程中可能出現(xiàn)的問題有一個提前的認(rèn)識.
          ????從參考資料來說,最好的資料是Oracle官方的文檔,非常全面,應(yīng)有盡有。購買Oracle時會專門有一張文檔光盤,許多網(wǎng)站上也提供下載。此外,Oracle官方網(wǎng)站上也有專門的linux欄目。除了Oracle的官方資料以外,最值得一看的是臺灣何致億先生的《Oracle 9i 數(shù)據(jù)庫管理實務(wù)》,絕對是經(jīng)典。其他的一些網(wǎng)站上的資料,大多不夠全面和完整,有些文檔寫的還有錯誤,用來參考就可以了。

          三 安裝準(zhǔn)備

          ??? 在做了一定的技術(shù)準(zhǔn)備后,我們可以開始安裝Oracle了,首先是要評估一下安裝的環(huán)境,包括硬件和軟件的。對于硬件,Oracle的官方文檔中是這樣描述的:

          • How many disk drives are available to Oracle and its databases
          • How many, if any, dedicated tape drives are available to Oracle and its databases
          • How much memory is available to the instances of Oracle you will run (see your system's configuration documentation)
          ?而軟件其實除了Linux之外就是確定要使用的 JDK 的版本,Oracle也自帶了兩個jdk,我們裝的jdk好像沒什么用,不裝也沒事,裝的版本不對反而會引發(fā)一些問題。

          對于安裝 Oracle 9i,最低的內(nèi)存要求是 512 M,硬盤有最少要 2.5G 的空間,400M以上的臨時硬盤空間。查看系統(tǒng)硬件情況的幾個常用的命令:

          • 查看內(nèi)存的情況: ????

          ????????1) $free
          ??????? 2) $top?????
          ??????? 3) $grep MemTotal /proc/meminfo?
          ??????? 4)交換空間 # grep SwapTotal /proc/meminfo 一般這個值是1 GB或者2倍內(nèi)存大小

          • 硬盤和交換分區(qū):

          ????????? 1) $df????
          ??????????2) $/sbin/swapon -s
          ????????? 3) /tmp 空間 400 MB??? # df -k /tmp?
          ????????? 4)軟件所需空間 2.5 GB???? # df -k

          下面要來調(diào)整系統(tǒng)內(nèi)核參數(shù).Oracle9i使用Linux的共享內(nèi)存、交換區(qū)等資源進(jìn)行工作,如果系統(tǒng)的的內(nèi)核參數(shù)設(shè)置不能滿足Oracle的需求,那么在安裝或使用過程就會出現(xiàn)各種問題.進(jìn)入目錄/proc/sys/kernel后,用 cat 命令查看各個參數(shù)的值
          ? ? #cat shmmax
          ? ? #cat shmmni
          ? ? #cat shmall

          ? ?特別注意要調(diào)大linux的共享內(nèi)存的值,即shmmax,否則在安裝時Oracle安裝程序會提示共享內(nèi)存不足的錯誤。共享內(nèi)存大小一般設(shè)為物理內(nèi)存的一半,比如2G內(nèi)存,你需要設(shè)成1G 就是 1024*1024*1024 = 1073741824,512M 內(nèi)存就是 1474838646. 比較簡便的調(diào)整的命令是以root身份執(zhí)行
          #echo 1073741824 > shmmax 命令。據(jù)說10g這個值需要設(shè)到2G以上才能裝,恐怖. 此外很多文檔上說要設(shè)置內(nèi)核參數(shù)、 調(diào)節(jié)信號燈,但根據(jù)個人經(jīng)驗, 不設(shè)置也不會影響正常安裝。

          如果需要調(diào)整內(nèi)核參數(shù)、 調(diào)節(jié)信號燈的話,按下面的步驟執(zhí)行:
          ? ? 打開/etc/sysctl.conf 文件,將下列數(shù)據(jù)寫入到sysctl.conf的末尾并保存:

          ? ???kernel.shmmax = 1073741824? ?? ???
          ? ???kernel.shmmni = 4096? ?? ?? ?? ?
          ? ???kernel.shmall = 2097152
          ? ???kernel.sem = 250 32000 100 128
          ? ???fs.file-max = 65536
          ? ???net.ipv4.ip_local_port_range = 1024 65000

          ? ? 其中,kernel.shmmax是共享內(nèi)存段最大尺寸,kernel.shmmni是共享內(nèi)存段最小尺寸。 ? ?用命令:
          ? ???#cat sem
          ??
          ? ?可以查看kernel.sem的數(shù)值。其中, 250 是參數(shù)SEMMSL的值,32000是參數(shù)SEMMNS的值, 100是參數(shù)SEMOPM的值,而128則是參數(shù)SEMMNI的值。


          ? ?一般來說,出于性能上的考慮,還需要需要進(jìn)行如下的設(shè)定,以便改進(jìn)Oracle用戶的有關(guān) nofile(可打開的文件描述符的最大數(shù))和nproc(單個用戶可用的最大進(jìn)程數(shù)量)的要求. 打開/etc/security/limits.conf文件,將下列數(shù)據(jù)添加到 limits.conf的末尾并保存:
          ? ? oracle soft nofile 65536
          ? ? oracle hard nofile 65536
          ? ? oracle soft nproc 16384
          ? ? oracle hard nproc 16384

          ???修改并保存完畢后,重新啟動。也可以執(zhí)行: # /sbin/sysctl -p 命令操作來使我們所做的變更生效.

          ? ?如果此時進(jìn)入到/proc/sys/kernel路徑,用上述的命令再次查看,就會看到設(shè)置的參數(shù)已經(jīng)生效。

          用命令rpm -qa|grep compat 查看系統(tǒng)中是否安有以下幾個軟件包:

          compat-libstdc++-****.i386.rpm
          compat-gcc-****.i386.rpm
          compat-Libgcj-****.i386.rpm
          compat-Libgcj-devel-****.i386.rpm
          binutils-****.i386.rpm
          nss_db-compat-****.i386.rpm
          一般來說應(yīng)該安裝cpp, glibc, egcs, egcs-c++, glibc-devel, kernel-headers等包,如果是新安裝Linux,則在安裝的時候選包的時候,把開發(fā)那個大類和一個兼容包的大類(里面都是 compat 開頭的包)都選上,應(yīng)該問題就不大. 如果按照時發(fā)現(xiàn)有包不全,從linux光盤里找到對應(yīng)的rpm安裝就是了。

          四 逐步安裝

          1 安裝JDK

          ??可不裝。

          2 創(chuàng)建用戶

          ? 創(chuàng)建用戶和組,一方面是按Oracle的要求準(zhǔn)備用戶,另一方面也通過創(chuàng)建用戶來準(zhǔn)備好Oracle的安裝容器,命令如下:

          創(chuàng)建用戶組:
          [root@Server0]# groupadd oinstall
          [root@Server0]# groupadd dba
          添加用戶,設(shè)置密碼:
          [root@Server0]# useradd -g oinstall -G dba oracle
          [root@Server0]# passwd oracle

          3 設(shè)置oracle用戶的環(huán)境變量

          ? 這是關(guān)鍵步驟! 編輯oracle用戶根目錄下的.bash_profile文件,指定其環(huán)境變量,這些參數(shù)指定安裝的,在不同的Red Hat 版本上安裝的區(qū)別也在這有所體現(xiàn)。ES 4下的配置文件示例:

          	# .bash_profile
          
          	# Get the aliases and functions
          	if [ -f ~/.bashrc ]; then
          			. ~/.bashrc
          	fi
          	
          	# 這里的***.***.***.***指服務(wù)器的ip地址
          	export DISPLAY="***.***.***.***:0.0"
          
          	# User specific environment and startup programs
          	export ORACLE_BASE=/home/oracle/OraHome1
          	export ORACLE_HOME=/home/oracle/OraHome1
          	export ORACLE_SID=dbora
          	export ORACLE_TERM=xterm
          	export LANG=zh_CN
          
          	export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
          	LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/openwin/lib
          	LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/td/lib:/usr/ucblib:/usr/local/lib
          	export LD_LIBRARY_PATH
          
          	# 注意這一句
          	export LD_ASSUME_KERNEL=2.4.19
          
          	PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc:/opt/bin
          	PATH=$PATH:$ORACLE_HOME/bin
          	PATH=$PATH:/usr/java/jdk/bin:/usr/java/jdk/jre/bin:.
          
          	CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
          	CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
          	export CLASSPATH
          
          	PATH=$PATH:$HOME/bin
          	export PATH
          	unset USERNAME
          	

          說明:
          1) 設(shè)置DISPLAY
          ????Oracle 9i不再支持字符模式的安裝, 必須使用圖形化安裝,所以要設(shè)置display變量。如果不在配置文件中設(shè)置,也可以直接用命令 $ export display="***.***.***.***:0.0" 進(jìn)行設(shè)置,如果執(zhí)行命令時出錯,需要以root用戶在xserver中注冊,命令: # xhost +***.***.***.*** 。這里的***.***.***.***指的是服務(wù)器的 IP 地址。

          2) 設(shè)置語言和字符集
          ????Oracle 9i支持多國語言設(shè)置,目的是為了支持世界范圍內(nèi)的語言和字符集,在安裝前可以在配置文件中為Oracle 9i的設(shè)置安裝語言和字符集(注意,只是安裝的軟件的,不是庫的),可以設(shè)置的參數(shù)有:NLS_LANG、LANG、LC,LC_ALL等,以 NLS_LANG 為例解釋其含義,比如 export NLS_LANG=American_America.zhs16gbk ,其格式是國家語言設(shè)置.字符集,即American_America是國家語言設(shè)置,zhs16gbk是字符集,而American_America中的 American由指劃分的世界大區(qū),America指國家。注意國家語言設(shè)置和字符集沒有必然的關(guān)聯(lián)關(guān)系。常見的設(shè)置舉例:

          	export NLS_LANG=American_America.UTF-8
          	export LANG=en_US
          	export LC=en_US 
          	export LC_ALL=American_America.UTF-8
          可以執(zhí)行下面的命令查看當(dāng)前機器的locale相關(guān)的配置:

          ????$ locale

          3) 設(shè)置 ORACLE_SID
          ????這里設(shè)置的ORACLE_SID是 Oracle 默認(rèn)啟動的實例id,一定要設(shè)置正確。

          4) 設(shè)置 LD_ASSUME_KERNEL
          ????對于Red Hat Enterprise Server 3, 要設(shè)置 LD_ASSUME_KERNEL 的值為:2.4.19。

          5) /sbin 一定要加到 PATH 中去,要不安裝補丁時會出錯。

          4 準(zhǔn)備安裝文件

          Oracle常用的是兩種安裝方式:從光盤和從硬盤文件。

          • 從光盤安裝

            ??下載光盤映象文件(ISO文件,3個文件)或者DVD映象文件,校驗md5碼無誤后刻錄光盤。
          • 從硬盤安裝
            下載安裝文件,假設(shè)為Linux9i_Disk1.cpio.gz,Linux9i_Dis2.cpio.gz,Linux9i_Disk.cpio.gz,校驗其md5碼。命令如下:
            $ md5sum Linux9i_Disk1.cpio.gz Linux9i_Disk2.cpio.gz Linux9i_Disk3.cpio.gz
            
            f1a99eb8c8aca1d69a9eeaa8858570d7 Linux9i_Disk1.cpio.gz 
            f2444c0fa53c898e7d2f78c184829d7d Linux9i_Disk2.cpio.gz 
            ec655402d8bc547ed031f14122da574b Linux9i_Disk3.cpio.gz 
            
            驗證無誤后解壓文件:
             #gunzip Linux9i_Disk1.cpio.gz
             #cpio -idmv < Linux9i_Disk1.cpio
             
            類似的對解壓Linux9i_Dis2.cpio.gz,Linux9i_Disk3.cpio.gz 這個將生成三個文件夾:DISK1, DISK2, DISK3

          安裝文件的選擇也有很多的方式,可以先裝一個92的一個低點版本, 再打補丁升級到一個高點版本,比如我是安裝了9204(從oracle網(wǎng)站上下載的,速度很快,兩個小時能全down下來),安裝完成再打的補丁升級到9206,補丁不是公開的而且很大,需要到Metalink去找。

          5 安裝前打一些補丁

          ??? Oracle 官方為Metalink上的用戶公開了一些 Oracle 9i 的補丁,可以解決安裝時一些錯誤,不過要在Metalink上注冊需要購買過Oracle產(chǎn)品,沒有的話只能去網(wǎng)上找了.補丁的情況大概如下:

          p3006854_9204_LINUX.zip 在運行 runInstaller 之前打,如果不打的話那個安裝的圖形界面跑不起來.
          p2617419_210_GENERIC.zip 這個是oracle 的打補丁工具,也是必須的
            
          p4198954_40_LINUX.zip 這個是在 RH ES4 上按照Oracle 9i必需要打的一個補丁,我也就是因為不知道要打這個補丁耽誤了很多時間。
          

          ? 先按照p3006854,步驟是以root身份運行:

          #unzip p3006854_9204_LINUX.zip
          #cd 3006854
          #sh rhel3_pre_install.sh

          ?? 注意這里可能會出一些錯誤。比如如果沒有安裝gcc, 會出現(xiàn)下面的錯誤: rhel3_pre_install.sh: line 36: gcc: command not found 而要是運行完了rhel3_pre_install.sh出現(xiàn) error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory 這種錯誤的時候,也不用急,就是因為這個補丁沒有正常打成功導(dǎo)致了一些問題,只要刪掉/etc/ld.so.preload 這個文件就行了:

          #rm /etc/ld.so.preload

          然后就可以再安裝p4198954包 $unzip p4198954_21_LINUX.zip 在解開的目錄 4198954 下分別有:compat-oracle-rhel4-1.0-5.i386.rpm,compat-libcwait-2.0-2.i386.rpm 兩個包,分別安裝。

          6 安裝Oracle

          打完上面的補丁后,可以開始安裝Oracle數(shù)據(jù)庫了,步驟:

          1. 切換到oracle用戶
            $ su - oracle
            $ cd ~  
          2. 進(jìn)入安裝文件目錄,設(shè)置環(huán)境變量LANG,用英文界面安裝( 中文有問題 ):export LANG=en_US
            $ cd /mnt/cdrom 或者 $ cd Disk1
            $ ./runInstaller.sh 或者 $./install(如果沒有權(quán)限,用root用戶執(zhí)行#chmod a+x ./runInstaller.sh)
          3. 設(shè)置參數(shù),選定要安裝的目錄
            主要是做兩件事:設(shè)定安裝的Unix組:oinstall和選擇安裝目錄。
          4. 執(zhí)行腳本
            系統(tǒng)會提示要在/tmp下以Root身份運行***Root.sh,打開終端窗口,以Root身份運行/tmp/***Root.sh,然后回到安裝畫面點Continue
          5. 選擇安裝的產(chǎn)品和類型
            按提示設(shè)置安裝的產(chǎn)品和類型,要分清各個產(chǎn)品的區(qū)別。
            此外,一般不在安裝時直接建庫,因此,選擇安裝產(chǎn)品類型時選Software Only 。
          6. 安裝

            系統(tǒng)安裝過程中,文件拷貝完成后系統(tǒng)提示運行Root.sh腳本,打開終端,以Root身份運行Root.sh后返回繼續(xù)安裝即可.

          7. 安裝錯誤
            遇到錯誤,首先檢查/tmp/OraInstall******(時間) 中的錯誤日志,如果遇到 make 的錯誤,檢查: $ORACLE_HOME/install/make.log 。
            出現(xiàn)下面的錯誤"Error invoking target install of makefile /opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk",手工修復(fù),修復(fù)方法: 編輯 $ORACLE_HOME/bin/genclntsh 把 LD_SELF_CONTAINED="-z defs" 改成: LD_SELF_CONTAINED="" 然后運行腳本:$ORACLE_HOME/bin/genclntsh: $ $ORACLE_HOME/bin/genclntsh Created /opt/oracle/product/9.0.1/lib/libclntst9.a 然后選擇重試。
            在安裝過程中,可能會提示兩個錯誤, 一個錯誤是關(guān)于OEM Agent,另一個錯誤是ins_ctx.mk,(我以前安裝9201的時候遇到過,這次因為是直接基于9204裝的,這兩個錯誤并沒有出現(xiàn)),直接忽略或者跳過.一般來說,這兩個錯誤并不影響我們使用Oracle的數(shù)據(jù)的基本功能,如果要修復(fù)這兩個錯誤,也很容易,后面附一個解決這兩個錯誤的辦法。
          8. 安裝完成后,可以為Oracle打補丁升級,打補丁時要使用opatch命令,此命令是oracle打補丁的一個工具,需要單獨下載此工具,為patch 2617419。安裝完了之后把opatch的路徑添加到PATH中。
            $ unzip p2617419_210_GENERIC.zip  
            $ ls  
            $ pwd  
            /home/oracle/Patch  
            $export PATH=$PATH:/home/oracle/Patch:/sbin 
            
            要是前面是忽略了ins_oemagent.mk錯誤,現(xiàn)在可以打補丁修復(fù): $ unzip p3119415_9204_LINUX.zip $ cd 3119415 $ opatch apply
          9. 現(xiàn)在要為oracle打9206補丁升級
            $ unzip p394880_9206_LINUX.zip
            $ cd Disk1
            $ ./runInstaller
            這個補丁的安裝需要分兩步,先是升級Universal Installer, 注意要在Specify File Location 那一步選Destination到Oracle的安裝目錄;升級Universal Installer到10以后,就可以安裝安裝 9iR2 Patchset了,記得把安裝目錄選成一樣。補丁比較大有幾百M,裝完后Oracle軟件的安裝就算完成了。

          7 建庫

          ?? 安裝完成后執(zhí)行 $ ORACLE_HOME/bin/dbca 啟動建庫助手,按自己實際要求建立數(shù)據(jù)庫.需要設(shè)置的參數(shù)有內(nèi)存分配參數(shù),字符集編碼等,可以參考相關(guān)的文檔.我在建庫的過程中也遇到了一個錯,說是NLS設(shè)置不對,便將.bash_profile中的 export NLS_LANG=American_America.UTF-8 改為 NLS_LANG=American 就好了。

          ??? 建庫完成后,數(shù)據(jù)庫就已經(jīng)自動在運行了,執(zhí)行$ps -ef |grep ora_ 查找相關(guān)進(jìn)程, 以oracle用戶執(zhí)行 $ sqlplus "/ as sysdba"進(jìn)行連接測試,成功的話就大功告成了。

          聲明:本博客中所有文章均為版主原創(chuàng),轉(zhuǎn)載請保留作者信息,并請注明出處。
          //作者: 王瑋琳? 2006-11-07

          posted on 2006-11-07 15:58 weidy 閱讀(3069) 評論(0)  編輯  收藏 所屬分類: Linux/Unix


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 措美县| 辛集市| 凤庆县| 阳原县| 丹东市| 新民市| 甘洛县| 甘南县| 上杭县| 阿克陶县| 潞城市| 洛宁县| 大石桥市| 宣汉县| 云龙县| 深水埗区| 灵石县| 尼勒克县| 辽宁省| 上虞市| 澳门| 登封市| 毕节市| 五指山市| 宣恩县| 白城市| 吉木萨尔县| 嘉荫县| 昆明市| 玉环县| 陇川县| 左权县| 浏阳市| 建水县| 密云县| 赣榆县| 浦江县| 广德县| 龙江县| 星子县| 石狮市|