Подскажите по подключению к Oracle

zz5
Дата: 26.03.2011 11:59:29
Опыта пока еще мало, немного нагуглил, сложилась такая картина, поправьте, где неправ:

1. Поставил на Debian virtual Oracle XE. Запустил Listneter. В Listener.ora прописаны настройки Listentera:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = debian)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

2. Хочу подключаться к БД через sqlplus. Существует отдельный файл tnsnames.ora, в котором можно создать своего рода alias для подключения к бд, чтобы потом для подключения использовать только логин, пароль, alias. Правильно?

3. Для начала пытаюсь подключиться к БД локально, т.е. с того же сервера. Посмотрел в tnsnames.ora имя alias, но при попытке из под sqlplus подключиться с помощью conn sys/12345@xe получаю
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

Сам tnsnames.ora выглядит следующим образом:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = debian)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

При этом через Application Express (Web) подключаюсь нормально.

Update (пока писал сообщение). Вроде заработало. Хотя бы скажите, насколько верны мои рассуждения?
zz5
Дата: 26.03.2011 12:00:53
И зачем на сервере tnsnames.ora? Для подключения к БД на сервере?

И в какой момент происходит считывание tnsnames клиентом, например, отредактировал я там alias при запущенном sqlplus он увидит изменения?
semenar
Дата: 26.03.2011 13:17:18
автор
2. Хочу подключаться к БД через sqlplus. Существует отдельный файл tnsnames.ora, в котором можно создать своего рода alias для подключения к бд, чтобы потом для подключения использовать только логин, пароль, alias. Правильно?

Правильно.
автор
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

ORA-12514: TNS:listener does not currently know of service requested in 
connectdescriptor 
Cause: The listener received a request to establish a connection to a database or other service. The 
connect descriptor received by the listener specified a service name for a service (usually a database 
service) that has either not yet dynamically registered with the listener or has not been statically 
configured for the listener. This may be a temporary condition such as after the listener has started,
but before the database instance has registered with the listener.
Action: Perform these steps: 
Wait a moment and try to connect a second time.
Check which services are currently known by the listener by executing the Listener Control utility 
STATUS or SERVICES command.
Непосредственно документация: Oracle® Database Net Services Administrator's Guide.10g Release 2 (10.2).
автор
И зачем на сервере tnsnames.ora? Для подключения к БД на сервере?

Например для database link. Чтобы заходить с сервера, можно обойтись и статической регистрацией.
автор
И в какой момент происходит считывание tnsnames клиентом, например, отредактировал я там alias при запущенном sqlplus он увидит изменения?

При запущенном sqlplus ты уже соеденен. При реконнекте увидит.
zz5
Дата: 26.03.2011 14:00:06
semenar
Например для database link. Чтобы заходить с сервера, можно обойтись и статической регистрацией.
Что есть статическая регистрация?
semenar
При запущенном sqlplus ты уже соеденен. При реконнекте увидит.
А с кем я соединен? Вхожу с параметром /nolog. И есть реконнект? Реконнект listenera? Или выйти из плюса и войти заново?

P.S. Документацию качаю.