Подключитесь к sql plus из командной строки, используя строку подключения

41

Допустим, у меня есть база данных Oracle. У меня есть имя пользователя = x, пароль = y, база данных = z. Также я знаю порт = a, SID = b, имя хоста = c.

Так как мне нужно правильно подключиться? Я использовал много вариантов, таких как:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))

Отправка этих командных строк обычно возвращает мне сообщения об ошибках вроде:

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

Спасибо заранее!!

Edvinas
источник
3
Если у вас есть правильный хост / порт, мне кажется, что экземпляр не запущен или не зарегистрирован в слушателе.
Colin 't Hart
1
используя ezconnect:sqlplus x/y@c:a/b
Дитер DHoker
1
для записи, ваш второй пример (по крайней мере) работает для меня, если я окружу его кавычками. как x @ "(ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = c) (ПОРТ = a)) (CONNECT_DATA = (SID = b)))"
rogerdpack
Открыть -> Услуги в окне Пуск -> oracleservicexe У меня работает.
Пракаш

Ответы:

75

ты пробовал

sqlplus username/password@host:port/service
sqlplus x/y@c:a/b

современные версии sqlplus (версия 11 или новее) понимают этот синтаксис, и вам не нужен файл tnsnames.ora.

Ханспитер Оберлин
источник
2
Это работает отлично
Gajotres
4
какая версия? У меня не работает CentOS ОШИБКА: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения
Edmondo1984
Номер порта по умолчанию: 1521
Иван Чау
4
У меня есть SID вместо службы , чтобы с помощью «:» вместо «/» работал для меня SQLPLUS имя пользователя / пароль @ хост: порт: с.и.д.
Pratik Goenka
1
Прилагаемый sqlplus v11.2.0.1.0не поддерживает host:portсинтаксис. Кажется, 11.2.0.4.0уже поддерживает ...
gavenkoa
12

Самое простое - использовать файл tnsnames.ora для подключения к базе данных. Для этого отредактируйте его и добавьте новую запись: Этот файл обычно находится в каталоге $ ORACLE HOME \ NETWORK \ ADMIN.

myDb  =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
   )
 (CONNECT_DATA =
   (SERVICE_NAME =b)
 )
)

и тогда вы можете подключиться к БД:

sqlplus x / y @ myDb

eliatou
источник
Чтобы избежать ввода
rogerdpack
7

К оригинальному постеру ... в первом варианте вы пропустили закрывающую скобку

Неверно: (Ваша строка)

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

Правильный:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'
О. Годой
источник
2

Ваша строка sqlplus выглядит правильно, проверьте следующее:

  1. Вы можете подключиться как sysdba на самом сервере базы данных.
  2. Вы можете подключиться как пользователь, к которому вы пытаетесь, на самом сервере базы данных.
  3. Вы можете пропинговать сервер базы данных с компьютера, с которого пытаетесь подключиться.
  4. Вы можете настроить прослушивание с компьютера, к которому пытаетесь подключиться.

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

Ли Риффель
источник
1

Может быть, ваша база данных не работает. Если машина была перезапущена и экземпляр не настроен на автозапуск (и он не был запущен вручную), вам может потребоваться запустить службу самостоятельно.

Если у вас есть доступ к экрану «Службы», вы можете сделать это оттуда; или вы можете сделать это из командной строки.

Перейдите в командную строку и введите следующие команды:

set oracle_sid=ORCL

net start oracleserviceORCL

Первый устанавливает Oracle SID; второй фактически запускает службу.

Karthick
источник
0

извлечь из справки sqlplus:

может быть в форме Net Service Name или Easy Connect.

  @[<net_service_name> | [//]Host[:Port]/<service_name>]
user82219
источник
-2

Я обнаружил, что легко подключиться к удаленному рабочему столу и открыть командную строку, а затем подключиться:

sqlplus sys/YourPassword as sysdba

Келли
источник
-3

Вы должны запустить службы ваших баз данных. Для этого перейдите в меню «Пуск» -> «Выполнить и запустить», services.mscзатем найдите там службы баз данных и запустите его. После этого он начнет работать.

user139417
источник
-4

Это работает для меня на Oracle 11G

sqlplus orcl_usr/orcl_usr_pass@host/sid
Агрон Дака
источник