Внезапно появляется ошибка ORA-12514 Oracle 11gr2

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

Мой файл 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" .. Пытался изменить файлы tnsnames.ora и listener.ora (теперь восстановлены), но не могу подключиться ни к одному из них через sqlplus или sqldeveloper / visual studio. Помогите мне, пожалуйста. . Благодарность!


person Solat Ali    schedule 16.09.2013    source источник
comment
Ваши базы данных готовы? Можете ли вы подключиться локально (в обход слушателя)? Изменилось что-нибудь - перезагрузка машины, настройка параметров инициализации ...?   -  person Alex Poole    schedule 16.09.2013
comment
Спасибо за ответ .. Да, базы данных работают (слушатель работает) .. У меня есть базы данных в моей системе (localhost), и вообще ничего не изменилось .. Я действительно не уверен, как подключиться в обход слушателя?   -  person Solat Ali    schedule 16.09.2013
comment
Запущенный слушатель не означает, что базы данных работают. lstnrctl status или lsnrctl services показывает, что что-нибудь обрабатывается? Если у вас есть SQL * Plus, можете ли вы установить ORACLE_SID и использовать sqlplus user/password, то есть без @mydb или @se3?   -  person Alex Poole    schedule 16.09.2013
comment
Выходные данные служб lsnrctl распознают только CLREXTPROC, а не какие-либо из моих баз данных se3 или mydb .. также я могу установить ORACLE_SID, но не могу подключиться через sqlplus, как вы просили .. Ошибка выходит .. ORA-01034 - Oracle недоступен .. еще один также .. ORA- 27101 - область разделяемой памяти не существует ..!   -  person Solat Ali    schedule 16.09.2013
comment
Похоже, что ваши базы данных не работают. Я не знаком с запуском Oracle в Windows (я полагаю, из пути G:\... в tnsnames.ora), но инструкции здесь. Если компьютер не был перезагружен, вам может потребоваться изучить журналы, чтобы выяснить, почему базы данных отключились.   -  person Alex Poole    schedule 16.09.2013
comment
Братан, спасибо за ответ .. базы данных настроены и работают (я проверил, по ссылке, которую вы разместили), не могу понять, что делать :(   -  person Solat Ali    schedule 16.09.2013


Ответы (2)


На основании вашего собственного комментария «я могу установить 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

person kubanczyk    schedule 19.09.2013

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

C:\Temp>sqlplus username@connect_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
person DavidRR    schedule 24.09.2014