ORA-12547经典错误处理

一、由于NLS_LANG设置错误,导致ora-12547错误ITPUB个人空间`9[ J2S'M8c
我过去看了看,发现在AIX5.3系统中使用DBCA建库到最后一步点完成后立即就出现了ORA-12547 tns lost connect 这个错误,当时感觉挺蹊跷的,随后对系统的环境做了详细检查,异步IO是开启来的,HOST文件也是正常的,参数文件貌似也没有太大的问题,ulimit限制也都改成了-1; 也没有发现有明显的问题,安装日志里面是已经告诉说是操作系统环境不满足。当时实在是查不出来到底是什么原因导致就把之前安装的DBSOFT给删除了,重新进行DBSOFT的安装和建库,DBSOFT的安装中没有报任何错,到最好还是一样的问题,只好再次进行再次的检查,发现了在oracle用户环境配置文件里[db:oracle]$cat~/.profile里发现了NLS_LANG=ZHS16GBK这个参数,后面想想看这个参数并不是必须的,而且有可能会导致安装的时候报错,随即将其禁用掉,参数文件如下:$ cat .profile 


{5gi2R S0PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.ITPUB个人空间{4FK?tM7gNd.c
export PATH
:I.f/q7`6w]Z&}0if [ -s "$MAIL" ] # This is at Shell startup. In normalITPUB个人空间*b?`)S-i9x@
then echo "$MAILMSG" # operation, the Shell checks
m3m6Pb3V2`^H0fi # periodically.ITPUB个人空间,kx+_4f+r:zR
ORACLE_BASE=/oracle
/a,M#d x2gu'W;{0ORACLE_SID=orclITPUB个人空间wN3T ]5VdO
ORACLE_HOME=$ORACLE_BASE/app/10.2.0/db_1
}y.j0x%@W|.d0#NLS_LANG=ZHS16GBK
!`RX%v!F9s*\ B%a0PATH=$ORACLE_HOME/bin:$PATH:
.e|@kl WA#P8i'n0export ORACLE_BASE ORACLE_SID ORACLE_HOME PATHITPUB个人空间5eO;ZT%x:~#i6M7?H Yt
$
.K1s'_U*nx*s,@0 将其禁用后,再次DBCA建库,故障没有再重现,成功建库。ITPUB个人空间9D4z5\r0S!z
ITPUB个人空间SV-h$O#R(^%Tu0\
二、dbca建库出现这个问题,后面在网上搜索了下,基本上是由如下四种原因导致:ITPUB个人空间Tqe6h R
1、异步IO导致dbca报ORA-12547
&D5d0k!rF'|.Vh0解决办法:ITPUB个人空间f I"WF E%]
AIX:
)aNZ L9h+N0 a、smitty chaio (只有AIX 5系列支持)
D'c(i.?k:YS*Xt(H2T*o0 b、把STATE to be configured at system restart 设置成availableITPUB个人空间)\"peX7f!R#u8q
c、再次运行DBCA创建成功
JK-^ a7n*``:O3G0 HP-UNIX 可以参考(Metalink Note:139272.1)ITPUB个人空间y/g d,bloU!\
ITPUB个人空间,i:J[ W0L3KV5N1^4@
a. 创建aio字符设备
Nm5]JcPeZ0 # /sbin/mknod /dev/async c 101 0x0
V Pnpzn\0 # chown oracle:dba /dev/async
Jj m&q5B0 # chmod 660 /dev/asyncITPUB个人空间!k|N2HKo.|c;Cb
ITPUB个人空间g"c.EJ \ p.K
b.用sam调整内核参数
uJ+T1T)\V'o7v k7T|3E0 -> Kernel Configuration
)X&\ gow2h(z[*p*L-|5w0 -> DriversITPUB个人空间Eb2B"k;n$B3H
-> 选择'asyncdsk'ITPUB个人空间/p)m y6z_3v6F8I l
-> Actions>Add Driver to Kernel. (此时pending state由out变为in状态)
{ru$Ot }|0fcn0 -> Kernel ConfigurationITPUB个人空间!H"sf$V$j
-> Configurable ParametersITPUB个人空间$d/uS3`:X5}
-> max_async_portsITPUB个人空间3_eU{9z n2X[z
设置为初始化文件中的'processes'值+oracle后台进程数 (根据v$bgprocess,单实例后台进程数最多为78个)ITPUB个人空间 hI;L+M-V,Is

(Zlsz N0 c. 用sam设置aio_max_opsITPUB个人空间%\/m;s o!RV
-> Kernel ConfigurationITPUB个人空间YM,Cc0iAFh
-> Configurable Parameters
Tq @.k:Cb0 -> aio_max_opsITPUB个人空间[v$l*I1TN
-> 可设置为默认值2048
L0\ z2\yQy-S0ITPUB个人空间 R&Ya*kx0V1A6_d nh
以上配置,主机需重构核心,重启. 
Z` ?"ZV6qX0Z0 d. 设置oracle用户必须有MLOCK权限。
)H] A.s1w+F?2i(Q JL0H'y0 a. 设定dba组的MLOCK的权限ITPUB个人空间2oa y2y[0A)e'l
roolt#setprivgrp dba MLOCK
H:?4EPH&fJ0
~HwE&w0 b. 避免重启后失效,需要设置:
dC e V2jY/?:T0 vi /etc/privgroup 添加如下行:ITPUB个人空间;`;g4q*K2`V.S`
dba MLOCK
*W:K7z#v/V0 e.检查一下aio是否生效了ITPUB个人空间 ]#\$F1W!yY
   #fuser /dev/asyncITPUB个人空间'OX$q4?by5WN8nA G
   有进程列出来说明aio已经生效了。ITPUB个人空间"syrA'o@X \xrE

j.e}'H;L.g0ITPUB个人空间Yt3DLJ0S;\ g;k
ITPUB个人空间2r:@6~HpV[
2、ulimit默认值没有修改
5`'I6qRSi0
解决办法:ITPUB个人空间Uw!N3hL
Linux
|9}!idV/Bq A7R0 a、修改limits参数文件,添加如下内容
t#n7le!qmQ }0 vi /etc/security/limits.confITPUB个人空间)t;h%c2E+t%F bG
oracle soft nproc 2047ITPUB个人空间zT&T7bR"du
oracle hard nproc 16384ITPUB个人空间0Ho:A)` pBb`k*r9F7f8`
oracle soft nofile 1024
z}3Y1|H%C-R4f0 oracle hard nofile 65536

AIXITPUB个人空间&b,_ [g\u$n6Ef
a、修改limits参数文件,在最后如下添加如下内容:(注:-1为无限制使用)
(M"~9gQIS%P0 vi /etc/security/limits
a5zFDM,E%S0default: ITPUB个人空间;L#q2Dc9M
fsize = -1 ITPUB个人空间_|y2c1M? S+I
core = 2097151
,pdgWR`P L;m0cpu = -1 
4VJ5ZXk&@8KT0data = 262144
+C6aX9mR[&C\0rss = 65536 ITPUB个人空间or@F%B4s;y
stack = 65536
Q"B ?9[:{P$y%D0nofiles = 2000
"kV_8CtQ6x0root: ITPUB个人空间 k+P.LB9M f,l
daemon:ITPUB个人空间 SeE1r%{8\!Z7[
bin: 
'k/nD2K@uKn+v0sys: 
U4v T P0ZIm:}:b(\"S0adm: ITPUB个人空间@:apA+h2?&g
uucp: 
7L5~PR^o ^ Y0guest:
2a7u,CApu`~W@-RB0nobody:
Fmm;~8Ee0lpd: ITPUB个人空间\(N2P#PP
oracle: 
(yRV _ R/L6g^$eU0data = -1ITPUB个人空间@(WLK g \
stack = -1

ITPUB个人空间+]}XA!Di8^\x9D
3、Linux 下SELinux配置不正确,解决办法ITPUB个人空间sN:gL ci8e+p
a、用root用户登录系统执行 setenforce 0 (不需要重启)
3Q|7C)L.}r*`0 b、修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,需要重启

 

4、libaio(x86_64) is not installed(同AIX一样,是开启异步IO,在Linux下打这个包)ITPUB个人空间q9w@5x!E,A5W
解决办法:ITPUB个人空间-d{@,wIP/Y4U
a、插入操作系统安装光盘ITPUB个人空间 lZ#o+_P5Gq
b、root用户登录系统挂载操作系统安装光盘:ITPUB个人空间 A*I)J*H%J@
#mount -t iso9660 /dev/cdrom /mnt
"z aJJ?Sf4Dj0 #cd /mnt/ServerITPUB个人空间1NuO$F6GmF
c、检查并安装libaio包,执行如下命令ITPUB个人空间&l3U0q UQzl%U
#rpm -qa| grep -i ^libaio
qdeAR5F0 #rpm -ivh libaio-*.i386.rpmITPUB个人空间6w_] uiG/f#^
#rpm -ivh libaio-*.x86_64.rpm
WyMT!X#U0d、检查刚才安装的包是否成功ITPUB个人空间sX]f\(})sU
#rpm -qa | grep ^libaio
L1}ah3wc0e、再次执行安装,问题解决

 

你可能感兴趣的:(oracle,操作系统,profile,配置文件,经典)