Нужна помощь в регистрации и настройке прослушивателя для локальной базы данных Oracle 19c, чтобы я мог удаленно подключить sqldeveloper

#sql #oracle19c #tnsnames

Вопрос:

Не мог бы кто-нибудь мне помочь. У меня есть локальная база данных 19c, работающая в Oracle Enterprise Linux 8.3. Я создал pdb с именем orclpdb1, к которому я мог подключаться. На данный момент я не настроил прослушиватель на постоянную работу, и теперь все, к чему я могу удаленно подключиться, — это cdb.

Вот некоторые выходные данные некоторых команд и tnsnames.ora и listener.ora. Я новичок в этом, и имена tnsnames.ora и listener.ora чертовски сбивают меня с толку в отношении служб, слушателей и реестров.

 SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      ORCLCDB*

*SQL> show parameter local_listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      (ADDRESS=(PROTOCOL=tcp)(HOST=1
                                                 92.168.1.235)(PORT=1522))*

*SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB1                       MOUNTED*

    [oracle@localhost admin]$ more listener.ora
    # listener.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    PDB_LISTENER =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.235)(PORT=1521))
             )
    SID_LIST_LISTENER_PDB1 =
      (SID_LIST =
          (SID_DESC =
            (GLOBAL_DBNAME = ORCLPDB1)
            (SID_NAME = ORCL)
            (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
          )
      )
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )

    [oracle@localhost admin]$ more tnsnames.ora
    # tnsnames.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    ORCLCDB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCLCDB)
        )
      )
    ORCLPDB1 =
       (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.235)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME=ORCLCDB)
    )
    )
    [oracle@localhost admin]$ 
 

Комментарии:

1. Почему разные номера портов. 1522 в параметре show и 1521 в файлах *.ora. ?.каков вывод lsnrctl status , и orcldpdb1 находится в смонтированном состоянии. Имя службы для ORCLPDB1 in tnsnames.ora должно быть ORCLPDB1

2. Привет, Суреш, Это хороший вопрос. Я думаю, что могу изменить местного слушателя на 1521. Я сделал имя службы orclcdb причиной того, что при входе в pdb в sql параметр service_name указан как orclcdb. Я изменил его в tnsnames.ora и изменил local_listener на 1521. Я все еще получаю ошибку. Я опубликую статус lsnrctl ниже.

3. ]$ статус lsnrctl LSNRCTL для Linux: Версия 19.0.0.0.0 — Производство 21 апреля 2021 г. 08:44:10 Авторское право (c) 1991, 2019, Oracle. Все права защищены. Подключение к (ОПИСАНИЕ=(АДРЕС=(ПРОТОКОЛ=TCP)(ХОСТ=локальный хост)(ПОРТ=1521))) TNS-12541: TNS:нет прослушивателя TNS-12560: TNS:ошибка адаптера протокола TNS-00511: Нет прослушивателя Ошибка Linux: 111: Соединение отказано в подключении к (ОПИСАНИЕ=(АДРЕС=(ПРОТОКОЛ=IPC)(КЛЮЧ=EXTPROC1521))) TNS-12541: TNS:нет прослушивателя TNS-12560: TNS:ошибка адаптера протокола TNS-00511: Нет прослушивателя Ошибка Linux: 2: Такого файла или каталога нет

4. конечно, я смог решить эту проблему. Я нашел документ oracle, в котором рекомендуется поместить ip-адрес моего хоста в файл /etc/hosts. как только я это сделал, все мои слушатели начали, и теперь я могу подключиться. Спасибо вам за помощь.