Tns имя оракула, что это такое

Обновлено: 21.11.2024

Ответ: Когда администратор базы данных Oracle создает свой файл tnsnames.ora для определения удаленных баз данных, он часто указывает имя хоста внешнего сервера, на котором находится удаленная база данных Oracle. Например, запись в файле tnsnames.ora для удаленной базы данных может выглядеть следующим образом:

berlin =
(ОПИСАНИЕ =
(СПИСОК_АДРЕСОВ =
(АДРЕС =
(СООБЩЕСТВО = TCP)
(ПРОТОКОЛ = TCP)
(ХОСТ = hun)
(PORT = 1521)
)
)
(CONNECT_DATA = (SID = kraut))
)

Здесь мы видим службу TNS с именем berlin, которая определяет подключение к удаленному серверу с именем hun, содержащему базу данных Oracle с именем kraut. Когда с сервера UNIX поступает запрос на удаленное подключение, осуществляется доступ к файлу /etc/host для получения IP-адреса сервера hum.

Из приведенного ниже списка видно, что сервер hun расположен по адресу 192.133.13.12. Таким образом, файл /etc/host используется для изоляции IP-адреса от файла tnsnames.ora. Если IP-адрес когда-либо изменится, системному администратору UNIX нужно изменить IP-адрес только в одном месте.

Подключение UNIX для Oracle

Когда администратор базы данных Oracle создает файл tnsnames.ora для определения удаленных баз данных, он часто указывает имя хоста внешнего сервера, на котором находится удаленная база данных Oracle, вместо адреса TCP/IP. Например, запись в файле tnsnames.ora для удаленной базы данных может выглядеть следующим образом:

kc =
(ОПИСАНИЕ =
(СПИСОК_АДРЕСОВ =
(АДРЕС =
(СООБЩЕСТВО = TCP )
(ПРОТОКОЛ = TCP )
( ХОСТ = ворота)
( ПОРТ = 1521)
)
)
(CONNECT_ DATA = ( SID = bbq))
)

Здесь показано имя службы TNS kc, которое определяет подключение к удаленному серверу с именем gates, который содержит базу данных Oracle с именем bbq. Когда с сервера UNIX делается запрос на удаленное подключение, осуществляется доступ к файлу /etc/hosts для получения IP-адреса сервера gates. Из приведенного ниже списка видно, что сервер gates расположен по адресу 192.133.13.12. Таким образом, файл /etc/hosts используется для изоляции IP-адреса от файла tnsnames.ora. Если IP-адрес когда-либо изменится, системному администратору UNIX нужно изменить IP-адрес только в одном месте.

корень> cat /etc/hosts

Многие команды UNIX, используемые для управления базой данных Oracle, аналогичны, а иногда даже идентичны командам Windows.

Получите полную
информацию о настройке Oracle SQL

Знаменитая книга "Расширенная настройка Oracle SQL. Полное руководство" содержит ценную информацию о настройке Oracle SQL. Эта книга включает сценарии и инструменты для повышения производительности Oracle 11g, и вы можете купить ее со скидкой 30 % непосредственно у издателя.

Бурлесон — американская команда

Примечание. Эта документация по Oracle была создана в качестве справочника по поддержке и обучению Oracle для использования нашими специалистами-консультантами по настройке производительности администраторов баз данных. Не стесняйтесь задавать вопросы на нашем форуме Oracle.

Проверьте опыт! Любой, кто рассматривает возможность использования услуг эксперта службы поддержки Oracle, должен самостоятельно проверить свои полномочия и опыт, а не полагаться на рекламу и самопровозглашенный опыт. Все законные эксперты Oracle публикуют свои квалификации Oracle.

Ошибки? Технология Oracle меняется, и мы стараемся обновлять нашу информацию о поддержке BC Oracle. Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего контента, мы будем признательны за ваш отзыв. Просто электронная почта:

и укажите URL-адрес страницы.


Burleson Consulting

Оракул поддержки баз данных

Привет, я установил oracle 11g... и скачал драйвер ojdbc5.jar..
при использовании этого jar-файла в netbeans для добавления драйвера для подключения к базе данных он запрашивает имя TNS..
может Я знаю, как называется eTNS?
мой домен db [email protected]/1521..
спасибо
суреш

Ответы

Перейдите по этой ссылке. Это будет полезно.


