何時,紗窗外,風搖翠竹

          常用鏈接

          統計

          最新評論

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

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


          一 簡述

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

          二 技術準備

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

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

          三 安裝準備

          ??? 在做了一定的技術準備后,我們可以開始安裝Oracle了,首先是要評估一下安裝的環境,包括硬件和軟件的。對于硬件,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好像沒什么用,不裝也沒事,裝的版本不對反而會引發一些問題。

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

          • 查看內存的情況: ????

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

          • 硬盤和交換分區:

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

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

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

          如果需要調整內核參數、 調節信號燈的話,按下面的步驟執行:
          ? ? 打開/etc/sysctl.conf 文件,將下列數據寫入到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是共享內存段最大尺寸,kernel.shmmni是共享內存段最小尺寸。 ? ?用命令:
          ? ???#cat sem
          ??
          ? ?可以查看kernel.sem的數值。其中, 250 是參數SEMMSL的值,32000是參數SEMMNS的值, 100是參數SEMOPM的值,而128則是參數SEMMNI的值。


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

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

          ? ?如果此時進入到/proc/sys/kernel路徑,用上述的命令再次查看,就會看到設置的參數已經生效。

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

          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
          一般來說應該安裝cpp, glibc, egcs, egcs-c++, glibc-devel, kernel-headers等包,如果是新安裝Linux,則在安裝的時候選包的時候,把開發那個大類和一個兼容包的大類(里面都是 compat 開頭的包)都選上,應該問題就不大. 如果按照時發現有包不全,從linux光盤里找到對應的rpm安裝就是了。

          四 逐步安裝

          1 安裝JDK

          ??可不裝。

          2 創建用戶

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

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

          3 設置oracle用戶的環境變量

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

          	# .bash_profile
          
          	# Get the aliases and functions
          	if [ -f ~/.bashrc ]; then
          			. ~/.bashrc
          	fi
          	
          	# 這里的***.***.***.***指服務器的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) 設置DISPLAY
          ????Oracle 9i不再支持字符模式的安裝, 必須使用圖形化安裝,所以要設置display變量。如果不在配置文件中設置,也可以直接用命令 $ export display="***.***.***.***:0.0" 進行設置,如果執行命令時出錯,需要以root用戶在xserver中注冊,命令: # xhost +***.***.***.*** 。這里的***.***.***.***指的是服務器的 IP 地址。

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

          	export NLS_LANG=American_America.UTF-8
          	export LANG=en_US
          	export LC=en_US 
          	export LC_ALL=American_America.UTF-8
          可以執行下面的命令查看當前機器的locale相關的配置:

          ????$ locale

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

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

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

          4 準備安裝文件

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

          • 從光盤安裝

            ??下載光盤映象文件(ISO文件,3個文件)或者DVD映象文件,校驗md5碼無誤后刻錄光盤。
          • 從硬盤安裝
            下載安裝文件,假設為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網站上下載的,速度很快,兩個小時能全down下來),安裝完成再打的補丁升級到9206,補丁不是公開的而且很大,需要到Metalink去找。

          5 安裝前打一些補丁

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

          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, 會出現下面的錯誤: rhel3_pre_install.sh: line 36: gcc: command not found 而要是運行完了rhel3_pre_install.sh出現 error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory 這種錯誤的時候,也不用急,就是因為這個補丁沒有正常打成功導致了一些問題,只要刪掉/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數據庫了,步驟:

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

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

          7. 安裝錯誤
            遇到錯誤,首先檢查/tmp/OraInstall******(時間) 中的錯誤日志,如果遇到 make 的錯誤,檢查: $ORACLE_HOME/install/make.log 。
            出現下面的錯誤"Error invoking target install of makefile /opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk",手工修復,修復方法: 編輯 $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 然后選擇重試。
            在安裝過程中,可能會提示兩個錯誤, 一個錯誤是關于OEM Agent,另一個錯誤是ins_ctx.mk,(我以前安裝9201的時候遇到過,這次因為是直接基于9204裝的,這兩個錯誤并沒有出現),直接忽略或者跳過.一般來說,這兩個錯誤并不影響我們使用Oracle的數據的基本功能,如果要修復這兩個錯誤,也很容易,后面附一個解決這兩個錯誤的辦法。
          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錯誤,現在可以打補丁修復: $ unzip p3119415_9204_LINUX.zip $ cd 3119415 $ opatch apply
          9. 現在要為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 建庫

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

          ??? 建庫完成后,數據庫就已經自動在運行了,執行$ps -ef |grep ora_ 查找相關進程, 以oracle用戶執行 $ sqlplus "/ as sysdba"進行連接測試,成功的話就大功告成了。

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 托里县| 扎赉特旗| 桐庐县| 芦山县| 分宜县| 赣榆县| 佛教| 司法| 舟山市| 织金县| 杭锦后旗| 娄底市| 垫江县| 玉门市| 康乐县| 深泽县| 泾阳县| 盐源县| 武汉市| 洪湖市| 龙南县| 海淀区| 香格里拉县| 商都县| 绍兴市| 屏东县| 罗山县| 禹城市| 五常市| 灵寿县| 蓝山县| 历史| 长兴县| 五华县| 蓬莱市| 延川县| 涞源县| 东海县| 崇仁县| 芜湖县| 泰安市|