2013-09-16 2 views
1

Я установил Oracle 11g r2 fine, имел 2 базы данных (se3 и mydb, оба имеют db_domain .orcl i.e. mydb.orcl и se3.orcl), работающие на нем до вчерашнего дня. но вдруг им получать ORA-12514 ошибка (TNS: слушатель не знает запрошенной услуги в дескрипторе соединения) ..Внезапная ошибка ORA-12514 Oracle 11gr2

Мой tnsnames.ora файл:

# tnsnames.ora Network Configuration File: G:\oracledb\product\11.2.0\dbhome_1\network\admin\tnsnames.ora 
# Generated by Oracle configuration tools. 

LISTENER_MYDB = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 


ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
     (SID = CLRExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

MYDB = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = mydb.orcl) 
    ) 
) 

SE3 = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = se3.orcl) 
    ) 
) 

LISTENER_SE3 = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 

LISTENER.ORA FILE: 
# listener.ora Network Configuration File: G:\oracledb\product\11.2.0\dbhome_1\network\admin\listener.ora 
# Generated by Oracle configuration tools. 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = G:\oracledb\product\11.2.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:G:\oracledb\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
) 

ADR_BASE_LISTENER = G:\oracledb 

Я могу «tnsping MYDB/se3 "fine .. Пытался изменить файлы tnsnames.ora и listener.ora тоже (теперь восстановлен), но не может подключиться ни к одному из них через sqlplus или sqldeveloper/visual studio .. plz help me .. спасибо!

+0

ли свои базы? Можете ли вы подключиться локально (минуя прослушиватель)? Что-то изменилось - перезагрузка машины, настройки параметров init ...? –

+0

спасибо за ответ .. Да, базы данных вверх (слушатель запущен) .. У меня есть базы данных в моей системе (localhost), и ничего не изменилось вообще. Я действительно не уверен, как подключиться в обход слушателя? –

+0

Выполнение прослушивателя не означает, что базы данных запущены. Предоставляет ли 'lstnrctl status' или' lsnrctl services' что-либо обрабатываемое? Если у вас есть SQL * Plus, можете ли вы установить ORACLE_SID и использовать 'sqlplus user/password', т. Е. Без' @ mydb' или '@ se3'? –

ответ

0

На основании вашего собственного комментария «им удалось установить ORACLE_SID, но не удается подключиться через sqlplus ... ORA-01034 - Oracle недоступен», скорее всего, ваши экземпляры базы данных не работают. Теоретически возможно, что базовые службы Windows OracleServiceMYDB работают и соответствующие oracle.exe в процессах, но экземпляр базы данных не работает. Лучше всего посмотреть на сервер для каталога трассировки, содержащего alert_mydb.log, и просмотреть последние записи.

Если база данных просто не работает и оповещения журнала не показывает каких-либо серьезных ошибок, запустите его так:

set ORACLE_SID=MYDB 
set ORACLE_HOME=D:\my\oracle\home 

%ORACLE_HOME%\bin\sqlplus "/ as sysdba" 
ORACLE not available. 
SQL> STARTUP 
SQL> EXIT 

lsnrctl services 

Последняя команда должна показать MYDB зарегистрирован. Продолжите ORACLE_SID = SE3

0

В моем случае, я получил ORA-12514 ошибка при попытке подключения через SQL * Plus из клиента только машины к удаленной базе данных:

C:\Temp>sqlplus [email protected]_descriptor 

SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 24 09:43:04 2014 

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

Enter password: 
ERROR: 
ORA-12514: TNS:listener does not currently know of service requested in connect 
descriptor 

Я нашел это озадачивает, потому что tnsping ответил успешно:

C:\Temp>tnsping connect_descriptor 

TNS Ping Utility for 32-bit Windows: Version 11.2.0.3.0 - Production on 24-SEP-2 
014 09:48:04 

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

Used parameter files: 
D:\Oracle\product\11.2.0\client_1\network\admin\sqlnet.ora 


Used TNSNAMES adapter to resolve the alias 
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host 
.intranet.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 
HOST13))) 
OK (20 msec) 

В конце концов, я разыскал мою проблему как неверное значение SERVICE_NAME в моем tnsnames.ora файл:

CONNECT_DESCRIPTOR = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = host.intranet.com)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = HOST13) 
    ) 
) 

После изменения HOST13 (с помощью обычного текстового редактора) правильного значения для SERVICE_NAME, я был в состоянии для подключения к удаленной базе данных Oracle.

На клиентской машине Oracle 11.2, здесь является расположение tnsnames.ora:

C:\Oracle\product\11.2.0\client_1\network\admin\tnsnames.ora 
Смежные вопросы