powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL*NET - кто в курсе про номера портов?
14 сообщений из 14, страница 1 из 1
SQL*NET - кто в курсе про номера портов?
    #32175551
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
[ 17 : 50 : 58 ] root@mooduck(/opt/ipf/bin)# ./ipmon | grep  172 . 18 . 4 . 37 
 03 / 06 / 2003   17 : 51 : 27 . 941768  elxl0 @ 0 : 9  b  172 . 18 . 4 . 37 , 34716  ->  192 . 168 . 77 . 21 , 3946  PR tcp len  20   40  -R OUT
 03 / 06 / 2003   17 : 52 : 32 . 030146  elxl0 @ 0 : 9  b  172 . 18 . 4 . 37 , 34720  ->  192 . 168 . 77 . 21 , 3961  PR tcp len  20   64  -S OUT
 03 / 06 / 2003   17 : 52 : 59 . 030084  elxl0 @ 0 : 9  b  172 . 18 . 4 . 37 , 34720  ->  192 . 168 . 77 . 21 , 3961  PR tcp len  20   64  -S OUT
 03 / 06 / 2003   17 : 53 : 53 . 030077  elxl0 @ 0 : 9  b  172 . 18 . 4 . 37 , 34720  ->  192 . 168 . 77 . 21 , 3961  PR tcp len  20   64  -S OUT


172.18.4.37 - IP машины, с которой sqlplus-ом пытаются установить соединение с сервером на IP 192.168.77.21. Но что за левые номера портов используются при этом - с 34716 на 3946 и проч.? Ткните носом. Заодно посоветуйте, как поступить с firewall. Открыть все непривилегированные порты - не есть хорошо.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175562
lvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lvv
Гость
Наверное сервер в MTS а не dedicated\r
Вот топик /topic/14077
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175570
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Принцип установки соединения в не SHARED режиме:
1) Клиент коннектиться к порту листенера (1521)
2) После установки соединения, листенер организует новое соединие с нового(произвольного порта) клиента на новый(произвольный) порт сервера. По данному соединению и производится работа клиента.
3) Листенер продожает слушать по порту 1521

Так по умолчанию работает листенер под Windows NT. В NT есть параметр реестра (USE_SHARED_SOCKET) , которые это дело ликвидирует и работа идет с любого порта клиента только на порт листнера.

Так не работает Oracle 8.1.7 под Linux.

У тебя вроде *nix, но видимо не Linux.

Поищи по этому форуму по слову USE_SHARED_SOCKET. Эта темя неоднократно подымалась.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175578
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С firewall рекомендация стандартная - использовать connection manager. Он и будет разруливать ситуацию с разными портами оракула и одним портом файрвола.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175579
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2lvv - нет, у меня нет MTS. За ссылку спасибо.

2softbuilder@inbox.ru - оху... ох уж эта винда! Всё ни как у людей. Сервер виндовый, клиент - солярка.

А в общем, нашёл вот что - http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_id=124140.1&p_database_id=NOT
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175590
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное я не понял:
Код: plaintext
1.
2.
...
Both methods require a shotdown/startup og the nt server
...


ОС надо ещё перезапускать, выходит? Сакс, совсем сакс...
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175597
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в своё время сделал через connect manager.
Но когда у меня было много отложенных транзакций - он явно подыхал.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175608
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Scott Tiger

Можно не ругаться на винду каждый раз, когда возникает более-менее концептуальный вопрос? Система в этом смысле не лучше, но и не хуже других. Оракул под UNIX использует порты слушателя для dedicated server, но имеет свою заморочку при работе с shared server (MTS). Там у диспетчеров все порты разные. Только ругаться теперь надо на юникс...

Кроме того, решение с cman опять-таки совершенно одинаково для всех платформ при работе с проксями. И рекомендуется ораклом. Использование shared sokets в винде приводит к необходимости рубить все сессии при необходимости перезапустить слушателя. Тоже надо учитывать.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175619
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2AI - нервы сдают в последнее время :) А что мешает на *nix явно задать порты диспетчеров (типа mts_dispatchers=(address=(protocol=tcp)(host=HHHH)(port=NNNN)) )?
Про листенер понятно, впрочем, необходимости перезапускать его обычно нет. CMAN - зачем лишние сложности, здесь, по-моему, случай слишком простой...
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175623
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, дистпетчера создаются и закрываются не слушателем, а сервером. В результате порты выделяются хаотично. И синаксис задания диспетчеров другой - протокол и количество+ немного мелочи.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175943
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты уверен насчёт хаотичности портов? Я попробовал с MTS, вот что получилось:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$ grep mts app/oracle/admin/xxx/pfile/initxxx.ora
mts_dispatchers =  "(address=(protocol=tcp)(host=172 . 18 . 4 . 37 )(port= 5050 ))"
mts_dispatchers =  "(address=(protocol=tcp)(host=172 . 18 . 4 . 37 )(port= 5051 ))"
mts_dispatchers =  "(address=(protocol=tcp)(host=172 . 18 . 4 . 37 )(port= 5052 ))"
mts_dispatchers =  "(address=(protocol=tcp)(host=172 . 18 . 4 . 37 )(port= 5053 ))"
mts_dispatchers =  "(address=(protocol=tcp)(host=172 . 18 . 4 . 37 )(port= 5054 ))"

# netstat -an | grep  505 
 172 . 18 . 4 . 37 . 5050            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5051            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5052            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5053            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5054            *.*                 0        0   65536        0  LISTEN

# netstat -an | grep  1521 
      *. 1521                *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 34731      172 . 18 . 4 . 37 . 1521       73620        0   73620        0  ESTABLISHED
 172 . 18 . 4 . 37 . 1521       172 . 18 . 4 . 37 . 34731      73620        0   73620        0  ESTABLISHED


В конфиге файрволла (ipfilter):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
# allow SQLNET
pass in quick proto tcp from any to  172 . 18 . 4 . 37 / 22  port =  5050  keep state
pass in quick proto tcp from any to  172 . 18 . 4 . 37 / 22  port =  5051  keep state
pass in quick proto tcp from any to  172 . 18 . 4 . 37 / 22  port =  5052  keep state
pass in quick proto tcp from any to  172 . 18 . 4 . 37 / 22  port =  5053  keep state
pass in quick proto tcp from any to  172 . 18 . 4 . 37 / 22  port =  5054  keep state
pass in quick proto tcp from any to  172 . 18 . 4 . 37 / 22  port =  1521  keep state


Теперь устанавливаем соединение с машиной 172.18.4.37/22 (на ней работает Oracle и листенер) с машины 172.18.5.177/22 через MTS:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
# netstat -an | grep  505 
 172 . 18 . 4 . 37 . 5050            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5051            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5052            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5053            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5054            *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 5054       172 . 18 . 5 . 177 . 1246      17520        0   63356        0  ESTABLISHED

# netstat -an | grep  1521 
      *. 1521                *.*                 0        0   65536        0  LISTEN
 172 . 18 . 4 . 37 . 34731      172 . 18 . 4 . 37 . 1521       73620        0   73620        0  ESTABLISHED
 172 . 18 . 4 . 37 . 1521       172 . 18 . 4 . 37 . 34731      73620        0   73620        0  ESTABLISHED
 172 . 18 . 4 . 37 . 1521       172 . 18 . 5 . 177 . 1245      17457        0   63965        0  TIME_WAIT
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175944
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Через некоторое время коннект по 1521-му порту пропадает, что очевидно. На всякий случай вот ещё:

Код: plaintext
1.
2.
3.
4.
# netstat -an | grep  172 . 18 . 5 . 177 
 172 . 18 . 4 . 37 . 22         172 . 18 . 5 . 177 . 1183      17380        0   62804       44  ESTABLISHED
 172 . 18 . 4 . 37 . 22         172 . 18 . 5 . 177 . 1222      16864        0   64240        0  ESTABLISHED
 172 . 18 . 4 . 37 . 5054       172 . 18 . 5 . 177 . 1246      17520        0   63356        0  ESTABLISHED


Т.е., коннект с клиентской машины есть только на один из портов диспетчеров и к sshd.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175965
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вот ещё не совсем ясный момент - что за соединение такое:

Код: plaintext
1.
2.
 172 . 18 . 4 . 37 . 34731      172 . 18 . 4 . 37 . 1521       73620        0   73620        0  ESTABLISHED
 172 . 18 . 4 . 37 . 1521       172 . 18 . 4 . 37 . 34731      73620        0   73620        0  ESTABLISHED


?

Появляются после первого коннекта. Что интересно, tnsping вызывает образование только одного из таких соединений - с порта 1521 на какой-то случайный (обычно с номером больше 32k), обратного нет.
...
Рейтинг: 0 / 0
SQL*NET - кто в курсе про номера портов?
    #32175968
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это взаимодействие listener с MTS.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL*NET - кто в курсе про номера портов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]