Настройка соединения с SQL * Plus: ошибка ORA-12154 - PullRequest
0 голосов
/ 05 ноября 2018

Извините за вопрос noob, но я новичок в программном обеспечении Oracle SQL.

Я пытался создать соединение с моей базой данных student (созданный в SQL Developer), но меня это сбило с толку, поскольку я использую клиент-компьютер, который будет подключаться к серверу.

Ниже приведена информация о подключении:

Имя соединения : LARGER123

Имя пользователя : LARGER123

Имя хоста : uxkg265.admin.plent

Порт : 1520

SID : ticp5076

Имя пользователя клиентского компьютера : r5678

enter image description here

Когда я открывал приглашение SQL Plus, я попытался установить несколько комбинаций в имени пользователя, чтобы установить соединение, но получил ту же ошибку ORA-12154 Ошибка .

Я подумал, что это может быть способ установки вещей в поле имени пользователя, поэтому я следовал инструкциям с сайта Oracle:

https://docs.oracle.com/database/121/ADMQS/GUID-1A15D322-B3AC-426A-86A1-EB7590930687.htm#ADMQS045

По сути, он говорит "построить" структуру имени пользователя таким образом:

   nick@"dbhost.example.com/orcl.example.com"

Где: "ник" - пользователь; "dbhost.example.com" - хост; и "orcl.example.com" - база данных.

Итак, следуя примеру, я поставил свое имя пользователя таким образом и получил ошибки:

   LARGER123@"uxkg265.admin.plent/student"

Я пробовал разные способы, включая Порт и SID , но безуспешно.

У вас есть лучшее представление о моей ошибке?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

ORA-12154 - TNS:could not resolve the connect identifier specified, но вы, вероятно, не используете TNS для разрешения идентификатора соединения: вы отредактировали файл tnsnames.ora на клиентском компьютере и создали запись для SID, который вы пытаетесь подключить к? Вероятно, нет.

Вместо выбора SID выберите «Имя службы» и поместите туда SID Oracle. При «базовом» типе соединения, который должен явно использовать хост / порт и имя службы для создания соединения, а не полагаться на TNS для поиска (разрешения) SID.

0 голосов
/ 06 ноября 2018

Вы совершенно уверены, что кто-то слушает, где вы пытаетесь подключиться. Я бы посоветовал вам начать с тестирования с помощью telnet.

Вы говорите, что у вашего сервера есть доменное имя «uxkg265.admin.plent»

nslookup uxkg265.admin.plent

Я только что проверил свой IP-адрес и обнаружил:

$ nslookup $(hostname)
Server:         xxx.xxx.xxx.xxx
Address:        xxx.xxx.xxx.xx##53
Name:   mydomain.myorg.com
Address: 192.168.56.1

Я просто попытался подключиться к своему экземпляру oracle и получил:

$ telnet  192.168.56.1 1521
Trying 192.168.56.1...
Connected to 192.168.56.1
Escape character is '^]'.
^]
telnet> quit
Connection closed.

Если я пытаюсь использовать неправильный порт, я получаю:

$ telnet  192.168.56.1 1522
Trying 192.168.56.1...
telnet: connect to address 192.168.56.1: Connection refused

Мне удалось связаться с:

sqlplus myoracle/testpass@192.168.56.1:1521/UPGR

где UPGR - имя службы.

Мне также удалось соединиться с:

sqlplus myoracle/testpass@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.1)(PORT=1521))(CONNECT_DATA=(SID=UPGR)))"

С UPGR в качестве SID.

Сначала у меня были некоторые проблемы, потому что в моей версии Oracle Linux была включена поддержка iptables, и это мешало мне подключаться с использованием sqlplus. Как только я отключил эту защиту, я смог использовать Oracle.

sudo service iptables stop
sudo chkconfig iptables off

(Имейте в виду, что iptables служит цели. Для моей тестовой системы, работающей на моем ПК в VirtualBox, отключить ее можно. Для других систем, возможно, нет.)

...