平台:oracle9i+windows2003
故障表现:
ORA-12154:TNS:couldnotresolveservicename
DataGuard之前一直很正常。突然就报这个错了。无法完成归档,但用tnspingSID,没有问题,监听也没有问题。因为TNS无法解析,所以主库的归档日志无法传送到备库。无法完成归档。
尝试解决方法:
SQL>altersystemsetlog_archive_dest_2='';
系统已更改
SQL>altersystemsetlog_archive_dest_3='service=orcl_2';
系统已更改
SQL>altersystemsetlog_archive_dest_3='';
系统已更改
SQL>altersystemsetlog_archive_dest_2='service=orcl_2';
系统已更改
查询归档目录的相关信息
selectdest_name,status,type,database_mode,recovery_mode,destination,
archived_seq#,applied_thread#,applied_seq#,errorfromV$archive_Dest_Status
wheredest_namein('LOG_ARCHIVE_DEST_1','LOG_ARCHIVE_DEST_2');
或者用
selectdest_id,statusfromv$archive_dest;
切换归档文件:
Altersystemswitchlogfile;
修改之后的几分钟之内查询是有效的,过一会又会报ORA-12154:TNS:couldnotresolveservicename错误。
查看归档情况:
selectname,sequence#,appliedfromv$archived_log;
备库重新启动归档文件
alterdatabaserecovermanagedstandbydatabasecancel;
alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
解决方法:
最后实在无耐,把服务器重启了下,居然搞定了。看来windows平台跑Oracle还是有些问题。这个不是oracle9i的bug就是Oracle与windows2003的兼容性问题。