Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 dbms_service.create_service на недефолтный листенер  [new]
AlexVin
Member

Откуда: E-burg
Сообщений: 940
oracle 12.2

Oracle Clusterware, Oracle Restart, or Oracle Global Data Services не используется

exec DBMS_SERVICE.CREATE_SERVICE(service_name => 'MY1',network_name =>'MY1')


как можно динамически зарегить на недефолтном листенере только этот сервис бд?
11 апр 19, 13:37    [21859376]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6699
AlexVin,

Через процедуру не получится
Но можно через
global_dbname в SID_LIST_XXXXX
11 апр 19, 16:45    [21859712]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
SeaGate
Member

Откуда: Новосибирск
Сообщений: 1610
AlexVin,

shared server:

SQL> exec DBMS_SERVICE.CREATE_SERVICE(service_name => 'MY1',network_name =>'MY1')

PL/SQL procedure successfully completed.

SQL> exec DBMS_SERVICE.CREATE_SERVICE(service_name => 'MY2',network_name =>'MY2')

PL/SQL procedure successfully completed.

SQL> exec dbms_service.start_service('MY1')

PL/SQL procedure successfully completed.

SQL> exec dbms_service.start_service('MY2')

PL/SQL procedure successfully completed.

SQL> !lsnrctl stat LISTENER_NON_DEFAULT

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 11-APR-2019 11:06:31
...
STATUS of the LISTENER
------------------------
Alias                     LISTENER_NON_DEFAULT
...
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_NON_DEFAULT)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xxx)(PORT=1522)))
The listener supports no services
The command completed successfully

SQL> alter system set dispatchers='(PROTOCOL=TCP)(LISTENER=LISTENER_NON_DEFAULT)(SERVICE=MY1)';

System altered.

SQL> !lsnrctl stat LISTENER_NON_DEFAULT

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 11-APR-2019 11:07:40

...
STATUS of the LISTENER
------------------------
Alias                     LISTENER_NON_DEFAULT
...
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_NON_DEFAULT)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xxx)(PORT=1522)))
Services Summary...
Service "MY1" has 1 instance(s).
  Instance "CDB", status READY, has 1 handler(s) for this service...
The command completed successfully

dedicated самое близкое, но не совсем то: через cman или 12.2: DBSFW Database Service Firewall - Service Level Access Control - Creating and Registering a Service to a Listener (Doc ID 2410276.1)
11 апр 19, 18:20    [21859815]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
Vivat!San
Member

Откуда: Отсюда не возвращаются
Сообщений: 580
На листенере регистрируется экземпляр, а сервисы существуют внутри БД.
11 апр 19, 18:28    [21859824]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
AlexVin
Member

Откуда: E-burg
Сообщений: 940
Multitenant аднако. и надо вывесить одну pdb(и только её) на один порт(адрес), а другую(например) на другой.

SeaGate
dedicated самое близкое, но не совсем то

dedicated надо.
ноту про DBSFW видел, но так делать тоже через не совсем то получится.

Vadim Lejnin
Но можно через
global_dbname в SID_LIST_XXXXX


global_dbname в SID_LIST_XXXXX - это статика.
а динамической регистрации хочется для taf, даже проще - Connect-time Failover.

Vivat!San
На листенере регистрируется экземпляр, а сервисы существуют внутри БД.

пичально.
если раньше это могло выглядеть как желание странного,
то теперь в экземпляре может вращаться много чего разного.
ждать oracle 21.3?
12 апр 19, 08:04    [21860100]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
-2-
Member

Откуда:
Сообщений: 14730
AlexVin
надо вывесить одну pdb(и только её) на один порт(адрес), а другую(например) на другой.
Пусть сервисы регистрируются во всех листенерах, а ответственность за указание правильного порта переложить на клиента.
12 апр 19, 08:12    [21860107]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
AlexVin
Member

Откуда: E-burg
Сообщений: 940
-2-
AlexVin
надо вывесить одну pdb(и только её) на один порт(адрес), а другую(например) на другой.
Пусть сервисы регистрируются во всех листенерах, а ответственность за указание правильного порта переложить на клиента.


не, не о том речь. речь ещё и о том, чтобы физически не было доступа не чужой сервис.
12 апр 19, 09:23    [21860148]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
Vivat!San
Member

Откуда: Отсюда не возвращаются
Сообщений: 580
AlexVin
не, не о том речь. речь ещё и о том, чтобы физически не было доступа не чужой сервис.


А если кто-то узнает SID, как запретите?
Вы не туда идёте, сервисы не для этого служат, если Вы попытались сделать не стандартный порт,
что мешало сделать нестандартное имя сервиса на стандартном порту, чем это отличается?
12 апр 19, 10:22    [21860221]     Ответить | Цитировать Сообщить модератору
 Re: dbms_service.create_service на недефолтный листенер  [new]
AlexVin
Member

Откуда: E-burg
Сообщений: 940
Vivat!San
А если кто-то узнает SID, как запретите?
Вы не туда идёте, сервисы не для этого служат, если Вы попытались сделать не стандартный порт,
что мешало сделать нестандартное имя сервиса на стандартном порту, чем это отличается?


вот это все на стандартном порту
Services Summary...
Service "6c0daaa84cfb35e2e0531721640a4d0b" has 1 instance(s).
  Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "CDB1A" has 1 instance(s).
  Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "PDB1SERV" has 1 instance(s).
  Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "pdb1" has 1 instance(s).
  Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "pdb2" has 1 instance(s).
  Instance "CDB1", status READY, has 1 handler(s) for this service...
The command completed successfully

а это на нестандартном
Services Summary...
Service "PDB1SERV" has 1 instance(s).
  Instance "CDB1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully


сейчас делаем статикой, но вот захотелось CTF, для которого нужна динамика
если кто-то узнает sid (CDB1), то в контейнерной архитектуре ему путь на втором листенере в CDB$ROOT
а если кто-то узнает имя pdb, то сервиса на таком листенере нет

в общем понятно, что нельзя, а жаль
12 апр 19, 11:38    [21860312]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить