Sun Cluster3.3+Oracle11g配置数据库资源问题
一次工程交付,軟件環(huán)境為Solaris10U11+Cluster3.3U2+Oracle11g,最后建立數(shù)據(jù)庫(kù)資源的時(shí)候,遇到一問(wèn)題,原始命令如下:
# clresource create -g oracleha-rg \
-t SUNW.oracle_server \
-p Connect_string=ora_monitor/ha_monitor\
-p ORACLE_SID=RWDB \
-p ORACLE_HOME=/u01/app/oracle/product/11.2.0\
-p Alert_log_file=/u01/app/oracle/diag/rdbms/rwdb/RWDB/trace/alert_RWDB.log\
-p resource_dependencies=oradbset \
oracledb-rs
之前測(cè)試手工啟庫(kù)是沒(méi)問(wèn)題的,但通過(guò)cluster不行,報(bào):
clresource:? (C748634) Resource group oracleha-rg failedto start on chosen node and might fail over to other node(s)
看/var/opt/SUNWscor/oracle_server/message_log.oracledb-rs,詳細(xì)報(bào)錯(cuò)如下:
?
Executingcommand: /opt/SUNWscor/oracle_server/bin/oracle_server_manage startup FALSE
Jan 0912:39:44 SC[SUNWscor.oracle_server.start]:oracleha-rg:oracledb-rs: Could notstart server
Jan 0912:39:45 SC[SUNWscor.oracle_server.stop]:oracleha-rg:oracledb-rs: Using method'run_setuid_prog' to execute shutdown commands
Jan 0912:39:45 SC[SUNWscor.oracle_server.stop]:oracleha-rg:oracledb-rs: Server is notrunning. Calling shutdown abort to clear shared memory (if any)
Shutting downOracle instance: RWDB? : /u01/app/oracle/product/11.2.0.
還有:
?
SQL>ORA-27102: out of memory
SVR4 Error:22: Invalid argument
SQL>Disconnected
這里很奇怪,手工啟庫(kù)沒(méi)有報(bào)out of memory,通過(guò)cluster啟庫(kù)卻報(bào)了。檢查/etc/project,project.max-shm-memory已設(shè)置為28G(機(jī)器內(nèi)存32G),是沒(méi)有問(wèn)題的,低于我們?cè)O(shè)定的memory_target,那么為何cluster啟動(dòng)還會(huì)報(bào)內(nèi)存不足呢?
后來(lái)在support網(wǎng)站的Solaris Cluster產(chǎn)品搜索out of memory關(guān)鍵字,找到了一個(gè)id為1007002.1的文檔《Solaris Cluster HA-Oracle (SUNW.oracle_server) Resource Fails to Start Database due to Error "ORA-27102: out of memory"》,這里面指出,如果沒(méi)有給cluster指定project name,cluster會(huì)用root用戶(hù)的project來(lái)啟動(dòng)數(shù)據(jù)庫(kù)。
于是在重建oracle server資源的時(shí)候,給多加一個(gè)參數(shù):
# clresource create -g oracleha-rg \
-t SUNW.oracle_server \
-p Connect_string=ora_monitor/ha_monitor\
-p ORACLE_SID=RWDB \
-p ORACLE_HOME=/u01/app/oracle/product/11.2.0\
-p Alert_log_file=/u01/app/oracle/diag/rdbms/rwdb/RWDB/trace/alert_RWDB.log\
-p resource_dependencies=oradbset \
-p Resource_project_name=oracleproj \
oracledb-rs
?
這樣子問(wèn)題就解決了,其中oracleproj為oracle用戶(hù)的project。
如果在建立oracle server資源的時(shí)候沒(méi)有指定project,cluster會(huì)去用系統(tǒng)默認(rèn)的user.root:
root@MSPRG-AP1 # prctl -n project.max-shm-memory -i project 1
project: 1: user.root
NAME??? PRIVILEGE?????? VALUE??? FLAG?? ACTION?????????????????????? RECIPIENT
project.max-shm-memory
??????? privileged????? 7.64GB????? -?? deny???????????????????????????????? -
??????? system????????? 16.0EB??? max?? deny???????????????????????????????? -
?
可以看到,這個(gè)project默認(rèn)的max-shm-memory是7.64G,如果數(shù)據(jù)庫(kù)設(shè)定的memory_target低于這個(gè)值,那么這個(gè)問(wèn)題便不會(huì)被觸發(fā)。
轉(zhuǎn)載于:https://blog.51cto.com/weikle/1608260
總結(jié)
以上是生活随笔為你收集整理的Sun Cluster3.3+Oracle11g配置数据库资源问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UIWindow的windowLevel
- 下一篇: 清华大学开源镜像站