С уважением
Асиф Кабир

Имя Tns — это имя записи в файле tnsnames.ora, который хранится в $ORACLE_HOME/network/admin

Некоторые драйверы JDBC подключаются с помощью строки подключения, некоторые могут использовать имя TNS.

mydb =
(DESCRIPTION =
(АДРЕС = (ПРОТОКОЛ = TCP)(HOST = myserver)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED )
(SERVICE_NAME = mydb)
)
)

имя tns — это имя, которое разрешено для доступа к базе данных:
Например:

myname =
(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=linux1)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=mySID ))
)

мое имя разрешается на
- хосте: linux1
- TCP-порте: 1521 (где слушатель прослушивает)
- службе базы данных, которая известна слушателю: mySID

Это простой способ преобразовать имя в экземпляр базы данных Oracle в сети.

Что такое TNS? Это псевдоним.

Подобно тому, как имя хоста является псевдонимом для IP-адреса, TNS является псевдонимом для строки подключения OCI (Oracle Call Interface). Эта строка идентифицирует сервер базы данных и экземпляр базы данных, к которым необходимо подключиться. Он также может включать параметры балансировки нагрузки, запрашивать определенный тип подключения, подключение к определенной службе базы данных и т. д.

Файл +/etc/hosts+ (в Unix) или c:\windows\system32\drivers\etc\hosts (в Windows) используется для хранения списка имен хостов (псевдонимов) для IP-адреса.

У меня есть сервер на основе Java (Tomcat), который подключается к базе данных Oracle с помощью соединения JDBC. Существует несколько способов подключения к базе данных: SID, имя TNS, имя службы.

Я хотел бы понять, в чем разница между каждым из этих подключений и какое подключение рекомендуется (SID, TNS или служба) при подключении к кластерной базе данных. Вот имя TNS, которое у нас есть для базы данных:

пока у вас указано только ОДНО имя хоста, разницы практически нет. Если вы были подключены к RAC(OPS) или DataGuard, то да. SID уникален, не подлежит изменению и заканчивается числом. При этом SERVICE_NAME может присутствовать на одном или нескольких узлах. И он также может перемещаться между узлами

2 ответа 2

SERVICE_NAME — это псевдоним экземпляра базы данных (или нескольких экземпляров). Основная цель этого, если вы используете кластер. Используя это, мы можем подключить конкретную базу данных в кластере. И другим способом, используя SID (идентификатор системы), мы можем подключиться к экземпляру базы данных, который является уникальным именем для экземпляра базы данных Oracle.

Короче говоря, SID = уникальное имя вашей БД, SERVICE_NAME = псевдоним, используемый при подключении.

Существует несколько способов предоставления сведений о базе данных, таких как непосредственное указание, tnsnames.ora (т. е. имя TNS), каталог LDAP, сетевые информационные службы.

Имя TNS (Transparent Network Substrate) — это имя записи в файле tnsnames.ora, который хранится в $ORACLE_HOME/network/admin.
Этот файл содержит информацию, которая используется системой для подключения к база данных оракула. Используя это, клиент может прозрачно получать информацию, связанную с сервером. Он содержит следующую информацию

Драйверы JDBC подключаются к строке подключения с помощью TNS следующим образом

SID Oracle — это уникальное имя, которое однозначно идентифицирует ваш экземпляр/базу данных, где имя службы — это псевдоним TNS, который вы даете при удаленном подключении к своей базе данных, и это имя службы записывается в файле Tnsnames.ora на ваших клиентах и может быть таким же, как SID, и вы также можете дать ему любое другое имя.

SERVICE_NAME — это новая функция, начиная с версии oracle 8i, в которой база данных может регистрироваться в прослушивателе. Если база данных зарегистрирована в прослушивателе таким образом, вы можете использовать параметр SERVICE_NAME в tnsnames.ora, в противном случае используйте SID в tnsnames.ora.

Кроме того, если у вас есть OPS (RAC), у вас будет разное SERVICE_NAME для каждого экземпляра.

SERVICE_NAMES указывает одно или несколько имен службы базы данных, к которой подключается этот экземпляр. Вы можете указать несколько имен служб, чтобы различать различные варианты использования одной и той же базы данных. Например:

Вы также можете использовать имена служб для идентификации одной службы, доступной из двух разных баз данных, с помощью репликации.

