Подключение к базе данных Oracle с использованием имени службы вместо SID

Идея здесь в том, чтобы иметь возможность подключаться к моей базе данных, используя имя службы вместо SID. Вот мой tnsnames.ora:

# tnsnames.ora Network Configuration File: C:\Users\jj\Downloads\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.myDomain.int)
    )
  )
  
DB_PBD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = myServiceName)
    )
  )  

И вот мой listener.ora:

# listener.ora Network Configuration File: C:\Users\jj\Downloads\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\Users\jj\Downloads\WINDOWS.X64_193000_db_home)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\Users\jj\Downloads\WINDOWS.X64_193000_db_home\bin\oraclr19.dll")
    )
   (SID_DESC = 
        (GLOBAL_DBNAME = orcl)
        (ORACLE_HOME = C:\Users\jj\Downloads\WINDOWS.X64_193000_db_home)
        (SID_NAME = orcl)
    )
   (SID_DESC = 
        (GLOBAL_DBNAME = DB_PBD)
        (ORACLE_HOME = C:\Users\jj\Downloads\WINDOWS.X64_193000_db_home)
        (SID_NAME = orcl)
    )   
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

Пока я могу установить соединение, используя ORCL, orcl.myDomain.int и DB_PBD.

Однако, когда я пытаюсь подключиться к нему, используя myServiceName какой SERVICE_NAME записи DB_PBD, Я получаю следующую ошибку:

TNS-12514: TNS:listener does not currently know of service requested in connect descriptor

Что-то не так с способом определения myServiceName?

РЕДАКТИРОВАТЬ: когда я просматривал свой список услуг в своей базе данных, я не нашел myServiceName:

SQL> select name from V$SERVICES;

    NAME
    ----------------------------------------------------------------
    orclXDB
    SYS$BACKGROUND
    orcl.myDomain.int
    SYS$USERS
    orclpdb

Стоит ли мне добавить это и сюда?

0 ответов

Другие вопросы по тегам