Sun Cluster3.3+Oracle11g配置数据库资源问题
一次工程交付,軟件環境為Solaris10U11+Cluster3.3U2+Oracle11g,最后建立數據庫資源的時候,遇到一問題,原始命令如下:
# 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
之前測試手工啟庫是沒問題的,但通過cluster不行,報:
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,詳細報錯如下:
?
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
這里很奇怪,手工啟庫沒有報out of memory,通過cluster啟庫卻報了。檢查/etc/project,project.max-shm-memory已設置為28G(機器內存32G),是沒有問題的,低于我們設定的memory_target,那么為何cluster啟動還會報內存不足呢?
后來在support網站的Solaris Cluster產品搜索out of memory關鍵字,找到了一個id為1007002.1的文檔《Solaris Cluster HA-Oracle (SUNW.oracle_server) Resource Fails to Start Database due to Error "ORA-27102: out of memory"》,這里面指出,如果沒有給cluster指定project name,cluster會用root用戶的project來啟動數據庫。
于是在重建oracle server資源的時候,給多加一個參數:
# 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
?
這樣子問題就解決了,其中oracleproj為oracle用戶的project。
如果在建立oracle server資源的時候沒有指定project,cluster會去用系統默認的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???????????????????????????????? -
?
可以看到,這個project默認的max-shm-memory是7.64G,如果數據庫設定的memory_target低于這個值,那么這個問題便不會被觸發。
轉載于:https://blog.51cto.com/weikle/1608260
總結
以上是生活随笔為你收集整理的Sun Cluster3.3+Oracle11g配置数据库资源问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UIWindow的windowLevel
- 下一篇: MySQL kill操作