首頁 > 軟體

SUSE Linux安裝Oracle 10g及問題解決

2020-06-16 17:52:29

總結了自己在RedHat5.5和SUSE Linux 10.1上裝Oracle 10g的經驗。

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

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-09/123463.htm


IT145.com E-mail:sddin#qq.com