Проверка связи с БД - ORA-12154: TNS: не удалось разрешить указанный идентификатор соединения - PullRequest
2 голосов
/ 16 декабря 2011

Я знаю, что этот вопрос задавали множество раз, но я не могу понять, как применить эту информацию к моей ситуации.

У меня есть две базы данных, которые я пытаюсь соединить с помощью LINK БД. Это:

  • BBEGMTD1
  • OPEGMTP1.WORLD

Кто-то уже определил ссылку на БД с именем PE_DBLINK.WORLD.

Я могу получить доступ к обеим этим базам данных с моего компьютера, поэтому я не вижу, как это повлияет на tnsnames.ora.

Однако, когда я тестирую DB LINK, я получаю знаменитое:

Ссылка: ошибка "PE_DBLINK.WORLD": ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

Не могли бы вы указать мне правильное направление, нужно ли изменять tnsnames.ora на сервере BBEGMTD1?

Согласно комментарию @Chance, select * from ALL_DB_LINKS возвращает:

PUBLIC                        
PE_DBLINK.WORLD                                                                 
PRICING                       
OPEGMTP1.WORLD                                                                  
03-NOV-11

PUBLIC                        
EBPROJ.WORLD                                                                    
EBPROJ                        
MIDGMTP1                                                                        
17-JUN-09

MYOPEGMTP1WORLD.WORLD                                                           
PRICING                       
(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=ORA04SOUK) (PORT=1521) ) (CONNECT_D
ATA= (SERVER=dedicated) (SERVICE_NAME=OPEGMTT1) ) ) )                           
16-DEC-11

Это редактор TNSNames в TOAD, показывающий, что детали отображаются:

enter image description here

Ответы [ 6 ]

4 голосов
/ 16 декабря 2011
  1. Запустите это, чтобы проверить хост DBLink PE_DBLINK.WORLD:

    выберите * из ALL_DB_LINKS

  2. Проверьте ваши tnsnames.ora для ХОСТА (т.е. OPEGMTP1.WORLD) этого DBLink. Который находится по адресу (ваш локальный компьютер)

    % ORACLE_HOME% \ сеть \ админ \ tnsnames.ora

  3. Если вы не нашли его в tnsnames.ora, добавьте его следующим образом:

    OPEGMTP1.WORLD = (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (HOST = ORA04SOUK) (PORT = 1521)) (CONNECT_DATA = (SERVER = выделенный) (SERVICE_NAME = OPEGMTT1)))

  4. Или создайте свой собственный DBLink:

    СОЗДАТЬ БАЗУ ДАННЫХ MYOPEGMTP1.WORLD ПОДКЛЮЧИТЕСЬ К ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ПАРОЛУ USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = ORA04SOUK) (PORT = 1521)) (CONNECT_DATA = (SERVER = выделенный) (SERVICE_NAME = OPEGMTT1)))) *

2 голосов
/ 03 февраля 2013

Проверьте на хосте исходной БД правильные записи TNS. DB Link создается с хоста RDBMS к хосту RDBMS, ваш компьютер не имеет значения.

1 голос
/ 17 декабря 2018

У меня все работало нормально, без каких-либо дополнительных изменений в файле tnsnames.ora:

CREATE DATABASE LINK <link> CONNECT TO <user> IDENTIFIED BY <password> USING
'(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <service_name>)
    )
)';
0 голосов
/ 08 июля 2019

Если у вас возникли проблемы, связанные с ORA-12514.

Сценарий: клиент пытается подключиться к серверу A с сервера B, используя ссылку на БД, после чего он получает ошибку ORA-12514. если на сервере A нет записи SID_LIST_LISTENER в приемнике сервера A (это обычно происходит после обновления), он может получить ошибку.

Код ошибки: ORA-12514: TNS: слушатель в настоящее время не знает об услуге, запрошенной в дескрипторе соединения

Разрешение: добавьте запись SID_LIST_LISTENER в целевой приемник (сервера A)

Примечание # большинство из вас должны знать.

0 голосов
/ 19 ноября 2015

db_link - от сервера БД к серверу БД, а не от клиента к серверу;поэтому убедитесь, что оба сервера базы данных имеют правильные записи tns для службы.

tnsnames.ora на сервере базы данных должны иметь записи tns для службы.

0 голосов
/ 16 сентября 2014

Если это ссылка на частную БД, вам необходимо войти в систему как владелец БД для проверки.

...