I had two instances set up on a Sun 450 server, with one as the master and one as the snapshot database. They were set up as follows.
DB1 - master DB2 - snapshot db_name = db1 db_name = db2 db_domain = te.com db_domain = te.com instance_name = db1 instance_name = db2 service_names = db1.te.com service_names = db2.te.com global_names = TRUE global_names = TRUEI was able to set up replication, using refresh groups and all was working fine. When I created a database link, I would check with
SELECT * FROM dba_db_linksand find the DB_LINK column was link_name.te.com. This was true in both instances and communication worked both ways.
We got a second Sun 450, so I re-created DB1 on that server, all parameters the same. When I went to reset replication, everytime I made a database link, the DB_LINK comes in as link_name.world. There is no sqlnet.ora file in use. The listener.ora file is very plain and tnsnames.ora has entries of the form;
DB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = ds2.matchlogic.com) (PORT = 1521) ) (CONNECT_DATA = (SID = whsp) ) )What is causing the database links to be created differently and stopping my replication?
The difference lies in your DB_DOMAIN parameter. It defauls to ".world". You will want to make sure that this is set correctly for your environment.
For More Information
- Dozens more answers to tough Oracle questions from Brian Peasland are available.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle or SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical Oracle and SQL questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.