總結了自己在Redhat5.5和SUSE10.1上裝oracle10g的經驗。
SUSE10安裝了OraRun的時候,會自動建oracle用戶,oinstall組和dba組,在etc/profile.d/目錄下面生成oracle.sh腳本(設置ORACLE環境變量),在etc/sysconfig目錄下生成名為“oracle”的文件(配置文件)。安裝前用戶需要先手動修改etc/passwd文件中oracle用戶的默認shell,本人修改後為 oracle:x:103:108:Oracle user:/opt/oracle:/bin/bash ,然後root身份執行 “ passwd oracle”為其設置密碼,再用oracle進入安裝。
雖說Orarun號稱oracle安裝的懶人包,不行的是第一次用倒惹來很多麻煩。覺得不如不用,畢竟最好是自己掌握安裝的信息。主觀以為Orarun會代替我們配置內核參數,但貌似不然,否則咱咋沒見過有讓我們選擇內核參數的東西,難道Orarun用的內核參數都是統一的麼。SUSE10下面沒見/etc/sysctl.conf裡面有內核共享內存方面的配置。但是肯定有一個地方決定這些內核參數的值。哪位大神能解答,希望留言賜教。暫時建議大家手動填寫sysctl.conf中的內核參數,以便清晰自己系統當前內核參數是如何。
如果安裝界面為亂碼:修改環境變量 export LANG=CN 或者 export LANG=EN
問題1:dhcp問題
Checking Network Configuration requirements ...
Check complete. The overall result of this check is: Not executed <<<<
解決方案:
首先確定自己機器是配置的靜態IP地址,不要dhcp自動獲取。如果不是error而是“1 requirement to be verified ”,就選中上面的框retry一下,可以理解為這裡是讓用戶核實。開始在這裡糾結了很久,因為沒有理解英文的意思其實。retry之後下一步並沒有什麼提示就說明正常。重要的是,其實不需要像網上的那樣修改hosts文件什麼的,反而會越改越錯。只要確定配了靜態IP就可以了,如果有配置主機和域名的地方,比如開始設置的主機名是ibm,域名是site,建議把域名改為localdomain,個人理解是這樣就不需要找什麼域名服務器解析site這個域名了。
問題2:版本問題,在操作系統版本檢測的時候出現解決方案:
1 以SUSE10安裝Oracle10G為例,oracle不支持SUSE10,修改/etc/SuSe-release文件,改 VERSION=9
2 加參數"-ignoreSysPreReqs"。執行./runInstaller -ignoreSysPreReqs ,忽略預先對操作系統版本的檢測。
問題3: "unable to attach to shared memory segment"
解決方案:
權限問題。把 $ORACLE_HOME/bin/目錄加上suid權限 ,方法是 chmod u+s -R $ORACLE_HOME/bin/,權限6751oracle。
問題4:ORA-01031:insufficint privileges
解決方案:
問題出現在使用其他用戶(非oracle用戶)使用時,比如想用其他用戶 conn / as sysdba。網上說用grant命令給用戶加權限,不過本人用了一種簡單粗暴的方法是直接把這個用戶加入到dba組,命令:usermod -G dba 用戶名 。-G可以設置用戶所屬組,多個組,-g是用戶所屬的基本組只有一個。
問題5:ORA-27102 out of memory
解決方法:
先檢查本機的內核參數,共享內存大小的參數,cat查看/pro/sys/kernel/下面的文件內容,shmmax共享內存段大小 shmmni共享內存段最大數量 shmall系統一次可以使用的共享內存總量(以頁為單位,不小於shmmax/單頁大小)。增大系統允許的最大值或者減小oracle要求的內存大小。修改/etc/sysconfig/oracle裡面的SHMMAX值。
在SUSE以外的系統安裝Oracle,需要手動配置內核參數(雖然在Redhat5上安裝的時候我並沒有手動配置,因為看了下Redhat5的默認內核配置已經滿足Oracle安裝需求),內核參數配置文件 /etc/sysctl.conf。
Redhat下的內核配置如下,其他系統可以參考修改部分參數,修改後立即生效命令" sysctl -p ",(讀取sysctl.conf文件)
# Controls IP packet forwarding net.ipv4.ip_forward = 0 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 # Controls the maximum size of a message, in bytes kernel.msgmnb = 65536 # Controls the default maxmimum size of a mesage queue kernel.msgmax = 65536 # Controls the maximum shared segment size, in bytes kernel.shmmax = 4294967295 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 268435456