Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Re: GLOBAL_NAME vs. SERVICE_NAMES


From: <>
Date: Sun, 29 Jul 2007 19:29:58 -0700
Message-ID: <>

On Jul 30, 3:49 am, Michael42 <> wrote:
> Hello,
> In an Oracle 10g database, would someone mind putting in English the
> difference between GLOBAL_NAME and the SERVICE_NAMES?
> Thanks,
> Michael

SERVICE_NAMES represents the list (it can have just one item, though) of services which you wish to advertise that your database offers. Imagine a large database with Accounts Payable, Accounts Receivable, Sales and General Ledger tables. You could just call the database 'ACCOUNTS'. You could just call the instance you access it with 'ACCOUNTS' -and then your SERVICE_NAME is likely to be ACCOUNTS.WORLD (since SERVICE_NAME defaults to DB_NAME+DB_DOMAIN -though since 9i, there has been no default value for DB_DOMAIN, so it could be that you just end up with a SERVICE_NAMES of ACCOUNTS too.

Now imagine you decide to run this database on a RAC, though -a multiinstance  environment. You want to say instance 1 will allow users to do their sales and general ledger activities, instance 2 will do accounts payable, instance 3 accounts receivable. Therefore, instance 1 will have a SERVICE_NAMES of 'SALES','GLEDGER'; instance 2 will have SERVICE_NAMES=AP; instance 3 SERVICE_NAMES=AR.

You can 'partition' your RAC, in other words, by specifying which instances will offer which services. And you do that (in part, at least) by setting SERVICE_NAMES. (It gets a hell of a lot more complicated than that in 10gR2, though, because you can also have preferred and alternative services being offered by different instances, and you can set services up by fiddling with the cluster registry rather than with init.ora parameters).

But in essence, SERVICE_NAMES allows you to specify which functional services an instance or instances can provide to users. Users then specify the service they want to connect to (instead of which instance) by having an entry in their tnsnames.ora which says to connect to SERVICE_NAME=AP or SERVICE_NAME=SALES (instead of SID=Instance1 or SID=instance2).

GLOBAL_NAMES (it's plural by the way) is simply set to TRUE or FALSE. Set it to TRUE and database links you create must have a name in your local database that is the same as the name of the remote database being linked to. Set it to FALSE, and even if you are creating a link to the SALES database, you can call the link 'FREDSLINK'. It is only of relevance in a distributed database situation, in other words. Some Oracle replication functionality doesn't actually function unless GLOBAL_NAMES is TRUE.

HJR Received on Sun Jul 29 2007 - 21:29:58 CDT

Original text of this message