Oracle net configuration assistant настройка

Обновлено: 03.07.2024

База данных работает на локальном хосте компьютера A.

Я хочу, чтобы компьютер B подключился к базе данных компьютера A на локальном хосте. Как я могу это сделать?

Вам нужно будет запустить утилиту lsnrctl на сервере A, чтобы запустить прослушиватель. Затем вы должны подключиться с компьютера B, используя следующий синтаксис:

Информация о порте является необязательной, если используется значение по умолчанию 1521.

Я устанавливаю сервер Oracle, и он позволяет без проблем подключаться с локальной машины. Но из другого Maclaptop в моей домашней сети он не может подключиться с помощью Sql Developer или Sql Plus. Проведя некоторые исследования, я понял, что есть еще один дополнительный шаг, который вы должны сделать:

Используйте сетевой менеджер Oracle. Выберите Слушателя. Добавьте IP-адрес (в моем случае это 192.168.1.12) помимо 127.0.0.1 или localhost.

В результате будет добавлена ​​запись в [OracleHome]\product\11.2.0\dbhome_1\network\admin\listener.ora

перезапустите службу слушателя. (примечание: для меня я перезагружаю машину один раз, чтобы она заработала)

Используйте статус lsnrctl для проверки
Обратите внимание, что появляется дополнительный Host = 192.168.1.12, и это то, что заставляет работать удаленное соединение.

C:\Windows\System32> статус lsnrctl
LSNRCTL для 64-битных Windows: версия 11.2.0.1.0 - выпуск 05-SEP-2015 13:51:43
Copyright (c) 1991, 2010, Oracle. Все права защищены.
Подключение к (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = IPC) (КЛЮЧ = EXTPROC1521)))
СОСТОЯНИЕ СЛУШАТЕЛЯ

Псевдоним СЛУШАТЕЛЬ
Версия TNSLSNR для 64-битной Windows: Версия 11.2.0.1.0 - Производство
Дата начала 05-SEP-2015 13:45:18
Время работы 0 дней 0 ч. 6 мин 24 сек
Уровень трассировки выключен
Безопасность включена: локальная проверка подлинности ОС
SNMP выключен
Файл параметров прослушивателя
D:\Oracle11gr2\продукт\11.2.0\dbhome_1\сеть\админ\listener.ora
Файл журнала прослушивателя d:\Oracle11gr2\diag\tnslsnr\eagleii\listener\alert\log.xml
Слушание конечных точек Сводка .
(ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = IPC) (PIPENAME = \.\Труба\EXTPROC1521ipc)))
(ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (Хост = 127.0.0.1) (PORT = 1521)))
(ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (Хост = 192.168.1.12) (PORT = 1521)))
Сводка услуг .
Сервис "CLRExtProc" имеет 1 экземпляр (ов).
Экземпляр "CLRExtProc" со статусом UNKNOWN имеет 1 обработчик (и) для этой службы .
Служба "xe" имеет 1 экземпляр (ов).
Экземпляр "xe", статус READY, имеет 1 обработчик (и) для этой службы . Служба "xeXDB" имеет 1 экземпляр (ов).
Экземпляр "xe", статус READY, имеет 1 обработчик (и) для этой службы . Команда выполнена успешно

используйте tnsping для проверки соединения
пропингуйте IPv4-адрес, а не localhost или 127.0.0.1

C:\Windows\System32> tnsping 192.168.1.12
Утилита TNS Ping для 64-битных Windows: версия 11.2.0.1.0 - выпуск 05-SEP-2015 14:09:11
Copyright (c) 1997, 2010, Oracle. Все права защищены.
Используемые файлы параметров:
D:\Oracle11gr2\продукт\11.2.0\dbhome_1\сеть\админ\sqlnet.ora

Использовал адаптер EZCONNECT для разрешения псевдонима
Попытка связаться (DESCRIPTION = (CONNECT_DATA = (SERVICE_NAME =)) (ADDRESS = (PROTOCOL = TCP) (Host = 192.168.1.12) (PORT = 1521)))
ОК (0 мсек)

