平台: oracle 9i + windows 2003
故障表现:
ORA-12154: TNS:could not resolve service name
Data Guard 之前一直很正常。 突然就报这个错了。无法完成归档,但用tnsping SID, 没有问题,监听也没有问题。 因为TNS 无法解析,所以主库的归档日志无法传送到备库。 无法完成归档。
尝试解决方法:
SQL> alter system set log_archive_dest_2='';
系统已更改
SQL> alter system set log_archive_dest_3='service=orcl_2';
系统已更改
SQL> alter system set log_archive_dest_3='';
系统已更改
SQL> alter system set log_archive_dest_2='service=orcl_2';
系统已更改
查询归档目录的相关信息
select dest_name,status,type,database_mode,recovery_mode,destination,
archived_seq#,applied_thread#,applied_seq#,error from V$archive_Dest_Status
where dest_name in('LOG_ARCHIVE_DEST_1','LOG_ARCHIVE_DEST_2');
或者用
select dest_id,status from v$archive_dest;
切换归档文件:
Alter system switch logfile;
修改之后的几分钟之内查询是有效的,过一会又会报ORA-12154: TNS:could not resolve service name错误。
查看归档情况:
select name,sequence#,applied from v$archived_log;
备库重新启动归档文件
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
解决方法:
最后实在无耐, 把服务器重启了下, 居然搞定了。看来windows 平台跑Oracle 还是有些问题。 这个不是oracle 9i 的bug 就是Oracle 与 windows 2003 的兼容性问题。