ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

最近在总结rman,今晚在测试的时候,移动数据库文件的位置

 

SQL> select file#,name from v$datafile;

     FILE#
----------
NAME
----------------------------------------------------------

         1
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/SYSTEM01.DBF

         2
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/UNDOTBS01.DBF

         3
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/SYSAUX01.DBF


     FILE#
----------
NAME
----------------------------------------------------------

         4
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/USERS01.DBF

         5
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST02.DBF


SQL>

 

SQL> alter database datafile  5 offline;

数据库已更改。

SQL> host copy F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST01.DBF F:/ORACLE/PRODU
T/10.2.0/ORADATA/PROD/TEST02.DBF
已复制         1 个文件。

SQL> alter database rename file 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST01.D
F' to 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST02.DBF';

数据库已更改。

SQL> alter database datafile 5 online;
alter database datafile 5 online
*
第 1 行出现错误:
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST02.DBF'


突然出现这个错误,正常来说不应该有错误的,既然有错误了,那就简单恢复下吧,首先关闭
数据库


SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup;
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

怎么起不来呢? 监听器有问题?


看看服务是否正常?


SQL> quit

C:/Documents and Settings/skate>tnsping prod

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 11-9月 -
2007 01:34:24

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

已使用的参数文件:
F:/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = kstdby1))
 (ADDRESS = (PROTOCOL = TCP)(HOST = zjgy-skate)(PORT = 1521)) (CONNECT_DATA = (S
ERVER = DEDICATED) (SERVICE_NAME = prod)))
OK (50 毫秒)


服务是正常的啊,在启动看看,看是什么提示?

C:/Documents and Settings/skate>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 9月 11 01:34:38 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn /@prod as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务


结果还是同样的错误

C:/Documents and Settings/skate> lsnrctl stop
C:/Documents and Settings/skate> lsnrctl start

重新启动监听器,问题依旧


没有办法了,那就去google吧

经过测试发现, 修改listener.ora文件,问题解决

 

# listener.ora Network Configuration File: F:/oracle/product/10.2.0/db_1

/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = F:/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
--------------------skate add----------------------  
   (SID_DESC =
        (GLOBAL_DBNAME = PROD)
        (ORACLE_HOME = F:/oracle/product/10.2.0/db_1)  
        (SID_NAME = PROD)
   )

------------------skate end---------------------------
  )


只要添加skate add 到skate end之间的那一段 文件就可以解决

SQL> conn /@prod as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  209715200 bytes
Fixed Size                  1248140 bytes
Variable Size              79692916 bytes
Database Buffers          125829120 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
数据库已经打开。


至此问题解决. 

你可能感兴趣的:(ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务)