Oracle’s Global Data Dictionary

Chapter 5 introduced the concept of a global data dictionary, which is a repository that uniquely identifies all objects in a distributed database system. The challenge is to implement a global data dictionary without creating a single master site in the process and without sacrificing the notion of location transparency.

Global Naming

Oracle’s solution to this challenge hinges on the concept of global naming. In Oracle7, Oracle introduced an INIT.ORA parameter GLOBAL_NAMES, which, when set to TRUE, ensures that every database participating in a distributed environment has a unique name.

Note

You should make a habit of setting the GLOBAL_NAMES parameter to TRUE even if you are not in a distributed environment. If you ever have to switch the parameter to TRUE after it has been FALSE, you may encounter conflicts with other database names in your environment. In addition, Oracle has stated that they may require the GLOBAL_NAMES parameter to be TRUE in future versions.

You can determine the name of any given database by querying the GLOBAL_NAME data dictionary view:

SQL> SELECT global_name FROM global_name;

GLOBAL_NAME
--------------------------------------------------
PHQS.BIGWHEEL.COM

The database’s global name defaults to the concatenation of the INIT.ORA parameters DB_NAME and DB_DOMAIN. However, you can also change the global name to any value with an ALTER DATABASE statement:

ALTER DATABASE RENAME GLOBAL_NAME TO NEWNAME.BIGWHEEL.COM;

Why do you care about ...

Get Oracle Distributed Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.