ORA-12560: TNS: ошибка адаптера протокола
Я Google[d] для этой ошибки ORA-12560: TNS: ошибка адаптера протокола, но не смог найти фактическую причину и как решить эту ошибку?
Может кто-нибудь сказать мне идеальное решение для решения проблемы входа в систему.
21 ответ
- Перейдите к машине Windows, на которой размещен сервер базы данных Oracle
Зайдите в Пуск -> Выполнить -> Services.msc в Windows. Найдите OracleService
(здесь OracleServiceORCL
) и нажмите наStart
запустить службу базы данных Oracle (если она еще не запущена)После запуска и запуска из командной строки выполните следующее:
tnsping < tnsalias >
(Tnsalias запись вы можете найти в
tnsnames.ora
файл)
В моем случае у меня не было OracleService
(OracleServiceORCL) в Windows Services.msc
как описано в ответе Бхарати.
Я выполнил эту команду:
C:\> ORADIM -NEW -SID ORCL
а затем OracleService
OracleServiceORCL под названием только что обнаружился и начал работу в Services.msc. Действительно мило.
Источник: https://forums.oracle.com/forums/message.jspa?messageID=4044655
Похоже, база данных не работает. Это может быть связано с перезапуском машины, и экземпляр не настроен на автозапуск, поэтому он не запускается вручную после запуска с экрана служб.
Просто зайдите в Командную строку
Установить Oracle SIDC:> установить oracle_sid=ORCL
Теперь запустите команду Net start.C:> net start oracleserviceORCL
Из командной консоли, если вы получите эту ошибку, вы можете избежать ее, набрав sqlplus /nolog
тогда вы можете подключить conn user/pass @host: порт / сервис
Добавьте в переменные среды следующую переменную и значение, чтобы определить место файла tnsnames.ora:
TNS_ADMIN
C: \ оракул \ продукт \10.2.0\client_1\ сеть \ админ
В моем случае (для OracleExpress) служба работала, но у меня возникла эта проблема при попытке доступа к базе данных через sqlplus без идентификатора соединения:
sqlplus sys/mypassword as sysdba
Чтобы это работало, мне нужно было добавить идентификатор соединения (XE для Oracle Express), поэтому следующая команда работала нормально:
sqlplus sys/mypassword@XE as sysdba
Если вы по-прежнему получаете ORA-12560, убедитесь, что вы можете пропинговать службу XE. Использование:
tnsping XE
И вы должны получить сообщение OK вместе с полной строкой соединения (команда tnsping находится в каталоге установки oracle: [каталог установки oracle express]\app\oracle\product\11.2.0\server\bin). Если вы не можете пинг, убедитесь, что ваш tnsnames.ora
файл доступен для sqlplus. Вам может потребоваться установить переменную среды TNS_ADMIN, указывающую на каталог ADMIN, в котором находится файл, например:
TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN
После многих поисков есть простой способ решить эту проблему. Просто следуйте инструкциям.
- Проверьте статус вашего слушателя.
- откройте командную строку и введите
lsnrctl status
- Вы не получите слушателя.
- откройте командную строку и введите
Теперь откройте
listener.ora
файл, который присутствует в следующем каталоге:C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
- Откройте этот файл и измените параметр хоста с вашим именем компьютера
Вы можете получить имя своего компьютера, щелкнув правой кнопкой мыши на
My Computer
и проверьте имя своего компьютера и замените параметр хоста на имя вашего компьютера следующим образом:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = Electron-PC)(PORT = 1521) ) ) )
Так что здесь вы можете наблюдать
HOST = Electron-PC
, который является моим именем компьютера.Сохраните файл listener.ora и снова вернитесь в утилиту cammand.
3.Введите следующую команду в командной строке
lsnrctl start
Это начнет OracleTNSListner
,
Вы можете проверить это в сервисе, открыв вкладку сервисов диспетчера задач. если не запускается автоматически, вы можете запустить его.
Только этого и вы снова готовы работать над оракулом.
Удачи.
Довольно часто это означает, что слушатель еще не начал. Проверьте панель "Услуги".
В Windows (как вы) другой распространенной причиной является то, что ORACLE_SID не определен в реестре. Либо отредактируйте реестр, либо установите ORACLE_SID в поле CMD. (Поскольку вы хотите запустить sqlplusw.exe, я предлагаю вам отредактировать реестр.)
Я решил проблему простым способом. Мой оракул работал просто отлично в прошлом. После того, как я установил MS SQL Server, я заметил эту проблему. Я просто удалил MS SQL Server на моей машине, а затем проблема исчезла. Убедитесь, что вы перезагрузите компьютер после этого. Теперь я могу снова подключиться к базе данных Oracle через SQLPlus. Я предполагаю, что между ними есть какой-то конфликт. Надеюсь это поможет.
Другое возможное решение, которое просто сработало для меня... учитывая, что я использовал свой локальный логин в качестве разрешений dba.
Следуйте инструкциям, чтобы добраться до Сервисов. Щелкните правой кнопкой мыши на экземпляре и перейдите к "Вход в систему"? (может быть не имя, но это одна из вкладок, содержащих разрешения). Измените настройки, чтобы использовать LOCAL.
Это действительно сработало на моей машине. Но вместо OracleServiceORCL я нашел OracleServiceXE.
Просто чтобы добавить, следуйте скриншоту и выберите локальную учетную запись для запуска, если она не выбрана. Затем запустите службу.
https://stackru.com/image s/6ec32c7377428cc40366e035bf813bc4aa03cf13.png
Если ни один из описанных выше способов не работает, попробуйте следующее: LISTENER.ora
(мой находится в: oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
) ==> добавить пользовательский прослушиватель, который указывает на вашу базу данных (SID), например, мой SID - XZ0301, поэтому:
## Base XZ03001
SID_LIST_LISTENER_XZ03001=(SID_LIST=(SID_DESC=(ORACLE_HOME =
E:\oracle\product\11.2.0\dbhome_1)(SID_NAME= XZ03001)))
LISTENER_XZ03001=(DESCRIPTION_LIST=(ADDRESS=(PROTOCOL =
TCP)(HOST=MyComputerName)(PORT= 1521)))
DIAG_ADR_ENABLED_LISTENER_XZ03001=ON
ADR_BASE_LISTENER_XZ03001=E:\oracle
Перезагрузите машину
Для Windows 7 используйте следующее, чтобы изменить LISTENER.ora: - Перейдите в Пуск> Все программы> Стандартные - Щелкните правой кнопкой мыши Блокнот и выберите Запуск от имени администратора. - Файл> открыть и перейдите к файлу tnsnames.ora. - Внесите изменения, тогда это позволит вам сохранить
Поток плавных шагов:
Отредактируйте файл listener.ora и tnsnames.ora в папке $Oracle_home\product\11.2.0\client_1\NETWORK\ADMIN
а. добавить файл listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) )
)
ADR_BASE_LISTENER = C: [здесь c - домашний каталог устных сообщений]
б. добавить в файл tnsnames.ora
SCHEMADEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dabase_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SCHEMADEV)
)
)
- Откройте командную строку и введите
sqlplus username/passowrd@oracle_connection_alias
Пример:
имя пользователя: your_database_username
пароль: ваш_данный_пользователь
oracle_connection_alias: SCHEMADEV для приведенного выше примера.
Пробую 2 варианта:
- Вы меняете службу OracleService во вкладке Service -> Running
- Войдите в систему с помощью команды cmd: sqlplus user_name/pass_word@orcl12C Примечание: orcle12c -> имя OracleService name, запущенное на вашем ноутбуке
Вы должны указать SQLPlus, в какую базу данных вы хотите войти. Строка хоста должна быть либо строкой соединения, либо псевдонимом, настроенным в вашем файле TNSNames.ora.
По какой-то причине на моем ноутбуке были одновременно C:\Oracle\tns_admin\ и C:\oraclex\app\oracle\product\11.2.0\server\network\ADMIN\. Я переименовал C:\Oracle в C:\Oracle-DISABLE, чтобы исправить ошибку и снова иметь возможность работать с sqlplus из командной строки для управления установкой Oracle XE.
ORA-12560: TNS: ошибка адаптивного протокола
- установить переменные среды: ORACLE_BASE, ORACLE_HOME, ORACLE_SID
- убедитесь, что ваш пользователь является частью ORACLE_GROUP_NAME (Windows)
- убедитесь, что файл ORACLE_HOME/network/admin/sqlnet.ora: SQLNET.AUTHENTICATION_SERVICES = (NTS)
- (Windows) Будьте осторожны при добавлении нового клиента Oracle: добавление нового пути к окружению PATH. переменная может испортить вещи. Первая запись в этой переменной имеет значение: удостоверьтесь, что исполняемый файл sqlplus в ORACLE_HOME (ORACLE_HOME/bin) стоит первым в окружении PATH. переменная.
Ниже приведены исправления, которые могут быть применены для решения
TNS 12560
ошибка
- Получить последний патч для
SQL*NET
клиентское программное обеспечение - Набор
$ORACLE_HOME
а также$PATH
переменная (должна быть доступна для пользователя системы) - Проверьте разрешения на ПК-клиенте
- Проверять
$TNS_ADMIN
Переменная - Проверьте, есть ли в сети проблемы с брандмауэром или антивирусом
- Проверьте, запущены ли службы Windows Run >> Services.msc службы OracleXE или OracleORCL. В случае ошибки сетевой трассировки проверьте ссылку ниже:
В моем случае (ORA-12560: ошибка адаптера протокола TNS) Причины проблемы с подключением к базе данных, такие как база данных, имя пользователя и пароль.
Как только вы получили проблему. Вначале вы должны проверить детали подключения, после проверки службы оракула и многое другое.
Я пропустил некоторые детали подключения, так что только я получил ошибку адаптера протокола TNS, я буду изменять детали подключения, это будет работать нормально.
У меня была проблема "ORA-12560: TNS: ошибка адаптера протокола", и я гуглил ее в течение 2 часов, не обращая внимания на детали. Я открыл командную строку, а затем у меня было это:
C:\Users\Frodo>set oracle_sid=<DB name>
... пока должно быть вранье это
C:\>set oracle_sid=<DB name>
C:> должно быть вместо C: \ Users \ Frodo> - это была моя проблема; так что это сработало:
C:\Users\Frodo> cd c:
C:\>set oracle_sid=<DB name>
C:\>exp ........