На компьютере это довольно просто, вам не нужно ничего делать, просто убедитесь, что обе системы находятся в одной сети, если нет доступа к Интернету (для этого вам нужен статический ip). Хорошо, теперь на компьютере b перейдите в меню «Пуск», найдите конфигурацию в папке Oracle, нажмите «Net Configuration Assistant» в этой папке, когда появится всплывающее окно, выберите опцию «Настройка локальной сети».

Во-первых, убедитесь, что listener на сервере базы данных (компьютер A), который получает клиентские запросы на подключение, работает. Для этого выполните команду lsnrctl status .

enter image description here

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

Oracle_home\bin\Oracle.exe - исполняемый файл базы данных Oracle

Oracle_home\bin\tnslsnr.exe - слушатель Oracle

enter image description here

Наконец, установите Oracle Instant Client на клиентском компьютере (компьютер B) и запустите:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.128)(PORT = 1521))
)
)

Но когда пытаюсь проверить соединение через Net Configuration Assistant или Net Manager, то получаю ошибку:

Attempting to connect using userid: system
The test did not succeed.
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

There may be an error in the fields entered,
or the server may not be ready for a connection.

Что не правильно у меня настроено? Куда посмотреть, или с чего начать проверку?

Вот что у меня установлено:
Windows Server 2008 на виртуальной машине.
Oracle 11g
ip виртуальной машины - 192.168.111.128
имя базы данных - orcl

lsnrctl status выдает см. рисунок.

потом выполнил alter system register - получаю System altered.

это проблему не решило, все равно остается:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.128)(PORT = 1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\user\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\user\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

Как минимум одно из рекомендованных действий не проделано.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db.local)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

DBA1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dba1)
)
)

3) lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 21-DEC-2019 13:42:39

Oracle Net Configuration (конфигурация приемника и сетевой службы)

1. После установки сервера и клиента Oracle необходимо настроить приемник и службу локальной сети для доступа к внешним программам и инструментам, поэтому Oracle предоставляет два встроенных инструмента для их настройки соответственно.

Net Configuration, Net Configuration Assistant, ниже указано их местоположение (то есть открытый путь)


2. Разница между Net Configuration и Net Configuration Assistant.

a, Net Configuration Assistant - это интерфейс установки в стиле мастера (простая установка под Windows), а Net Configuration Assistant - это интерфейс ручной настройки

б. Net Configuration Assistant перезапустит текущую службу после настройки прослушивателя и локальной сетевой службы (TNS), а Net Configuration только изменяет параметры файла конфигурации и вручную изменяет файл конфигурации. Эффект тот же, но не перезапустить.После изменения службы вам необходимо вручную запустить прослушиватель.

Примечание: Если вы устанавливаете Oracle в первый раз, рекомендуется использовать Net Configuration Assistant для настройки приемника и сетевых служб.Использование Net Configuration должно позволить вам указать расположение файла сетевой конфигурации.


Новички могут быть сбиты с толку, но если вы используете Net Configuration Assistant для его настройки, он автоматически определит местоположение файла конфигурации, если вы используете Net Configuration.

3、Net Configuration Assistant

3.1 Конфигурация слушателя

Перед настройкой давайте поговорим о роли слушателя для Oracle: Проще говоря, чтобы общаться с сервером, вы должны подключиться к серверу. При установке соединения сервер должен знать, что есть клиентское соединение, а слушатель This - это задание, сообщающее серверу, что клиент подключен, а затем клиент и сервер подключены. Примечание: как только соединение установлено, даже если прослушиватель поврежден или остановлен в это время, клиент может нормально получить доступ к Oracle server., Но если вы отключите соединение с сервером Oracle и подключитесь снова, вам необходимо открыть или восстановить прослушиватель, чтобы получить к нему обычный доступ. Подробнее о функциях см.Слушатель Oracle

Процесс настройки Net Configuration Assistant выглядит следующим образом:



