RE: GLOBAL_NAMES parameter for streams

From: Hameed, Amir <>
Date: Tue, 27 May 2008 12:40:52 -0400
Message-ID: <>

Thanks to all those who replied to my note. This is what Oracle had to say in response to my SR. The duty manager was trying to be politically correct that if this is how it is stated in the manual then this is the only way we would support. The analyst did not put emphasis on the "support"



Per the streams documents, it appears that Oracle is suggesting that the GLOBAL_NAMES parameter be set to true. As I understand it, the only purpose of this parameter is to ensure that the database link names are consistent with the names of the databases that they refer to.

If this is the correct assumption, then would STREAMS still work if this parameter be ser to FALSE
and it is ensured that the database link will have the same names as the target database
that they are defined for?



Note 344239.1 - Setting the initialization parameter GLOBAL_NAMES in a Replicated Environment

Applies to: Oracle Server - Enterprise Edition - Version: 8.1 to 10.2 Information in this document applies to any platform. GoalIs it necessary to set global_names to TRUE in a replicated environment? What are the
ramifications of setting global_names to TRUE?


Oracle Corporation recommends setting global_names to true in any distributed environment, but the
code does not check to see if this requirement has been met. Therefore it is possible but not
recommended to implement advanced replication, streams, updatable materialized views
, and
read-only materialized views without having this parameter set to TRUE.

Setting this parameter to TRUE forces the database link to have the same name as
the global_name of the instance to which the database link connects. Assuming the global_name of each instance in a networked environment is unique (and they should be) this forces each database link to a remote
data source to have a unique name. Since Oracle uses these link names as unique identifiers, this
keeps everything straight. Serious problems can result in a distributed environment where
There are two database links named the same thing but pointing to different instances.

Setting the parameter is essential in Streams, Advanced Replication, and Updatable Mview
Replication; setting it for read-only mview replication is recommended but not as critical.


The Following Excerpts from Oracle Manual points that GLOBAL_NAMES parameter must be set to true at each data base that is participating in your Streams environment.

If its not set to TRUE you will risk your Streams replication functionality down the road.

From Streams concepts Manual:

Specifies whether a database link is required to have the same name as the database to
which it connects.

To use Streams to share information between databases, set this parameter to true at each database that is participating in your Streams en

From Streams replication admin guide Manual:

GLOBAL_NAMES: This parameter must be set to true at each database that is participating in your Streams environment. The GLOBAL_NAMES initialization parameter must also be set to TRUE to guarante
e that database link names match the global name of each destination database.
from the same manual ... DB Global_Name is very essential for Streams replica
tion , data propagation and rules evaluation, so it is mandatory to set it to Tr
ue or you will risk your Streams replication functionality down the road.

22-MAY-08 16:20:57 GMT Email Update button has been pressed: Sending email to

22-MAY-08 18:08:03 GMT New info :
This pretty much confirms my doubt that the only purpose of setting this parameter to TRUE is to "force" the database links to ha ve the same names as the databases that they connect to.

22-MAY-08 19:48:21 GMT UPDATE

Yes. Please let me know if any more questions on this.


-----Original Message-----
From: []

Sent: Saturday, May 24, 2008 2:32 AM
To: Hameed, Amir; 'ORACLE-L'
Subject: RE: GLOBAL_NAMES parameter for streams

I wasn't aware of the requirement that this has to be true. I am running streams or testing it with it false but with the db links matching the target database's global name. I cannot set global_names to true as there are other links in the database that do not conform.

If the duty manager stated that, then I would ask for a metalink or Oracle Documentation reference that states that (I would be interested in your discovery as well). BTW, in my case the set up works just fine, which I guess is not the point of this email.


-----Original Message-----
On Behalf Of Hameed, Amir
Sent: Thursday, May 22, 2008 9:08 AM
Subject: GLOBAL_NAMES parameter for streams

Is it absolutely necessary to set the GLOBAL_NAMES parameter to TRUE for databases that participate in streams? If I set this parameter to FALSE but make sure that the db links are always named after the target database name, would there be any issue with this approach? I just spoke with Oracle and their duty manager told me that it may work fine but that it would not be supported, an argument that I am a little hesitant to buy.

This is kina urgent, so I would really appreciate a quick response.



Received on Tue May 27 2008 - 11:40:52 CDT

Original text of this message