A database link that links each database in a network to all other databases. This enables any user of any database in the network to specify a global object name in a SQL statement or object definition. An Oracle Names server can store global database links.
A global database link that is the same as the global database name is automatically registered with the Oracle Names server.
For example, if the global database name is sales.us.acme.com, a global link with the same name is registered with the Oracle Names server. You verify a global database link is working correctly by performing a SELECT statement on a table, for example:
SQL> SELECT * from email@example.com
Unless you want to specify user name and password credentials for a global database link, no additional configuration is required to use the global database link.
To define a user name and password for a global database link, use either Net8 Assistant or the NAMESCTL control utility. Because the NAMESCTL utility is limited in global database link registration functionality, Oracle Corporation recommends you use Net8 Assistant.
When CLient connects to service_name saying @xyz it should be resolved to get connect to a database to which the service_name has been registered.
You have couple of methods for names resolution:
tnasnames.ora where you describe what service_name connecting to what database on a server. When you make a connection to the client it will search tnsnames.ora nad resolve what database is supposed to connect.... in simple we call its local names resolution method.
You can have very weel name server where there are entries for all these names stored in a network. this is called names resolution using names server.