奇怪的ora-12154

前两天从10.2.0.4到11.2.0.1.0升级了一个库,主库升级完打开,在主库重建密码文件传到备库,备库以11g的环境变量打开升级。结果发现主库一直报这个错:

Error 12154 received logging on to the standby
Errors in file /u01/diag/rdbms/test/test/trace/test_arc0_7115.trc:
ORA-12154: TNS:could not resolve the connect identifier specified
PING[ARC0]: Heartbeat failed to connect to standby 'test_stb'. Error is 12154.

tnsping可以通,sqlplus 去连备库也没有问题。

重启备库没有解决,临时使用脚本去做register.

最终这个问题是重启主库解决的。

[@more@]

oracle的SR说出现这种问题有两种情况,

一个是主库更改密码文件没有重启。(我在另一套11.2上尝试没有重现这个问题)。

另一个是归档进程尝试往原来的目录去归档,而不是用最新的归档设置。在linux下可以用strace去跟踪。如

strace -fo /tmp/arch0.log -p

pid为arc0的进程号。

附手动传归档的脚本:

. /home/oracle/.bash_profile > /dev/null 2>&1

cd /home/oracle/syncprilog
/home/oracle/syncprilog/syncprilog.sh


cd /archive/test
LOGS=`ls -rtl|awk -F " " '{print $9}'|tail -5`
for log in $LOGS
do
$ORACLE_HOME/bin/sqlplus " / as sysdba" < alter database register logfile '/archive/test/$log';
exit
EOF
done

/home/oracle/syncprilog/syncprilog.sh 里的内容:

#!/usr/bin/expect -f
set timeout 10
spawn rsync -av -e ssh oracle@standby:/archive/test /archive/
set timeout 300
expect "*password:"
send "standbypassowrdr"
expect eof

请使用浏览器的分享功能分享到微信等