В среде Oracle Parallel Server этот параметр необходимо задавать для каждого экземпляра.

TNS — это файл конфигурации sql*net, определяющий адреса баз данных для установления к ним соединения.

Файл TNSNAMES.ORA является важным файлом при работе с Oracle. Узнайте все о том, что это такое, где находится, а также как его создавать и редактировать в этой статье.

В этой статье мы рассмотрим:

    • Что такое TNSNAMES.ORA?
    • Где находится файл TNSNAMES.ORA?
    • В каком порядке Oracle проверяет эти местоположения?
    • Расположение TNSNAMES в Unix
    • Расположение TNSNAMES в Windows
    • Что такое синтаксис?
    • Изменение файла TNSNAMES.ORA
    • Создание файла TNSNAMES.ORA-файл
    • Пример TNSNAMES
    • Разработчик SQL и TNSNAMES.ORA

    Что такое TNSNAMES.ORA?

    TNSNAMES.ORA — это файл конфигурации, который использует база данных Oracle. Он позволяет пользователям и приложениям подключаться к базам данных Oracle, сопоставляя имя подключения со всеми соответствующими данными.

    Он написан с использованием особого синтаксиса, о котором я расскажу позже в этой статье. Хорошая новость заключается в том, что его можно редактировать в любом текстовом редакторе.

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

    Где находится файл TNSNAMES.ORA?

    Расположение файла TNSNAMES.ORA:

    Что это значит?

    Ну, $ORACLE_HOME — это переменная среды. Она работает так же, как переменная в языке программирования, но находится в вашей операционной системе.

    В данном случае $ORACLE_HOME — это место, где установлена ​​база данных Oracle. Эта переменная среды или путь работает одинаково в операционных системах Unix и Windows.

    Итак, как найти значение $ORACLE_HOME? В следующем разделе я покажу вам, как это сделать.

    Есть и другие места, в которых может храниться файл TNSNAMES.ORA:

    Клиентский компьютер

    Папка ORACLE_HOME\network\admin на клиентском компьютере. Файл есть и на сервере, и на клиенте.

    Переменная среды TNS_ADMIN

    Есть еще одна переменная среды, которая называется TNS_ADMIN. Расположение этой папки также может иметь файл TNSNAMES.

    Чтобы найти расположение TNS_ADMIN, выполните те же шаги, что и ниже, чтобы найти ORACLE_HOME, но замените значение TNS_ADMIN.

    В каком порядке Oracle проверяет эти расположения?

    Поскольку файл TNSNAMES.ORA находится в нескольких местах, они проверяются в определенном порядке:

    1. Если установлен TNS_ADMIN, то сначала проверяется это расположение. Если файл не найден в этом каталоге, предполагается, что файл не существует. Возможно, вам потребуется создать его.
    2. В Windows, если переменная среды TNS_ADMIN не задана, реестр проверяет параметр TNS_ADMIN и проверяет этот каталог.
    3. Если переменная TNS_ADMIN не задана, проверяется каталог ORACLE_HOME\network\admin.

    Как найти ORACLE_HOME и местоположение TNSNAMES.ORA в Unix

    Чтобы найти местоположение ORACLE_HOME в Unix, вы можете запустить следующие команды:

    Или вы можете запустить команду echo

    Как найти ORACLE_HOME и местоположение TNSNAMES.ORA в Windows

    Чтобы найти местоположение ORACLE_HOME в Windows, мы можем проверить несколько мест.

    Сначала мы проверим переменные среды на панели управления. Если его там нет, мы проверим реестр.

    Для начала откройте панель управления.

    Затем откройте «Система».

    Нажмите "Дополнительные параметры системы" слева.

    Перейдите на вкладку "Дополнительно" (если она еще не выбрана) и нажмите "Переменные среды" внизу.

    Проверьте разделы «Пользовательские переменные» и «Системные переменные» на наличие переменной с именем ORACLE_HOME. Если он отображается, то значением будет ваше местоположение ORACLE_HOME.

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

    Откройте окно команды «Выполнить» (в более старых версиях Windows) или, если вы используете Windows 10, просто откройте меню «Пуск».

    Введите regedit и нажмите Enter.

    На левой панели перейдите в это место, развернув папки:

    Теперь вам нужно нажать на элемент под Oracle слева. Это может называться KEY_XE (если вы используете Oracle Express, как и я) или KEY_OraDb11g или что-то подобное.

    Слева в этом списке будет запись ORACLE_HOME.

    Это ваше местоположение ORACLE_HOME. Например:

    Чтобы перейти к нему, дважды щелкните строку с надписью ORACLE_HOME.

    Скопируйте значение здесь и вставьте его в проводник Windows.

    Каков синтаксис файла TNSNAMES.ORA?

    Этот файл содержит ряд записей, каждая из которых представляет собой строку подключения к базе данных.

    Запись будет выглядеть следующим образом:

    Что это значит?

    • net_service_name: это имя, которое вы позже будете использовать для строки подключения. Вы можете выбрать, что это такое. Это похоже на имя, которое вы даете этому набору сведений о соединении.
    • хост: IP-адрес или имя сервера, на котором находится база данных или к которому вы хотите подключиться.
    • порт: порт, необходимый для подключения. В большинстве случаев подойдет порт 1521 по умолчанию.
    • service_name: это имя базы данных, к которой вы хотите подключиться.

    А как насчет SID? Параметр SID использовался в более ранних версиях Oracle в этом файле (Oracle 8 и более ранние версии). Вместо этого следует использовать параметр service_name.

    Как изменить файл TNSNAMES.ORA?

    Вы можете изменить файл в простом текстовом редакторе. Вы можете изменить существующую запись или создать новую.

    Чтобы добавить запись в файл, вы можете либо скопировать формат, указанный выше, либо скопировать и вставить существующую запись из файла.

    Затем внесите необходимые изменения.

    Измените net_service_name или имя, которое вы хотите присвоить соединению. Измените хост на имя сервера или IP-адрес, к которому вы хотите подключиться. Наконец, измените имя_службы на имя базы данных, к которой вы хотите подключиться.

    Сохраните файл, и ваши изменения будут сохранены.

    Как создать файл TNSNAMES.ORA?

    Если у вас нет файла TNSNAMES.ORA в каталоге ORACLE_HOME, вы можете создать его. Или вы можете создать его по любой другой причине.

    Чтобы создать файл, откройте новый текстовый файл в любом редакторе (я использую Notepad++).

    Сохраните файл с именем TNSNAMES.ORA (не файл .txt) и сохраните его в папке ORACLE_HOME.

    Теперь добавьте шаблон для записи, которую вы хотите создать:

    Затем измените параметры на те, которые вам нужны для подключения к базе данных:

    • net_service_name: имя, которое вы даете этому соединению, которое будет использоваться при подключении к нему позже.
    • хост: сервер или IP-адрес, на котором работает база данных
    • service_name: имя базы данных, к которой вы подключаетесь.

    См. пример ниже.

    Пример записи TNSNAMES.ORA

    Вот пример записи в этом файле:

    Использует ли SQL Developer TNSNAMES.ORA?

    Да, это так. В SQL Developer вы можете указать расположение вашего файла TNSNAMES.ORA, что даст вам дополнительные параметры при создании подключений к базе данных.

    В SQL Developer откройте Инструменты > Настройки.

    Разверните раздел "База данных" и нажмите "Дополнительно".

    В параметре «Каталог Tnsnames» в нижней части экрана укажите расположение файла TNSNAMES.ORA. Как упоминалось ранее, это будет ORACLE_HOME\network\admin.

    Теперь при создании нового подключения вы можете использовать эти данные TNSNAMES.

    Нажмите «Создать новое подключение» (зеленый значок + в левом верхнем углу SQL Developer).

    В раскрывающемся списке "Тип подключения" выберите TNS.

    Выбор TNS позволит вам выбрать данные подключения из файла TNSNAMES. Это упрощает управление.

    Джефф Смит подробно описал, как SQL Developer находит эти файлы, в этой статье.

    Заключение

    Файл TNSNAMES.ORA используется Oracle для хранения и настройки сведений о подключении к различным базам данных. Его может быть трудно найти, но с помощью этого руководства это сделать проще. Вносить изменения легко, так как это простой текстовый файл определенного формата. Возможно, это не то, что разработчику базы данных придется использовать так часто, но все же полезно знать об этом.

    Наконец, если вам понравилась информация и советы по карьере, которые я предоставляю, подпишитесь на мою рассылку ниже, чтобы быть в курсе моих статей. Вы также получите фантастический бонус. Спасибо!

    Читайте также: