Oracle案例處理:aix 5.3 ml6安裝10.2.0.1 rac報錯
最近一直在給客户升級數據庫,天天是加班,都已經有1個多月沒有更新了。
問題1:
# /oracle/app/oracle/product/10.2.0/crs_1/root.sh
WARNING: directory '/oracle/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/oracle/app/oracle/product' is not owned by root
WARNING: directory '/oracle/app/oracle' is not owned by root
WARNING: directory '/oracle/app' is not owned by root
WARNING: directory '/oracle' is not owned by root
Checking to see if Oracle CRS stack is already configured
Checking to see if any 9i GSD is up
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/oracle/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/oracle/app/oracle/product' is not owned by root
WARNING: directory '/oracle/app/oracle' is not owned by root
WARNING: directory '/oracle/app' is not owned by root
WARNING: directory '/oracle' is not owned by root
exec(): 0509-036 Cannot load program crsctl.bin because of the following errors:
0509-130 Symbol resolution failed for crsctl.bin because:
0509-136 Symbol _Getctype__FPCc (number 101) is not exported from
dependent module /usr/lib/libC.a[ansi_64.o].
0509-136 Symbol _Getnumpunct__FPCc (number 105) is not exported from
dependent module /usr/lib/libC.a[ansi_64.o].
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
Failure initializing entries in /etc/oracle/scls_scr/bdpbak1.
解決的問題很簡單,其它也是自己沒有認真看官方文檔的原因,原來沒有在這麼低的版本安裝過,下面是官方文檔中的要求
The following operating system filesets are required:
bos.adt.base
bos.adt.lib
bos.adt.libm
bos.perf.libperfstat
bos.perf.perfstat
bos.perf.proctools
rsct.basic.rte
rsct.compat.clients.rte
xlC.aix50.rte 7.0.0.4
xlC.rte 7.0.0.1
To obtain the previous two xlC filesets mentioned here, Oracle
Database10gR2 users who do not install the IBM XL C/C++
Enterprise Edition V7.0 compiler should install the IBM XL
C/C++ Enterprise Edition V7.0 for AIX Runtime Environment
Component. Download all runtime environment file sets, with no
license requirement, in one package from the following Web site:
下面是自己環境的情況
# lslpp -l|grep xlC
xlC.aix50.rte 6.0.0.13 COMMITTED C Set ++ Runtime for AIX 5.0
xlC.cpp 6.0.0.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.cpp 6.0.0.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.rte 6.0.0.0 COMMITTED C Set ++ Runtime
xlC.rte 6.0.0.0 COMMITTED C Set ++ Runtime
# lslpp -l|grep xlC
xlC.adt.include 10.1.0.0 COMMITTED C Set ++ Application
xlC.aix50.rte 10.1.0.0 COMMITTED XL C/C++ Runtime for AIX 5.3
xlC.cpp 6.0.0.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.cpp 6.0.0.0 COMMITTED C for AIX Preprocessor
xlC.msg.en_US.rte 10.1.0.0 COMMITTED XL C/C++ Runtime
xlC.rte 10.1.0.0 COMMITTED XL C/C++ Runtime
可以運行xlC來查看是否成功,再次運行root.sh正常
問題2:
升級到10.2.0.4,在2節點運行root.sh的時候hang住
# /oracle/app/oracle/product/10.2.0/crs_1/install/root102.sh
Creating pre-patch directory for saving pre-patch clusterware files
Completed patching clusterware files to /oracle/app/oracle/product/10.2.0/crs_1
Relinking some shared libraries.
Relinking of patched files is complete.
WARNING: directory '/oracle/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/oracle/app/oracle/product' is not owned by root
WARNING: directory '/oracle/app/oracle' is not owned by root
WARNING: directory '/oracle/app' is not owned by root
WARNING: directory '/oracle' is not owned by root
Preparing to recopy patched init and RC scripts.
Recopying init and RC scripts.
Startup will be queued to init within 30 seconds.
Starting up the CRS daemons.
Adding daemons to inittab
Waiting for the patched CRS daemons to start.
This may take a while on some systems.
.
.
.
.
.
Timed out waiting for the CRS daemons to start. Look at the
system message file and the CRS log files for diagnostics.
在cssOUT.log有下面的日誌
priority string (4)
Warning : Current stack limit is set to UNLIMITED. Resizing..
Info : RLIMIT_STACK set to : 2097152
mlockall: unable to lock pages (-1/1)
The stack ulimits for both oracle and root are set to unlimited.
Changes
* Applying 10.2.0.4 patchset and running root102.sh, or
* Applying 10.2.0.3 CRS Bundle Patch #3 or above, or
* Changing ulimit settings for root or oracle, when running CRS 10.2.0.3 with CRS BP#2 or above, or CRS 10.2.0.4.
Cause
The problem in this case is with the ulimit settings. Setting the stack size to "unlimited" causes ocssd to fail in its call to OS function mlockall. Basically AIX is trying to pin an unlimited amount of memory.
Solution
Set the ulimits for BOTH ROOT AND ORACLE users to the following recommended values:
fsize = -1
core = 2097151
cpu = -1
data = 524288
rss = 524288
stack = 524288
stack_hard = 524288
nofiles = 2000
通過修改oracle的資源限制後,可以正常啓動crs。
------------------作者介紹-----------------------
姓名:黃廷忠