null

Oracle Database SID deprecated да здравствует Service Name

Заметка посвящена демонстрации на примерах путей подключения к Oracle Database с помощью Service Name.

 

В современных СУБД Oracle подключение к базе данных осуществляется по имени сервиса (Service Name), а не имени идентификатора Oracle System Identifier (SID) как было ранее. Oracle System Identifier (ORACLE SID) является устаревшим способом подключения. По этой причине, при обновлении СУБД нужно спланировать как следует подключаться после обновлений по Service Name со стороны использующих базу данных систем.

 

Service Name – указывается после ‘/’ в строке подключения

например

Tune-IT-DB1 -scan:1521/DBService.tune-it.ru

В приведенном примере

  • Tune-IT-DB1 -scan – сервер баз данных
  • 1521 – порт подключения к СУБД
  • DBService.tune-it.ru – Service Name

Если в клиенте указывается в виде отдельных полей то значения из примера указываются отдельными полями.

При использовании устаревшего SID строчка подключения Thin driver выглядела так

jdbc:oracle:thin:@[HOST][:PORT]:SID

В нашем примере с SID

jdbc:oracle:thin:@Tune-IT-DB1 -scan:1521:DBService

С Service Name синтаксис трансформируется в 

jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

а пример изменится

jdbc:oracle:thin:@//Tune-IT-DB1 -scan:1521/DBService.tune-it.ru


Ну и Connect Descriptor в tnsnames.ora в приведенном примере будет выглядеть так

DBService =
  (DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Tune-IT-DB1 -scan)(PORT = 1521))
  )
    (CONNECT_DATA =
      (SERVICE_NAME = DBService.tune-it.ru)
    )
  )