This is what Oracle has been pushing forward since Oracle 8i.
Then what is this mysterious "service", and what are the benefits it offers to the clients?
What is a service?
In the realm of Oracle RDBMS, service
– is a means of grouping database sessions (access connections) that are doing the same kind of work. Say if an Oracle database is used by SAP, there will be users using the HR module only, another group of user using the Finance Module only, and the third Inventory only. In this case, using 3 services, one for each group of users, will allow a better management of the resources to serve better each of the groups based on their own needs.
– provides a single-system image, instead of multiple, in case multiple instances (RAC) is deployed for an application (say SAP on an RAC database).
– is part of the regular administration tasks that dynamic service-to-instance allocation, and is a base for high availability of connections. For example, if one instance is down, the service will automatically fail the user connection to the next available instance. High availability is granted.
– provides an additional performance tuning dimension. One example is a DBA can focus on the service for one particular group found using too much resources while leaving the other services (groups) alone.
What are the components of a service?
– A service name
– A GUN (global unique name, e.g. spa_hr.sap.oracle.com)
– A network name
In cases of RAC, a lot more components are presented: a few of them are
– High availability configuration
– Failover characteristics
– Mapping services to user groups, etc.
– Application … DBA manages most of the time
– Internal … Oracle manages them
How to create a service then?
– Using Netca
– Using DBMS_SERVICE.CREATE – single instance only
– For RAC databases, one need DBCA, SRVCTL, and EM (Enterprise Manager)