Значение SERVICE_NAME выставляется автоматически при установлении соединения, а управление службами происходит посредством пакета DBMS_SERVICE.CREATE_SERVICE.
Простые примеры создания, включения, подключения, отключения и удаления:
EXECUTE DBMS_SERVICE.CREATE_SERVICE ( 'secunda', 'secunda.class' ) EXECUTE DBMS_SERVICE.START_SERVICE ( 'secunda' ) CONNECT /@localhost:1521/ secunda.class AS SYSDBA EXECUTE DBMS_SERVICE.STOP_SERVICE ( 'secunda' ) EXECUTE DBMS_SERVICE.DELETE_SERVICE ( 'secunda' )
Еще один способ создания служб – через командный интерфейс с помощью программы srvctl.
Возможные значения SERVICE_NAME указываются в сетевых установках Oracle и регистрируются в качестве службы БД процессом listener. Значения зарегистрированных в рамках БД служб можно наблюдать в таблице V$SERVICES. Помимо сконфигурированных, всегда имеются две внутренние службы: SYS$BACKGROUND используется внутренними процессами СУБД, а к SYS$USERS причисляются соединения пользователей, не указавших желаемую им службу.
Пример просмотра:
SQL> CONNECT scott/tiger@prima.class
Connected. SQL> @userenv SERVICE_NAME
SERVICE_NAME ------------------------------------------------------------------------ prima.class
Упражнение. Просмотреть список служб, зарегистрированных для рабочей БД. Объяснить наличие служб SYS$USERS и SYS$BACKGROUND.