SUSE Linux安裝oracle10及問題解決

總結了自己在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


ORACLE 10g的英文文檔

尊重每一個ERROR

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