2009年3月11日
盡管 JVM 調(diào)整操作隨 JVM 提供程序的不同而有所變化,但一般的調(diào)整概念適用于所有 JVM。這些一般的概念包括:
編譯器調(diào)整。在服務(wù)器運(yùn)行時期間,所有 JVM 都使用即時(JIT)編譯器來將 Java 字節(jié)碼編譯為本機(jī)指令。
Java 內(nèi)存或堆調(diào)整。JVM 內(nèi)存管理功能(即垃圾回收)為提高 JVM 性能提供了其中一種最大的可能性。
類裝入調(diào)整。
過程
優(yōu)化啟動性能和運(yùn)行時性能
在某些環(huán)境中,優(yōu)化 WebSphere Application Server
的啟動性能比優(yōu)化運(yùn)行時性能更重要。在另一些環(huán)境中,優(yōu)化運(yùn)行時性能更為重要。缺省情況下,IBM JVM 是針對運(yùn)行時性能進(jìn)行優(yōu)化的,而基于
HotSpot 的 JVM 是針對啟動性能進(jìn)行優(yōu)化的。
Java JIT
編譯器在很大程度上決定了是優(yōu)化啟動性能還是優(yōu)化運(yùn)行時性能。編譯器使用的初始優(yōu)化級別影響編譯類方法所耗用的時間以及啟動服務(wù)器所耗用的時間。為了提高
啟動速度,可以降低編譯器所使用的初始優(yōu)化級別。這意味著,由于現(xiàn)在使用較低的優(yōu)化級別來編譯類方法,所以應(yīng)用程序的運(yùn)行時性能可能會下降。
因?yàn)榫幾g器在運(yùn)行時執(zhí)行階段會根據(jù)自己的判斷來重新編譯類方法以提高性能,所以,很難提供一個有關(guān)特定的運(yùn)行時性能影響的說明。最終,應(yīng)用程序的持續(xù)時間
是影響運(yùn)行時性能下降程度的主要原因。運(yùn)行時間較短的應(yīng)用程序的方法被重新編譯的可能性較高。運(yùn)行時間較長的應(yīng)用程序的方法被重新編譯的可能性較低。
IBM JVM 的缺省設(shè)置是使用高優(yōu)化級別來執(zhí)行初始編譯。如果需要更改此行為,可以使用以下 IBM JVM 選項(xiàng):
-Xquickstart
此設(shè)置影響 IBM JVM 使用較低優(yōu)化級別來編譯類方法的方式,這將提高服務(wù)器啟動速度,但會使運(yùn)行時性能下降。缺省情況下,如果未指定此參數(shù),IBM JVM 最初將使用較高的初始優(yōu)化級別來執(zhí)行編譯。此設(shè)置能夠提高運(yùn)行時性能,但會減慢服務(wù)器啟動速度。
缺省值: 高初始編譯器優(yōu)化級別
建議值: 高初始編譯器優(yōu)化級別
用法: -Xquickstart 可以加快服務(wù)器啟動速度。
基于 Sun 的 Hotspot 技術(shù)的 JVM 最初使用低優(yōu)化級別來編譯類方法。使用下列 JVM 選項(xiàng)來更改此行為:
-server
基于 Sun 的 Hotspot 技術(shù)的 JVM 最初使用低優(yōu)化級別來編譯類方法。這些 JVM 使用簡單編譯器和能夠進(jìn)行優(yōu)化的 JIT
編譯器。通常情況下,使用簡單 JIT
編譯器。然而,可以通過設(shè)置此選項(xiàng)來使用能夠執(zhí)行優(yōu)化的編譯器。此更改將顯著提高服務(wù)器的性能,但使用能夠執(zhí)行優(yōu)化的編譯器時,服務(wù)器的預(yù)備時間將會較
長。
缺省值: 簡單編譯器
建議值: 能夠執(zhí)行優(yōu)化的編譯器
用法: -server 啟用能夠執(zhí)行優(yōu)化的編譯器。
設(shè)置堆大小 下列命令行參數(shù)對于設(shè)置堆大小來說很有用。
-Xms
此設(shè)置控制 Java 堆的初始大小。正確調(diào)整此參數(shù)有助于降低垃圾回收開銷,從而縮短服務(wù)器響應(yīng)時間并提高吞吐量。對于某些應(yīng)用程序來說,此選項(xiàng)的缺省設(shè)置可能會太低,從而導(dǎo)致發(fā)生大量小型垃圾回收。
缺省值: 256 MB
建議值: 隨工作負(fù)載的不同而有所變化,但高于缺省值。
用法: -Xms256m 將初始堆大小設(shè)置為 256 兆字節(jié)
-Xmx
此設(shè)置控制 Java 堆的最大大小。正確調(diào)整此參數(shù)有助于降低垃圾回收開銷,從而縮短服務(wù)器響應(yīng)時間并提高吞吐量。對于某些應(yīng)用程序來說,此選項(xiàng)的缺省設(shè)置可能會太低,從而導(dǎo)致發(fā)生大量小型垃圾回收。
缺省值: 512 MB
建議值: 隨工作負(fù)載的不同而有所變化,但高于缺省值。
用法: -Xmx512m 將最大堆大小設(shè)置為 512 兆字節(jié)
-Xlp
此設(shè)置可以與 IBM JVM 配合使用,以使用大頁來分配堆。然而,如果使用此設(shè)置,那么必須將操作系統(tǒng)配置為支持大頁。使用大頁可以降低 CPU 跟蹤堆內(nèi)存時的開銷,并且還允許創(chuàng)建較大的堆。
請參閱調(diào)整操作系統(tǒng) 以了解有關(guān)調(diào)整操作系統(tǒng)的更多信息。
應(yīng)該指定的堆大小取決于不同時段的堆使用情況。在堆大小頻繁更改的情況下,對 Xms 和 Xmx 參數(shù)指定相同的值可以提高性能。
調(diào)整 IBM JVM 的垃圾回收器。
使用 Java -X 選項(xiàng)來查看內(nèi)存選項(xiàng)列表。
-Xgcpolicy
將 gcpolicy 設(shè)置為 optthruput
會禁用并發(fā)標(biāo)記。如果沒有暫停時間問題(表現(xiàn)為應(yīng)用程序響應(yīng)時間不規(guī)律),那么應(yīng)該使用此選項(xiàng)來實(shí)現(xiàn)最大吞吐量。將 gcpolicy 設(shè)置為
optavgpause
會使用缺省值來啟用并發(fā)標(biāo)記。此設(shè)置將減少由正常垃圾回收所引起的應(yīng)用程序響應(yīng)時間不規(guī)律情況。然而,此選項(xiàng)可能會降低整體吞吐量。
缺省值: optthruput
建議值: optthruput
用法: Xgcpolicy:optthruput
-Xnoclassgc
缺省情況下,當(dāng)一個類沒有任何活動實(shí)例時,JVM 就會從內(nèi)存中卸裝該類,但是這樣會使性能下降。如果關(guān)閉類垃圾回收,就可以消除由于多次裝入和卸裝同一個類而造成的開銷。
如果不再需要某個類,那么該類在堆中所占用的空間通常將用于創(chuàng)建新對象。但是,如果應(yīng)用程序通過創(chuàng)建類的新實(shí)例來處理請求,并且該應(yīng)用程序的請求是隨機(jī)出
現(xiàn)的,那么可能會發(fā)生以下情況:先前請求者完成后,正常的類垃圾回收將通過釋放這個類占用的堆空間來清除這個類,但當(dāng)下一個請求出現(xiàn)時,又必須將這個類重
新實(shí)例化。在這種情況下,您可能想使用此選項(xiàng)來禁用類垃圾回收。
缺省值: 啟用類垃圾回收
建議值: 禁用類垃圾回收
用法: Xnoclassgc 禁用類垃圾回收
有關(guān)其他信息,請參閱下列 DeveloperWorks 文章:
http://www.ibm.com/developerworks/java/
調(diào)整 Sun JVM 的垃圾回收器
在 Solaris 平臺上,WebSphere Application Server 在 Sun Hotspot JVM 上運(yùn)行,而不是在 IBM JVM 上運(yùn)行。對 Sun JVM 使用正確的調(diào)整參數(shù)以利用其性能優(yōu)化功能十分重要。
Sun Hotspot JVM 依靠分代垃圾回收來實(shí)現(xiàn)最佳性能。下列命令行參數(shù)對于調(diào)整垃圾回收來說非常有用。
-XX:SurvivorRatio
將 Java
堆劃分為舊對象(長生命周期對象)區(qū)域和新對象區(qū)域。新對象區(qū)域進(jìn)一步細(xì)分為兩部分,第一部分用于分配給新對象(初始區(qū)域),第二部分存放那些經(jīng)過其前幾
次垃圾回收之后、但在被提升為舊對象之前仍在使用中的新對象(幸存者空間)。幸存者比率是堆的新對象區(qū)域中初始區(qū)域與幸存者空間的比率。增大此設(shè)置將針對
需要創(chuàng)建大量對象但僅保留少量對象的應(yīng)用程序優(yōu)化 JVM。與其他應(yīng)用程序相比,WebSphere Application Server
會生成更多中等生命周期對象和長生命周期對象,因此,應(yīng)該將此設(shè)置設(shè)置為小于缺省值。
缺省值: 32
建議值: 16
用法: -XX:SurvivorRatio=16
-XX:PermSize
為永久生成對象保留的堆區(qū)域存儲 JVM 的所有反射數(shù)據(jù)。對于動態(tài)地裝入和卸裝大量類的應(yīng)用程序來說,應(yīng)該增大此大小以優(yōu)化它們的性能。通過將此參數(shù)設(shè)置為 128MB,可以消除增大此部分堆所需的開銷。
建議值: 128 MB
用法: XX:PermSize=128m 將 perm 大小設(shè)置為 128 兆字節(jié)。
-Xmn
此設(shè)置控制允許新生成的對象在堆中耗用的空間量。正確調(diào)整此參數(shù)有助于降低垃圾回收開銷,從而縮短服務(wù)器響應(yīng)時間并提高吞吐量。此參數(shù)的缺省設(shè)置通常過
低,這將導(dǎo)致執(zhí)行大量的小型垃圾回收操作。如果將此參數(shù)設(shè)置得過高,可能會導(dǎo)致 JVM
僅執(zhí)行大型(全面)垃圾回收。這些垃圾回收操作通常會耗時幾秒鐘,這將嚴(yán)重影響服務(wù)器的整體性能。您必須保持將此參數(shù)設(shè)置為小于整個堆大小的一半,以避免
這種情況出現(xiàn)。
缺省值: 2228224 字節(jié)
建議值: 大約整個堆大小的 1/4
用法: -Xmn256m 將大小設(shè)置為 256 兆字節(jié)。
-Xnoclassgc
缺省情況下,當(dāng)一個類沒有任何活動實(shí)例時,JVM 就會從內(nèi)存中卸裝該類,但是這樣會使性能下降。如果關(guān)閉類垃圾回收,就可以消除由于多次裝入和卸裝同一個類而造成的開銷。
如果不再需要某個類,那么該類在堆中所占用的空間通常將用于創(chuàng)建新對象。但是,如果應(yīng)用程序通過創(chuàng)建類的新實(shí)例來處理請求,并且該應(yīng)用程序的請求是隨機(jī)出
現(xiàn)的,那么可能會發(fā)生以下情況:先前請求者完成后,正常的類垃圾回收將通過釋放這個類占用的堆空間來清除這個類,但當(dāng)下一個請求出現(xiàn)時,又必須將這個類重
新實(shí)例化。在這種情況下,您可能想使用此選項(xiàng)來禁用類垃圾回收。
缺省值: 啟用類垃圾回收
建議值: 禁用類垃圾回收
用法: Xnoclassgc 禁用類垃圾回收
有關(guān)調(diào)整 Sun JVM 的其他信息,請參閱 Java HotSpot VM 的性能文檔。
調(diào)整 HP JVM 的垃圾回收器
HP JVM 依靠分代垃圾回收來實(shí)現(xiàn)最佳性能。下列命令行參數(shù)對于調(diào)整垃圾回收來說非常有用。
-Xoptgc
此設(shè)置針對包含許多短生命周期對象的應(yīng)用程序優(yōu)化 JVM。如果未指定此參數(shù),那么 JVM 通常執(zhí)行大型(全面)垃圾回收。全面垃圾回收會花費(fèi)幾秒鐘時間,這將顯著影響服務(wù)器性能。
缺省值: off
建議值: on
用法: -Xoptgc 啟用優(yōu)化的垃圾回收。
-XX:SurvivorRatio
將 Java
堆劃分為舊對象(長生命周期對象)區(qū)域和新對象區(qū)域。新對象區(qū)域進(jìn)一步細(xì)分為兩部分,第一部分用于分配給新對象(初始區(qū)域),第二部分存放那些經(jīng)過其前幾
次垃圾回收之后、但在被提升為舊對象之前仍在使用中的新對象(幸存者空間)。幸存者比率是堆的新對象區(qū)域中初始區(qū)域與幸存者空間的比率。增大此設(shè)置將針對
需要創(chuàng)建大量對象但僅保留少量對象的應(yīng)用程序優(yōu)化 JVM。與其他應(yīng)用程序相比,WebSphere Application Server
會生成更多中等生命周期對象和長生命周期對象,因此,應(yīng)該將此設(shè)置設(shè)置為小于缺省值。
缺省值: 32
建議值: 16
用法: -XX:SurvivorRatio=16
-XX:PermSize
為永久生成對象保留的堆區(qū)域存儲 JVM 的所有反射數(shù)據(jù)。對于動態(tài)地裝入和卸裝大量類的應(yīng)用程序來說,應(yīng)該增大此大小以優(yōu)化它們的性能。通過將此參數(shù)指定為 128 兆字節(jié),可以消除增大此部分堆所需的開銷。
缺省值: 0
建議值: 128 兆字節(jié)
用法: -XX:PermSize=128m 將 PermSize 設(shè)置為 128 兆字節(jié)
-XX:+ForceMmapReserved
缺省情況下,Java 堆以“惰性交換”方式進(jìn)行分配。在此方式下,將根據(jù)需要來分配內(nèi)存頁,這樣可以節(jié)省交換空間,但是也將強(qiáng)制使用 4KB
頁。在大型堆系統(tǒng)中,這種內(nèi)存分配方式允許堆包含數(shù)以十萬計(jì)的頁。此命令禁用“惰性交換”并允許操作系統(tǒng)使用較大的內(nèi)存頁,從而優(yōu)化對構(gòu)成 Java
堆的內(nèi)存的訪問。
缺省值: off
建議值: on
用法: -XX:+ForceMmapReserved 將禁用“惰性交換”。
-Xmn
此設(shè)置控制允許新生成的對象在堆中耗用的空間量。正確調(diào)整此參數(shù)有助于降低垃圾回收開銷,從而縮短服務(wù)器響應(yīng)時間并提高吞吐量。此參數(shù)的缺省設(shè)置通常過低,這將導(dǎo)致執(zhí)行大量的小型垃圾回收操作。
缺省值: 沒有缺省值
建議值: 大約整個堆大小的 3/4
用法: -Xmn768m 將大小設(shè)置為 768 兆字節(jié)
虛擬頁大小
通過將 Java 虛擬機(jī)的指令頁大小和數(shù)據(jù)頁大小設(shè)置為 64MB,可以提高性能。
缺省值: 4MB
建議值: 64MB
用法: 使用以下命令。命令輸出提供了進(jìn)程可執(zhí)行文件的當(dāng)前操作系統(tǒng)特征:
chatr +pi64M +pd64M /opt/WebSphere/
AppServer/java/bin/PA_RISC2.0/
native_threads/java
-Xnoclassgc
缺省情況下,當(dāng)一個類沒有任何活動實(shí)例時,JVM 就會從內(nèi)存中卸裝該類,但是這樣會使性能下降。如果關(guān)閉類垃圾回收,就可以消除由于多次裝入和卸裝同一個類而造成的開銷。
如果不再需要某個類,那么該類在堆中所占用的空間通常將用于創(chuàng)建新對象。但是,如果應(yīng)用程序通過創(chuàng)建類的新實(shí)例來處理請求,并且該應(yīng)用程序的請求是隨機(jī)出
現(xiàn)的,那么可能會發(fā)生以下情況:先前請求者完成后,正常的類垃圾回收將通過釋放這個類占用的堆空間來清除這個類,但當(dāng)下一個請求出現(xiàn)時,又必須將這個類重
新實(shí)例化。在這種情況下,您可能想使用此選項(xiàng)來禁用類垃圾回收。
缺省值: 啟用類垃圾回收
建議值: 禁用類垃圾回收
用法: Xnoclassgc 禁用類垃圾回收
有關(guān)調(diào)整 HP 虛擬機(jī)的其他信息,請參閱 Java 技術(shù)軟件 HP-UX 11i。
調(diào)整 HP 的 JVM for HP-UX 設(shè)置下列選項(xiàng)以提高應(yīng)用程序性能:
-XX:SchedulerPriorityRange=SCHED_NOAGE
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.DevPollSelectorProvider
-XX:-ExtraPollBeforeRead
在RED HAT ENTERPRICE LINUX4 上安裝ORACLE 10G (10.2.0.1.0)
第一步 準(zhǔn)備工作
? 檢查內(nèi)存
SZ_TOMCAT:/home/xjy/soft> grep SwapTotal /proc/meminfo
SwapTotal: 2031608 kB
? 檢查內(nèi)核
Linux reaky.com 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
? 檢查軟件包
SZ_TOMCAT:/home/xjy/soft> rpm -q gcc make binutils glibc libaio
gcc-3.4.3-9.EL4
make-3.80-5
binutils-2.15.92.0.2-10.EL4
glibc-2.3.4-2
libaio-0.3.102-1
SZ_TOMCAT:/home/xjy/soft> rpm -q openmotif
openmotif-2.2.3-6.RHEL4.2
setarch-1.6-1
檢查內(nèi)核參數(shù)
sysctl –a
然后在/ETC/sysctl.conf中添加
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
net.core.rmem_default = 262144
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
執(zhí)行/sbin/sysctl –p
中文化顯示工作
修改/etc/sysconfig/i18n文件,改為
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-:en_US:en"
SYSFONT="lat0-sun16"修改/etc/sysconfig/i18n文件,改為
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-:en_US:en"
SYSFONT="lat0-sun16"
第二步:
? 創(chuàng)建用戶
su – root
[root@reaky etc]# groupadd dba
[root@reaky etc]# groupadd oinstall
[root@reaky etc]# useradd -c "Oracle software owner" -g oinstall -G dba oracle
? 設(shè)置環(huán)境
編輯/home/oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
alias ls='ls -CF'
PS1='SZ_TOMCAT:$PWD> '; export PS1
umask 022
set -o vi
stty intr '^c'
stty -istrip
#if [ $USER = "oracle" ]; then
# if [ $SHELL = "/bin/ksh" ]; then
# ulimit -p 16384
# ulimit -n 65536
# else
# ulimit -u 16384 -n 65536
# fi
#fi
EDITOR=vi; export EDITOR
TEMP=/tmp; export TEMP
TMPDIR=/tmp; export TMPDIR
### SETUP ORACLE ENVIRONMENT ###
ORACLE_SID=ora10; export ORACLE_SID
ORACLE_BASE=/home/oracle;
export ORACLE_BASE
ORACLE_HOME=/home/oracle/product/10.2.0; export ORACLE_HOME
ORACLE_TERM=ansi;
export ORACLE_TERM
JAVA_FONTS=/usr/share/fonts/zh_CN/TrueType/; export JAVA_FONTS
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
PATH=.:$ORACLE_HOME/bin:$PATH
export PATH
### FOR ORACLE INSTALL ###
export LC_ALL="en_US"
export LC="en_US"
第三步、安裝Oracle10g
1.開始Oracle普通安裝
以oracle用戶登錄linux,加載oracle Oracle10g光盤, 在執(zhí)行runInstaller前,確定Oracle環(huán)境變量已經(jīng)設(shè)置,可以執(zhí)行如下命令檢驗(yàn)環(huán)境變量的設(shè)置:
oracle 用戶登陸
$set
在終端命令窗口,執(zhí)行如下命令,開始o(jì)racle10g的安裝:
oracle$/mnt/cdrom/runInstaller
2.在歡迎窗口界面: 點(diǎn)擊“下一步”按鈕
3.指定Inventory 路徑和身份證明窗口:
inventory路徑是: /home/oracle/oraInventory
指定操作系統(tǒng)組名: oinstall
點(diǎn)擊“下一步”按鈕
4.這時會彈出一個執(zhí)行orainstRoot.sh 腳本的窗口:
打開另一個終端,以root用戶執(zhí)行如下命令:
su – root
cd /home/oracle/oraInventory
./orainstRoot.sh
然后,切換到oracle安裝窗口,點(diǎn)擊“繼續(xù)”按鈕
5. 在指定文件位置窗口彈出后,指定相應(yīng)的路徑:
源:
路徑: /mnt/cdrom/stage/products.xml
目的:
名稱: OraDb10g_home1
路徑: /home/oracle/product/10.1.0/db_1
然后,點(diǎn)擊“下一步”按鈕
6.選擇安裝類型:
選擇"企業(yè)版"選項(xiàng),然后點(diǎn)擊“下一步”按鈕。安裝程序驗(yàn)證系統(tǒng)是否符合安裝和配置所選產(chǎn)品的所有最低要求
7. 安裝程序驗(yàn)證系統(tǒng)是否符合安裝和配置所選產(chǎn)品的所有最低要求。當(dāng)檢測完成并成功后,點(diǎn)擊“下一步”按鈕
8. 選擇數(shù)據(jù)庫設(shè)置:
選擇"通用"選項(xiàng),然后點(diǎn)擊“下一步”按鈕
9.指定數(shù)據(jù)庫配置參數(shù):
全局?jǐn)?shù)據(jù)庫名稱: "test".
SID: "test".
選中“創(chuàng)建帶樣本方案的數(shù)據(jù)庫”復(fù)選框,然后,點(diǎn)擊“下一步”按鈕
10.選擇數(shù)據(jù)庫管理設(shè)置:
選擇"使用 Database Control管理數(shù)據(jù)庫"。
然后,點(diǎn)擊“下一步”
11.指定數(shù)據(jù)庫文件存儲選項(xiàng)
選擇 "文件系統(tǒng)"選項(xiàng).
指定數(shù)據(jù)庫路徑: /home/oracle/oradata/
然后點(diǎn)擊“下一步”按鈕,
12.指定備份和恢復(fù)選項(xiàng):
選擇"不啟用自動備份".
點(diǎn)擊 “下一步”按鈕
13.指定數(shù)據(jù)庫方案口令:
可以為SYS、SYSTEM、SYSMAN、DBSNMP單獨(dú)指定口令,或選擇"所有用戶使用同一口令"選項(xiàng).為這些用戶指定同一個口令。
指定口令不要以數(shù)字開始,否則會得到錯誤信息.然后點(diǎn)擊 “下一步”按鈕
14. 出現(xiàn)概要窗口后, 點(diǎn)擊“安裝”按鈕
15. 這時你會看到數(shù)據(jù)庫安裝過程窗口,然后會出現(xiàn)輔助設(shè)置窗口,再出現(xiàn)數(shù)據(jù)庫創(chuàng)建窗口。
16. 數(shù)據(jù)庫創(chuàng)建完畢,彈出數(shù)據(jù)庫創(chuàng)建完成窗口,點(diǎn)擊Ok按鈕。
當(dāng)彈出一個執(zhí)行root.sh腳本的窗口時在另一個終端執(zhí)行如下命令:
su – root
cd /home/oracle/product/10.1.0/db_1
./root.sh
點(diǎn)擊確定”按鈕
17. 在概要安裝完畢,會報告一個發(fā)現(xiàn)$ORACLE_BASE/product/10.1.0/db_1/portlist.ini文件,這時點(diǎn)擊OK按鈕
18. 安裝結(jié)束:
點(diǎn)擊“退出”按鈕,結(jié)束安裝程序。
六、數(shù)據(jù)庫的啟動和停止
要使數(shù)據(jù)庫啟動,執(zhí)行如下命令:
oracle$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
要使數(shù)據(jù)庫停止,執(zhí)行如下命令:
oracle$ sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown
刪除oracle10g
如果oracle10ganzhuang過程中出現(xiàn)錯誤,需要重新安裝,可以執(zhí)行如下命令刪除以前安裝的oracle:
su –oracle
rm –rf /home/oracle/*
rm –f /etc/oraInst.loc /etc/oratab /etc/oracle
su –root
export ORACLE_HOME=/home/oracle/product/10.1.0/db_1
$ORACLE_HOME/bin/localconfig delete
rm –f /etc/inittab.cssd
rm –f /usr/local/bin/coraenv /usr/local/bin/dbhome
rm –f /usr/local/bin/oraenv
執(zhí)行完上述命令后,重新啟動系統(tǒng),可以重新安裝oracle10g數(shù)據(jù)庫系統(tǒng)
FAQ (在Linux平臺安裝Oracle比較常見的問題)
1. 不能啟動安裝界面
運(yùn)行runInstaller提示信息類似如下:
xlib:connection to "localhost:0.0" refused by server
xlib:client is not authorized to connect to server
Exception in thread "main" java.lang.InternalError:
can't connect to x11 window server using "localhost:0.0" at .......
解決辦法: 設(shè)定你的DISPLAY環(huán)境參數(shù).
# export DISPLAY= your_IPaddress :0.0
把your_IPaddress換成你的IP.或者用root簡單的執(zhí)行一下# xhost + (要注意這樣會有安全上的隱患)
2.安裝界面顯示很多"口口"樣子的亂碼
解決辦法:查看locale輸出
# locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
執(zhí)行#export LC_CTYPE=en_US.UTF-8 然后重新調(diào)用安裝程序.
3. 用IE登錄Linux服務(wù)器上的em出現(xiàn)亂碼
在Linux(Unix) 環(huán)境下成功安裝了Oracle 10g,從windows下用IE瀏覽器登錄 10g 的em, 按鈕是"口口"這樣的方框.
解決辦法: 參考:
http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm
4.創(chuàng)建數(shù)據(jù)庫的時候出現(xiàn)ORA-03113的錯誤
解決辦法: 查看核心參數(shù)是否調(diào)整正確.參考:
http://www.dbanotes.net/Oracle/ORA-03113.htm
5. RedHat 9 / FC1等系統(tǒng)10g不支持如何安裝?
解決辦法:在10g不支持的Linux發(fā)行版上安裝10g的解決方法
1). 運(yùn)行runInstaller -ignoreSysPrereqs,這樣會跳過檢查.
2). 摘自 www.puschitz.com 修改/etc/redhat-release文件:
#su - root
#cp /etc/redhat-release /etc/redhat-release.backup
#cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
安裝完畢,執(zhí)行如下操作:
#su - root
#cp /etc/redhat-release.backup /etc/redhat-release
3). http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm
同樣的思路,我們可以修改Oracle 的install/oraparam.ini文件達(dá)到目的.
6.如何關(guān)掉那些 ocssd.bin 進(jìn)程?
解決辦法:編輯/etc/inittab文件(做好備份)
注釋掉這一行:
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>................
---------------------------------------------------------------------------------------------------------------------
參考信息
http://blog.csdn.net/itsdn/archive/2007/05/21/1619114.aspx
:
1、在 Linux x86 上安裝Oracle數(shù)據(jù)庫10g
http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html#rhel3
2、Oracle 10gR2 + RedHat Enterprise Linux AS4 安裝
http://www.linuxdiyf.com/viewarticle.php?id=11578
3、Oracle 10g For Linux安裝手冊
http://bbs.database.ccidnet.com/htm_data/27/0607/112610.html
4、Installing Oracle 10g on RHEL AS 3 Step-by-Step
http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm
/etc/rc.d/init.d/dbora文件內(nèi)容
#http://staff.in2.hr/denis/oracle/10g1install_fedora3_en.html#n4_4
# chkconfig: 0356 95 1
# description: init script to start/stop oracle database 10g, TNS listener, EMS
#
#
# match these values to your environment:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=CQRCDATA
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_USER=oracle
# see how we are called:
case $1 in
start)
dltelecom - "$ORACLE_USER" -c "$ORACLE_HOME/bin/dbstart"
dltelecom - "$ORACLE_USER" -c "$ORACLE_HOME/bin/emctl start dbconsole"
dltelecom - "$ORACLE_USER" -c "SORACLE_HOME/bin/isqlplusctl start"
;;
stop)
dltelecom - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
dltelecom - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
dltelecom - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
一、安裝JDK:
首先到sun官網(wǎng)下載安裝包:
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter
分別下載:jdk-6u16-linux-i586-rpm.bin 和jdk-6u16-linux-i586.bin
然后將這兩個安裝文件放到:/usr/tmp 目錄下,分別修改權(quán)限,命令如下:
# chmod u+x ./jdk-6u16-linux-i586.bin
# chmod u+x ./jdk-6u16-linux-i586-rpm.bin
解壓文件(這兩個文件可以自動解壓):
# ./jdk-6u16-linux-i586.bin
創(chuàng)建目錄/usr/java:
# mkdir /usr/java
將解壓出來的jdk-6u16-linux-i586目錄復(fù)制到/usr/java目錄下:
# cp -fr jdk-6u16-linux-i586 /usr/java
解壓文件
# ./jdk-6u16-linux-i586-rpm.bin
安裝軟件會將JDK自動安裝到 /usr/java/jdk-6u16-linux-i586目錄下
二、配置環(huán)境變量
1.修改用戶環(huán)境變量
假設(shè)使用java的用戶為 guest,編輯該用戶的.bashrc文件進(jìn)行環(huán)境變量設(shè)置。
# vi /home/ guest /.bashrc
在 .bashrc文件中加入:
export JAVA_HOME=/usr/java/jdk1.6.0_16
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
2.修改所有用戶的環(huán)境變量
# vi /etc/profile
在該文件中加入:
export JAVA_HOME=/usr/java/jdk1.6.0_16
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
注意CLASSPATH路徑中加入了$CLASSPATH,這樣可以避免將之前配置的路徑被覆蓋。
profile文件如下:
############profile begin###########
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
EUID=`id -u`
UID=`id -ru`
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
if [ -x /usr/bin/id ]; then
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
#java path
export JAVA_HOME=/usr/java/jdk1.6.0_16
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
unset pathmunge
############profile end###########
三、卸載jkd:
1、卸載系統(tǒng)自帶的jdk版本:
查看自帶的jdk:
#rpm -qa | grep gcj
看到如下信息:
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
使用rpm -e --nodeps 命令刪除上面查找的內(nèi)容:
#rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
2、卸載rpm安裝的jkd版本
查看安裝的jdk:
#rpm -qa|grep jdk
看到如下信息:
java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5
jdk-1.6.0_16-fcs
卸載:
#rpm -e --nodeps jdk-1.6.0_16-fcs
twiki4.1.2的安裝及配置收藏
twiki 遵循 GPL 協(xié)議,軟件定位為“靈活、強(qiáng)大、易于使用的企業(yè)協(xié)作平臺”,運(yùn)行于 Perl 環(huán)境,是很多大型商業(yè)公司首選的 wiki 平臺。
安裝過程及配置:
#建立 twiki 目錄
mkdir /home/centeur/public_html/twiki
cd /home/centeur/public_html/twiki
#下載并解壓
wget http://twiki.org/p/pub/Codev/Release/TWiki-4.1.2.tgz
tar -zxvf TWiki-4.1.2.tgz
#權(quán)限限制
cp root-htaccess.txt .htaccess
cp pub-htaccess.txt pub/.htaccess
cp subdir-htaccess.txt lib/.htaccess
cp subdir-htaccess.txt data/.htaccess
cp subdir-htaccess.txt locale/.htaccess
cp subdir-htaccess.txt templates/.htaccess
cp bin/.htaccess.txt bin/.htaccess
cp bin/LocalLib.cfg.txt bin/LocalLib.cfg
#修改 bin/LocalLib.cfg,將 $twikiLibPath 改為合適的路徑
$twikiLibPath = "/home/centeur/public_html/twiki/lib";
#修改 bin/.htaccess,將 {DataDir}和{Administrators} 修改為合適的內(nèi)容
AuthUserFile /home/centeur/public_html/twiki/data/.htpasswd
AuthName 'Enter your WikiName: (First name and last name, no space, no dots, capitalized, e.g. JohnSmith). Cancel to register if you do not have one.'
AuthType Basic
<FilesMatch "configure.*">
SetHandler cgi-script
Order Deny,Allow
Deny from all
Allow from 127.0.0.1, 192.168.1.10
Require user centeur
Satisfy Any
</FilesMatch>
#建立系統(tǒng)管理員帳戶
htpasswd -c data/.htpasswd centeur
#現(xiàn)在就可以在瀏覽器中鍵入 http://example.com/twiki/bin/configure 進(jìn)行設(shè)置了,設(shè)置保存在 lib/LocalSite.cfg 中
#提示缺少 CGI::Session 模塊,進(jìn)行安裝
mkdir /home/centeur/CPAN
cd /home/centeur/CPAN
wget http://search.cpan.org/CPAN/authors/id/S/SH/SHERZODR/CGI-Session-4.10.tar.gz
tar -zxvf CGI-Session-4.10.tar.gz
cd CGI-Session-4.10
perl Makefile.PL PREFIX=/home/centeur/CPAN
make
make install
#拷貝模塊到 twiki 的 lib 下
cd /home/centeur/public_html/twiki
cp -R /home/centeur/CPAN/lib/perl5/site_perl/5.8.8/CGI lib/CPAN/lib/CGI
#LocalSite.cfg 的部分設(shè)置內(nèi)容
$TWiki::cfg{DefaultUrlHost} = 'http://example.com';
$TWiki::cfg{ScriptUrlPath} = '/twiki/bin';
$TWiki::cfg{PubUrlPath} = '/twiki/pub';
$TWiki::cfg{PubDir} = '/home/centeur/public_html/twiki/pub';
$TWiki::cfg{TemplateDir} = '/home/centeur/public_html/twiki/templates';
$TWiki::cfg{DataDir} = '/home/centeur/public_html/twiki/data';
$TWiki::cfg{LocalesDir} = '/home/centeur/public_html/twiki/locale';
$TWiki::cfg{TempfileDir} = '/home/centeur/tmp';
$TWiki::cfg{UseClientSessions} = 1;
$TWiki::cfg{LoginManager} = 'TWiki::Client::TemplateLogin';
$TWiki::cfg{MinPasswordLength} = 6;
$TWiki::cfg{Htpasswd}{FileName} = '/home/centeur/public_html/twiki/data/.htpasswd';
$TWiki::cfg{Languages}{ru}{Enabled} = 0;
$TWiki::cfg{Languages}{sv}{Enabled} = 0;
$TWiki::cfg{Languages}{'zh-tw'}{Enabled} = 1;
$TWiki::cfg{Languages}{cs}{Enabled} = 0;
$TWiki::cfg{Languages}{'zh-cn'}{Enabled} = 1;
$TWiki::cfg{Languages}{es}{Enabled} = 0;
$TWiki::cfg{Languages}{nl}{Enabled} = 0;
$TWiki::cfg{Languages}{pl}{Enabled} = 0;
$TWiki::cfg{Languages}{fr}{Enabled} = 0;
$TWiki::cfg{Languages}{da}{Enabled} = 0;
$TWiki::cfg{Languages}{de}{Enabled} = 0;
$TWiki::cfg{Languages}{pt}{Enabled} = 0;
$TWiki::cfg{Languages}{it}{Enabled} = 0;
$TWiki::cfg{DisplayTimeValues} = 'servertime';
$TWiki::cfg{Site}{Locale} = 'zh_CN.UTF-8';
$TWiki::cfg{Site}{LocaleRegexes} = 1;
$TWiki::cfg{StoreImpl} = 'RcsLite';
$TWiki::cfg{WebMasterEmail} = 'lypdarling@gmail.com';
$TWiki::cfg{UserInterfaceInternationalisation} = 1;
$TWiki::cfg{UseLocale} = 1;
$TWiki::cfg{Site}{CharSet} = 'UTF-8';
$TWiki::cfg{Site}{Lang} = 'zh';
$TWiki::cfg{Site}{FullLang} = 'zh-cn';
#現(xiàn)在可以在瀏覽器中鍵入 http://example.com/twiki/bin/view 進(jìn)入 twiki 頁面了
#編輯 TWIki > Main 目錄 > TWikiAdminGroup 頁面,將 centeur 加入 GROUP
* Member list:
* Set GROUP = centeur
* Persons/group who can change the list:
* Set ALLOWTOPICCHANGE = TWikiAdminGroup
#修改 .htaccess,進(jìn)行重定向設(shè)置
Redirect /twiki/index.html http://example.com/twiki/bin/view