Как зарегистрировать подключаемую БД (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 шт):
Надо изменить параметер - локальный прослушиватель 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