Как зарегистрировать подключаемую БД (PDB) с вновь созданным прослушивателем (LISTENER)?

Создал новую подключаемую БД (PDB) с помощью DBCA. К ней можно подключиться с прослушиваем по умолчанишю:

$ lsnrctl status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbsrv.local.net)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
[...]
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbsrv.local.net)(PORT=1521)))
Services Summary...
[...]
Service "pdb2" has 1 instance(s).
  Instance "ora193", status READY, has 1 handler(s) for this service...

Хочу чтобы соeдинения с ней обрабатывал новый прослушиватель с номером порта 1522, который добавляю в файл listener.ora:

LISTENER_TEST = (DESCRIPTION_LIST =
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv.local.net)(PORT = 1522)))
)

Запукаю его, и через минуту опрашиваю статус:

$ lsnrctl start listener_test

$ lsnrctl status listener_test
[...]
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbsrv.local.net)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     listener_test
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
[...]
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbsrv.local.net)(PORT=1522)))
The listener supports no services
The command completed successfully

Но новая БД PDB2 не регистрируется автоматически, как это было после создания на прослушивателе по-умолчанию LISTENER.

Как я могу зарегистрировать PDB с новым прслушателем LISTENER_TEST на порту 1522?


Свободный перевод вопроса How to Register Pluggable Database(PDB) with new created LISTENER от участника @Dilusha


Ответы (1 шт):

Автор решения: 0xdb

Надо изменить параметер - локальный прослушиватель LOCAL_LISTENER.

$ sqlplus -l sys/pass@dbsrv/pdb2 as sysdba

SQL> show parameters local_lis

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string

Если он не установлен, то он регистрируется на прослушивателе по-умолчанию:

Default value
(ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=1521)) where hostname is the network name of the local host.

Установить и зарегестрировать немедленно, надо так:

SQL> alter system set local_listener=
         '(address=(protocol=tcp)(host=dbsrv.local.net)(port=1522))' scope=both;

SQL> alter system register;

Без немедленной регистрации, зарегистрирует фоновый процес PMON БД автоматически в течении одной минуты.

~$ lsnrctl status listener_test
[...]
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbsrv.local.net)(PORT=1522)))
Services Summary...
Service "b64231023ef045b4e0530a01a8c0b6d7" has 1 instance(s).
  Instance "ora193", status READY, has 2 handler(s) for this service...
Service "pdb2" has 1 instance(s).
  Instance "ora193", status READY, has 2 handler(s) for this service...
The command completed successfully
→ Ссылка