Первоначальная установка, выберите добавить


Укажите имя слушателя


Выберите протокол TCP


Выберите стандартный номер порта

хорошо, слушатель настроен

3.2 Конфигурация имени службы локальной сети

Следующее является моим личным пониманием, потому что в Интернете не было найдено более авторитетного заявления!

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

Имя сетевой службы примерно должно содержать три параметра

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

б. IP-адрес сервера.

c, слушатель для мониторинга базы данных, к которой будет осуществляться доступ

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




Введите имя экземпляра базы данных для доступа


Выберите сетевой протокол, TCP по умолчанию


Установите IP-адрес сервера, на котором расположен сервер базы данных Oracle.

Публикации издателей Oracle создаются таким же способом, как и публикации моментальных снимков и публикации транзакций, но перед тем как создать публикацию от издателя Oracle, необходимо выполнить следующие шаги (в данном разделе подробно описаны шаги 1, 3 и 4):

Используя предоставленный скрипт, создайте в базе данных Oracle административного пользователя для репликации.

На каждую из публикуемых таблиц предоставьте разрешение SELECT непосредственно (не через роль) пользователю с правами администратора Oracle, созданному на шаге 1.

Установите на распространитель Microsoft SQL Server клиентское ПО Oracle и поставщик OLE DB, а затем остановите и перезапустите экземпляр SQL Server. Если распространитель запущен на 64-разрядной платформе, нужно использовать 64-разрядную версию поставщика OLE DB Oracle.

Настройте базу данных Oracle как издатель на распространителе SQL Server .

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

Публикация данных с подписчиков SQL Server на подписчики, отличные отSQL Server .

Публикация данных в Oracle и из Oracle имеет следующие ограничения:

Разнородная репликация на подписчики, отличные от подписчика SQL Server, устарела. Публикация Oracle устарела. Для перемещения данных создайте решения с помощью системы отслеживания измененных данных и служб Integration Services.

Список объектов, которые могут реплицироваться из базы данных Oracle, приводится в статье Рассмотрение структуры и ограничений издателей Oracle.

Необходимо быть членом предопределенной роли сервера sysadmin , чтобы включить издатель или распространитель и создать публикацию или подписку Oracle из публикации Oracle.

Создание схемы администратора репликации в базе данных Oracle

Агенты репликации подключаются к базе данных Oracle и выполняют операции в контексте созданной пользовательской схемы. Этой схеме должны быть предоставлены некоторые разрешения, перечисленные далее. Данная схема является владельцем всех объектов, созданных в процессе репликации Microsoft SQL Server на издателе Oracle, за исключением открытого синонима MSSQLSERVERDISTRIBUTOR. Дополнительные сведения об объектах, создаваемых в базе данных Oracle, см. в разделе Objects Created on the Oracle Publisher.

При удалении открытого синонима MSSQLSERVERDISTRIBUTOR и пользователя сконфигурированной репликации Oracle с параметром CASCADE из издателя Oracle удаляются все объекты репликации.

Для помощи в настройке пользовательской схемы репликации предоставляется образец скрипта. После установки SQL Server скрипт можно найти в следующем каталоге: <drive> :\\Program Files\Microsoft SQL Server\ <InstanceName> \MSSQL\Install\oracleadmin.sql. Он также содержится в разделе Script to Grant Oracle Permissions.

Подключитесь к базе данных Oracle под учетной записью с правами доступа администратора базы данных (DBA) и выполните скрипт. Данный скрипт запрашивает имя пользователя и пароль для схемы администратора репликации, а также табличное пространство по умолчанию, в котором будут создаваться объекты (табличное пространство уже должно существовать в базе данных Oracle). Сведения об указании других табличных пространств для объектов см. в статье Управление табличными пространствами Oracle. Выберите любое имя пользователя и надежный пароль, запишите их, так как они запрашиваются позднее при настройке базы данных Oracle в качестве издателя. Рекомендуется использовать схему только для объектов, которые требуются для репликации. Не создавайте таблиц, которые будут публиковаться в этой схеме.

Создание пользовательской схемы вручную

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

CREATE PUBLIC SYNONYM and DROP PUBLIC SYNONYM

Необходимо также предоставить пользователю непосредственно (не через роль) следующие разрешения:

CREATE ANY TRIGGER. Это требуется, только если одновременно выполняется репликация моментальных снимков и транзакций.

Установка и настройка клиентского сетевого ПО Oracle на распространителе SQL Server

На распространителе SQL Server необходимо установить и настроить клиентское сетевое ПО Oracle и поставщик OLE DB Oracle, чтобы распространитель мог подключаться к издателю Oracle. После установки ПО задайте для папок установки соответствующие разрешения, а затем остановите и перезапустите экземпляр SQL Server , чтобы обеспечить обновление всех параметров (разрешения описаны ниже в разделе «Установка разрешений для каталогов»).

Необходимо использовать клиентское сетевое ПО Oracle последней доступной версии. Oracle рекомендует пользователям установить самую новую версию клиентского программного обеспечения. Клиентское программное обеспечение часто бывает новее, чем программное обеспечение баз данных.

Наиболее простой способ установки и настройки клиентского сетевого ПО заключается в использовании универсального установщика Oracle и программы Net Configuration Assistant, расположенных на компакт-диске с клиентским ПО Oracle.

В универсальном установщике Oracle необходимо ввести следующие сведения:

Сведения Описание
Oracle Home Это путь к каталогу, в который устанавливается программное обеспечение Oracle. Примите значение по умолчанию (C:\oracle\ora90 или похожее) или задайте другой путь. Дополнительные сведения о каталоге Oracle Home см. в подразделе «Рассмотрение Oracle Home» далее в этом разделе.
Имя каталога Oracle Home Псевдоним для пути к каталогу Oracle Home.
Тип установки В Oracle 10g выберите параметр установки Administrator .

После того как установка Oracle завершена, для настройки сетевых подключений используйте компонент Net Configuration Assistant. Для настройки сетевых подключений необходимо ввести сведения в четырех разделах. Администратор базы данных Oracle настраивает сеть, когда устанавливает базу данных и прослушиватель, поэтому он должен быть способен предоставить эти сведения, если они отсутствуют. Необходимо выполнить следующие действия:

Действие Описание
Идентификация базы данных Существует два способа идентификации базы данных. Первый способ использует компонент Oracle System Identifier (SID), который доступен во всех версиях Oracle. Второй метод использует компонент Service Name, доступный в версиях Oracle, начиная с 8.0. Оба метода используют значение, которое конфигурируется при создании базы данных, и важно, чтобы конфигурация сетевого клиента использовала тот же метод именования, что и администратор при конфигурации прослушивателя базы данных.
Идентификация сетевого псевдонима базы данных Необходимо указать сетевой псевдоним, который будет использоваться для доступа к базе данных Oracle. Этот же псевдоним следует использовать при идентификации базы данных Oracle в качестве издателя на распространителе SQL Server . Сетевой псевдоним — это, по существу, указатель на удаленный SID или имя службы, сконфигурированное при создании базы данных. Это относится к нескольким названиям в различных версиях и продуктах Oracle, включая Net Service Name и TNS Alias. SQL*Plus запрашивает этот псевдоним как параметр «Host String» при входе.
Выберите сетевой протокол. Выберите соответствующие поддерживаемые протоколы. Большинство приложений использует протокол TCP.
Задайте сведения об узле для идентификации прослушивателя базы данных Узел — это имя или DNS-псевдоним компьютера, на котором запущен прослушиватель Oracle. Обычно это тот же компьютер, на котором расположена база данных. Для некоторых протоколов, возможно, нужно будет указать дополнительные сведения. Например если выбрать протокол ТСР, нужно будет указать порт, который слушается прослушивателем для запросов на подключение к целевой базе данных. По умолчанию для протокола TCP используется порт 1521.

Установка разрешений для каталогов

Учетной записи, под которой выполняется служба SQL Server на распространителе, должны быть предоставлены разрешения на чтение и выполнение для каталога (и всех подкаталогов), в котором установлено клиентское сетевое ПО Oracle.

Проверка соединения между распространителем SQL Server и издателем Oracle

Перед завершением программы Net Configuration Assistant есть возможность проверить подключения к издателю Oracle. До начала проверки соединения убедитесь в том, что экземпляр базы данных Oracle находится в режиме «в сети» и запущен прослушиватель Oracle. Если проверка не удалась, свяжитесь с администратором Oracle, ответственным за базу данных, к которой была предпринята попытка подключиться.

После успешного подключения к издателю Oracle попробуйте подключиться к базе данных под учетной записью и паролем, связанным с созданной схемой администратора репликации. Необходимо выполнить следующие действия при использовании той же учетной записи Windows, которую использует служба SQL Server :

Введите cmd и нажмите кнопку ОК.

В командной строке введите:

Например: sqlplus replication/$tr0ngPasswerd@Oracle90Server

Если настройка сети прошла удачно, будет выполнен вход и появится запрос SQL .

Если при подключении к базе данных Oracle возникли проблемы, см. раздел «Распространителю SQL Server не удается подключиться к экземпляру базы данных Oracle» в Troubleshooting Oracle Publishers.

Рассмотрение Oracle Home

Oracle поддерживает параллельную установку двоичных файлов приложений, но только один набор двоичных файлов может использоваться для репликации в текущий момент. Каждый набор двоичных файлов связан с Oracle Home; двоичные файлы находятся в каталоге %ORACLE_HOME%\bin. Когда репликация выполняет подключение к издателю Oracle, необходимо убедиться в том, что используется правильный набор двоичных файлов (а именно, последняя версия клиентского сетевого ПО).

Войдите на распространитель под учетными записями, используемыми службой SQL Server и службой агентов SQL Server , установите соответствующие переменные среды. Переменная %ORACLE_HOME% должна указывать на точку установки, заданную при установке сетевого клиентского программного обеспечения. Переменная %PATH% должна включать каталог %ORACLE_HOME% \bin в качестве первой записи, относящейся к Oracle. Сведения о настройке переменных среды см. в документации по операционной системе Windows.

Настройка базы данных Oracle как издателя на распространителе SQL Server

Издатели Oracle всегда используют удаленный распространитель. Необходимо настроить экземпляр SQL Server , чтобы он работал как распространитель для издателя Oracle (издатель Oracle может использовать только один распределитель, но отдельный распространитель может обслуживать несколько издателей Oracle). После настройки распространителя определите экземпляр базы данных Oracle как издатель на распространителе SQL Server с помощью среды SQL Server Management Studio, Transact-SQL или объектов RMO. Дополнительные сведения о настройке распространителя см. в этой статье.

Издатель Oracle не может иметь то же имя, что и его распространитель SQL Server , или имя любого из издателей SQL Server , использующих тот же распространитель.

При идентификации баз данных Oracle в качестве издателя необходимо выбрать параметр публикации Oracle: Complete или Oracle Gateway. После идентификации издателя изменить данный параметр без удаления и перенастройки издателя невозможно. Параметр «Complete» предназначен для обеспечения публикаций моментальными снимками и публикаций транзакций полным набором поддерживаемых функций, необходимых для публикаций Oracle. Параметр «Oracle Gateway» обеспечивает оптимизацию производительности для случаев, когда шлюзом между системами выступает репликация.

После идентификации издателя Oracle на распространителе SQL Server репликация создает связанный сервер с таким же именем, как и служба TNS базы данных Oracle. Этот связанный сервер может использоваться только репликацией. Если вам нужно подключиться к издателю Oracle через подключение связанного сервера, создайте другое имя службы TNS и используйте это имя при вызове процедуры sp_addlinkedserver (Transact-SQL).

Чтобы настроить издатель Oracle и создать публикацию, см. раздел Create a Publication from an Oracle Database.

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