Global database links

I am using global database links with Oracle Names. I have about a hundred databases ranging from 7.3.4 to soon to be 9i. Will OID support global database links in my environment? Is there any documentation dealing with global database links & OID.
Thank you for your help.
-SB

Hi Scott:
Yes OID will support your all of these database connection. The best document on this subject is the Oracle Networking Admin guide for 8.1.7. Chapter 6 gives you all the informaiton on how to set this up.
Thanks.
Jay
null

Similar Messages

  • How to use a Global database link

    i try to create a global database link through two databases MZFB et MZF14952.
    the MZFB database is installed under the machine MZFXPDESK
    the MZF14952 database is installed under another machine SUPPORT1
    i execute this code
    CREATE DATABASE LINK dbl_14952_5
    CONNECT TO BELGA_5          
    IDENTIFIED BY mypwd
    USING 'MZFB'
    select * from dba_db_links
    OWNER      DB_LINK      USERNAME      HOST      CREATED
    MZF14952     DBL_14952_5.CORP.MYCOMPANY.COM     BELGA_5          MZFB                    02/14/2007 14:17:21:000
    select * from global_name
    DBL_14952_1.CORP.MYCOMPANY.COM
    select * from [email protected]
    => ORA-02019: connection description for remote database not found

    zafadm,
    as Leonardo pointed out you should refer to the db link by it's name - '@dbl_14952_5'. The USING clause expects a full address or an alias that refer's to your tnsnames.ora file on the local server (SUPPORT1) where an entry would exist with that alias. You can bypass the tnsnames.ora file by supplying the full address in your create database link statement, ie;
    create database link dbl_14952_5
    connect to  BELGA_5
    identified by "password"
    using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host_ip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=MZFB)))';Update the statement with the ip of the remote (MZFXPDESK) server.

  • Creation of Database link and access the same plus Snapshot creation

    i want talk between two oracle server. i decided to go for snapshot creation with periodical refresh. For which i am having two oracle server's with different ip address located inside our office setup.
    I have created a database link between two servers.
    first server name global
    userid scott
    password tiger
    second server name asil
    userid scott
    password tiger
    both the user have been given dba rights.
    in both the server the services and listners are all started. i gave the following command to create database link.
    from asil server
    create public database link global connect by scott identified by tiger using 'global'
    the command was successful and the link was created. Now i tried to access a table of the scott user of the global server.
    select * from emp@global;
    now it is giving error. I want to know how the link can be created and how it can be accessed. i refered the 8i online documentation and done the things based on that. i expect valuble solution from all possible persons
    null

    A reason for this problem could be that your database is configured that a database link has to have exactly the same name like the global name of the database instance it should connect to.
    Can you please provide the oracle error code / message ? With this information there might be more hints I can give you.

  • How to Execute a Remote Procedure in Portal using Database Link

    Hi,
    I followed the instructions to create a Portal form for a remote procedure. But I am encountering the following error. Can someone advise what may be the cause?
    Failed to execute - Missing string(create_package_body) language(us) domain (wwv) sub_domain (wwv_builder) (WWV-04300)
    ORA-04020: deadlock detected while trying to lock object PUBLIC.PORTLET_SCHEMA (WWV-11230)
    Failed to parse as PORTAL - (WWV-08300)
    PURPOSE
    How to execute a remote procedure in Portal using Database Link.
    DESCRIPTION
    This procedure assumes that you have two databases, one of which is remote, and Portal is configured in the other.
    Remote Database A:
    ==================
    1) Create a procedure as follows: Create or Replace PROCEDURE SCOTT.ADD_TWO_VALUES ( v_one IN NUMBER, v_two IN NUMBER, v_result OUT NUMBER) as begin v_result :=v_one+v_two; end; 2) Grant execute privileges to PUBLIC on the procedure.
    Database B (where Portal is configured): ========================================
    1) Create a public database link and choose to connect as a specific user (say SYSTEM). By default, in an Oracle 8i database, the "global_names" parameter in initSID.ora (or init.ora) file is set to "true". This Global Naming parameter enforces that a dblink has the same name as the database it connects to. Therefore, if the remote global database (A) name is "ora8.acme.com" then the database link should also be named as "ora8.acme.com".
    2) Create a synonym for the procedure in Database A. Make sure you fully qualify the procedure name in the remote database (like SCOTT.ADD_TWO_VALUES).
    3) Create a dynamic page to execute the procedure. The ORACLE tags in the dynamic page will look similar to the following: <ORACLE> DECLARE v_total NUMBER; BEGIN ADD_TWO_VALUES(:v_one,:v_two, v_total); htp.p('The total is => '); htp.p('<input type="TEXT" VALUE='||v_total||'>'); htp.para; htp.anchor('http://<machine.domain:port#>/pls/portal30/SCOTT.DYN_ADD_TWO_VALUES.show_parms', 'Re-Execute Procedure'); END; </ORACLE>
    4) Portal does not have an option to create a form based on a synonym. Therefore, if you want to create a form instead of a dynamic page, create a wrapper procedure and then create a form based on this procedure. For example: Create or Replace PROCEDURE PORTAL30.ADD_TWO_VALUES_PR ( v_one IN NUMBER, v_two IN NUMBER, v_total OUT NUMBER) as begin add_two_values(v_one, v_two, v_total); end;
    5) Grant execute privileges to PUBLIC on the procedure.

    hello...
    any input will welcomed... Thanks..

  • Error using database link

    Before creating the link, I went into my init.ora file and made sure the GLOBAL_NAMES entry was false.
    I then created a database link using the following:
    create public database link cindy_link
    connect to system identified by syspswd
    using 'PRECISEI';
    My link was created, but when I attempt to use it, I get the error:
    ORA-02085:database link CINDY_LINK.WORLD connects to PRECISEI.WORLD
    Here is the entry from my tnsnames.ora file:
    PRECISEI =
    (DESCRIPTION =
    (ADDRESS_LINK =
    (ADDRESS =(PROTOCOL = TCP)(HOST = taurus)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = precisei.world)
    Here is the entry from my listener.ora file:
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = precisei.world)
    (ORACLE_HOME = E:|oracle\ora81)
    (SID_NAME = precisei)
    (I must admit to not having a full understanding of SID_NAME vs SERVICE_NAME.) I looked in dba_db_links, and my db_link is named CINDY_LINK.WORLD instead of CINDY_LINK.
    Do I have a problem in one of my files?
    I would really appreciate any help.
    Thanks.

    Well, I was facing the same problem but corrected it later on. Let me describe the solution is little detail.
    You need to check few things before creating db link.
    1) db_name and db_domain in init.ora file
    2) global_name in listener.ora file
    3) service name in tnsnames.ora file.
    It seems to me that you have not specified the db_domain in init.ora file. And in that case, you need to follow these steps.
    I am considering here that you have database A on server X and database B on server Y.
    Go to the first server (server X).
    set the global name in init.ora file by following
    Global_name=true
    db_domain=usa.com
    Start and open the database.
    connect as system user.
    (if your oracle sid is orcl then)
    svrmgr30>alter database rename global_name
    to orcl.usa.com;
    this will set the global_name as specified in init.ora file. Here, your SID is orcl and db_domain is usa.com so global_name will be orcl.usa.com.
    svrmgr30>Select * from global_name;
    You get the answer like this.
    Orcl.usa.com
    Now, go to Listener.ora file and change global_name to the new name (orcl.usa.com)
    restart the listener.
    WE WILL SEE ABOUT THE CHANGES OF TNSNAMES.ORA LITTLE LATER.
    Now, go to second server(server Y) and perform the same operation as defined above. i.e. Specify the db_name, db_domain in init.ora file, execute "alter database.." command for setting global_name and edit listener.ora file for new global name.
    Once you do all these you need to create service on server 1 to connect to server 2 and on server2 to connect to server1.
    Go to server X.
    Open tnsnames.ora file and create an entry like this.
    P =
    (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = IP address of B)(Port= 1521)))
    (CONNECT_DATA = (SID = P))
    Here, P is global name of P ( at both the places).
    Now, go to server Y.
    Open tnsnames.ora file and create an entry like this.
    Q =
    (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = IP address of A)(Port= 1521)))
    (CONNECT_DATA = (SID = Q))
    Here, Q is global name of Q ( at both the places).
    you are all set now.
    Create database link between 2 servers now.
    Say these are all your settings..
    Server X is having database A with global_name orcl.usa.com and server Y is having database B with global_name orcl2.us.com
    Now go to server X and create db link to server Y
    Create public database link orcl2.us.com using 'orcl2.us.com'
    (Note. don't miss to create a service 'orcl2.us.com' in server X's tnsnames.ora file)
    And go to server Y and create db link there.
    Create public database link orcl.usa.com using 'orcl.usa.com'
    (Note. don't miss to create a service 'orcl.usa.com' in server Y's tnsnames.ora file)
    hope this helps,
    If this doesn't work, feel free to contact me.
    Kalpen
    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by cindy spearman ([email protected]):
    Before creating the link, I went into my init.ora file and made sure the GLOBAL_NAMES entry was false.
    I then created a database link using the following:
    create public database link cindy_link
    connect to system identified by syspswd
    using 'PRECISEI';
    My link was created, but when I attempt to use it, I get the error:
    ORA-02085:database link CINDY_LINK.WORLD connects to PRECISEI.WORLD
    Here is the entry from my tnsnames.ora file:
    PRECISEI =
    (DESCRIPTION =
    (ADDRESS_LINK =
    (ADDRESS =(PROTOCOL = TCP)(HOST = taurus)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = precisei.world)
    Here is the entry from my listener.ora file:
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = precisei.world)
    (ORACLE_HOME = E:|oracle\ora81)
    (SID_NAME = precisei)
    (I must admit to not having a full understanding of SID_NAME vs SERVICE_NAME.) I looked in dba_db_links, and my db_link is named CINDY_LINK.WORLD instead of CINDY_LINK.
    Do I have a problem in one of my files?
    I would really appreciate any help.
    Thanks.<HR></BLOCKQUOTE>
    null

  • Database link to SQL Server Init error

    Hi all,
    i´m tryng to create a dblink between Oracle 10.2.0 in a RHEL4 and a SQL Server.
    I can connect using isql but when i try using sqlplus i obtain this error:
    SQL> CREATE DATABASE LINK dbl
    CONNECT TO "user"
    IDENTIFIED BY "pwd"
    USING 'hsodbc'; 2 3 4
    Enlace con la base de datos creado.
    SQL> SELECT * FROM Table_1@dbl;
    SELECT * FROM Table_1@dbl
    ERROR en línea 1:
    ORA-28545: error diagnosticado por Net8 al conectar a un agente (error in Net8 while connecting an agent)
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: 2 lines precediendo a DBL
    This is the error explanantion in Oracle Docs:
    I think the problem is the ini file inithsodbc.ora.
    inithsodbc.ora
    # This is a sample agent init file that contains the HS parameters that are
    # needed for an ODBC Agent.
    # HS init parameters
    # AAB - Parametros para asociar un agente ODBC al HS
    HS_FDS_CONNECT_INFO = MSQLS
    HS_FDS_TRACE_LEVEL = ON
    HS_FDS_SHAREABLE_NAME =/usr/local/freetds/lib/libtdsodbc.so
    HS_AUTOREGISTER = true
    # ODBC specific environment variables
    set ODBCINI=/home/oracle/.odbc.ini
    listener.ora
    # listener.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = STA2)
    (ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)
         (SID_DESC = (SID_NAME=hsodbc)
    (ORACLE_HOME=/app/oracle/oracle/product/10.2.0/db_1)
    (PROGRAM=hsodbc)
                             (ENVS=LD_LIBRARY_PATH=/app/oracle/oracle/product/10.2.0/db_1/lib:/usr/local/lib)
    LISTENER =
         (DESCRIPTION =
         (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr2.hi.inet)(PORT = 1521))
    tnsnames.ora
    # tnsnames.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    DEVSTA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr.hi.inet)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = devSTA)
    STA2 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr2.hi.inet)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = STA2)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    STA =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = nemesisgr2.hi.inet)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = STA)
    #AAB - Descripcion de servicio para conectar con SQLServer
    HSODBC = (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)
    (HOST=nemesisgr2.hi.inet)
    (PORT=1521)
    (CONNECT_DATA = (SID=hsodbc)
    (HS = OK)
    ODBC Files
    odbc.ini
    [ODBC Data Sources]
    MSQLS = Microsoft SQL Server
    [MSQLS]
    Driver = /usr/local/freetds/lib/libtdsodbc.so
    Description = Microsoft SQL Server
    Trace = No
    Servername = sqlserver
    Database = master
    [Default]
    Driver = /usr/local/freetds/lib/libtdsodbc.so
    odbcinst.ini
    [PostgreSQL]
    Description          = ODBC for PostgreSQL
    Driver          = /usr/lib/libodbcpsql.so
    Setup          = /usr/lib/libodbcpsqlS.so
    FileUsage          = 1
    [MSQLSDRIVER]
    Description          = Driver for MS SQL Server
    Driver          = /usr/local/freetds/lib/libtdsodbc.so
    Setup          = /usr/lib64/libtdsS.so
    FileUsage          = 1
    UsageCount          = 5
    freetds.conf
    # $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
    # This file is installed by FreeTDS if no file by the same
    # name is found in the installation directory.
    # For information about the layout of this file and its settings,
    # see the freetds.conf manpage "man freetds.conf".
    # Global settings are overridden by those in a database
    # server specific section
    [global]
    # TDS protocol version
    ;     tds version = 4.2
         # Whether to write a TDSDUMP file for diagnostic purposes
         # (setting this to /tmp is insecure on a multi-user system)
    ;     dump file = /tmp/freetds.log
    ;     debug flags = 0xffff
         # Command and connection timeouts
    ;     timeout = 10
    ;     connect timeout = 10
         # If you get out-of-memory errors, it may mean that your client
         # is trying to allocate a huge buffer for a TEXT field.
         # Try setting 'text size' to a more reasonable limit
         text size = 64512
    # A typical Sybase server
    [egServer50]
         host = symachine.domain.com
         port = 5000
         tds version = 5.0
    # A typical Microsoft server
    [egServer70]
         host = ntmachine.domain.com
         port = 1433
         tds version = 7.0
    # Test MS SQl Server
    [sqlserver]
         Database = master
         host = pruebas.hi.inet
         port = 1433
         tds version = 7.0
    Any ideas??
    Thanks in advance.
    Alex

    I have changed the inithsodbc.ora file including:
    HS_FDS_SHAREABLE_NAME =/usr/lib/libodbc.so (I have ODBC installed)
    Here you are the other information:
    lsnrctl status
    LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 23-OCT-2008 09:29:52
    Copyright (c) 1991, 2005, Oracle. All rights reserved.
    Bienvenido a LSNRCTL, escriba "help" para obtener información.
    LSNRCTL> status
    Conectándose a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=nemesisgr2.hi.inet)(PORT=1521)))
    ESTADO del LISTENER
    Alias LISTENER
    Versión TNSLSNR for Linux: Version 10.2.0.1.0 - Production
    Fecha de Inicio 22-OCT-2008 19:31:34
    Tiempo Actividad 0 días 13 hr. 58 min. 29 seg.
    Nivel de Rastreo off
    Seguridad ON: Local OS Authentication
    SNMP OFF
    Parámetros del Listener /app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
    Log del Listener /app/oracle/oracle/product/10.2.0/db_1/network/log/listener.log
    Recibiendo Resumen de Puntos Finales...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nemesisgr2)(PORT=1521)))
    Resumen de Servicios...
    El servicio "STA" tiene 1 instancia(s).
    La instancia "STA", con estado READY, tiene 1 manejador(es) para este servicio...
    El servicio "STA2" tiene 2 instancia(s).
    La instancia "STA2", con estado UNKNOWN, tiene 1 manejador(es) para este servicio...
    La instancia "STA2", con estado READY, tiene 1 manejador(es) para este servicio...
    El servicio "STA2XDB" tiene 1 instancia(s).
    La instancia "STA2", con estado READY, tiene 1 manejador(es) para este servicio...
    El servicio "STA2_XPT" tiene 1 instancia(s).
    La instancia "STA2", con estado READY, tiene 1 manejador(es) para este servicio...
    El servicio "STAXDB" tiene 1 instancia(s).
    La instancia "STA", con estado READY, tiene 1 manejador(es) para este servicio...
    El servicio "STA_XPT" tiene 1 instancia(s).
    La instancia "STA", con estado READY, tiene 1 manejador(es) para este servicio...
    El servicio "hsodbc" tiene 1 instancia(s).
    La instancia "hsodbc", con estado UNKNOWN, tiene 1 manejador(es) para este servicio...
    El comando ha terminado correctamente
    LSNRCTL>
    hsodbc
    There is no output executing this command.
    [oracle@nemesisgr2 ~]$ /app/oracle/oracle/product/10.2.0/db_1/bin/hsodbc
    [oracle@nemesisgr2 ~]$
    tnsping hsodbc
    [oracle@nemesisgr2 ~]$ tnsping hsodbc
    TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 23-OCT-2008 09:35:58
    Copyright (c) 1997, 2005, Oracle. All rights reserved.
    Archivos de parámetros utilizados:
    /app/oracle/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
    Adaptador TNSNAMES utilizado para resolver el alias
    Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp) (HOST=nemesisgr2.hi.inet) (PORT=1521)) (CONNECT_DATA = (SID=hsodbc)) (HS = OK))
    Realizado correctamente (40 mseg)
    Rgds,
    Alex

  • Database Link Creation and Acessing

    i want to talk between two oracle server. i decided to go for snapshot creation with periodical refresh. For which i am having two oracle server's with different ip address located inside our office setup.
    I have created a database link between two servers.
    first server name global
    userid scott
    password tiger
    second server name asil
    userid scott
    password tiger
    both the user have been given dba rights.
    in both the server the services and listners are all started. i gave the following command to create database link.
    from asil server
    create public database link global connect by scott identified by tiger using 'global'
    the command was successful and the link was created. Now i tried to access a table of the scott user of the global server.
    select * from emp@global;
    now it is giving error. I want to know how the link can be created and how it can be accessed. i refered the 8i online documentation and done the things based on that. i expect valuble solution from all possible persons
    null

    See link http://kr.forums.oracle.com/forums/thread.jspa?threadID=221081
    Hope this helps solve your issue.
    thanks
    http://swervedba.wordpress.com/

  • Database link with current_user

    I'm logged on database EMSDB.D710.DE and created a database link to EMSDB.D999.DE with current_user(...same user, same credentials I'm logged in). When I tried to use that created link I get the errorcode:"ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt". What I don't understand is, why I can connect to EMSDB.D999.DE --- but not access to the same database with a database link???
    SELECT     'EMSDB.D999.DE'               REMOTE_DB   --NAME OF DATABASE 
    FROM DUAL;
    VARIABLE VAR_REMOTE_DB VARCHAR2(15);
    BEGIN
        :VAR_REMOTE_DB := '&REMOTE_DB';
    END;
    SELECT  :VAR_REMOTE_DB                REMOTE_DB    
    FROM DUAL;
    CREATE DATABASE LINK &REMOTE_DB CONNECT TO CURRENT_USER USING '&REMOTE_DB' ;
    SELECT TABLE_NAME FROM ALL_TABLES@&REMOTE_DB;output
    SQL> @test
    REMOTE_DB
    EMSDB.D999.DE
    REMOTE_DB
    EMSDB.D999.DE
    SELECT TABLE_NAME FROM [email protected]
    FEHLER in Zeile 1:
    ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
    SQL>Edited by: user5116754 on 22.02.2011 04:33

    user5116754 wrote:
    Thank you, John...but should it be possible for me to create this database link then???
    As I said, if you are not a global user according to Oracle, you would need to create a database link supplying the username and password of the user at the remote database that you want to use. Something like:
    CREATE DATABASE LINK EMSDB.D999.DE
    CONNECT TO username IDENTIFIED BY password
    USING 'EMSDB.D999.DE';
    How to spy out, what kind of user (GLOBAL...) I am?Log into the local database and do:
    SELECT external_name
    FROM user_uses;If that return null, then you are not a global user, if it returns a value, you are a global user in that database. Log into the remote database (whatever is identified by emsdb.d999.de) and do the same thing. If the external names on both databases are not null and have the same value, then you are a global user on both databases, and the current_user should work, otherwise you are ethe not a global user on one or both databases, or you are a different global user on the two databases.
    John

  • Database link in forms is different that actual database name

    I am using a database link in Oracle Forms 6i, however, the database link name for the referenced database is not the same as the actual databse service/instance name.
    It does not work, and I suppose its something to do with the global names feature which is true in the source database it is in a replication group.
    I would like to know whether the dblink name which I am using in oracle forms, does it have to have the same name as an entry in the tnsnames.ora file, or can be substituted thgrough any so-calld alias from within oracle forms?
    Windows 2k Ad svr, Oracle Forms 6i, DB 9.2.0.1

    I recently upgraded my development environment from Forms 10.1.2.0.2 to Forms 10.1.2.3 and am experiencing the same problem -- not able to COMPILE a form that references a database link. The error is: "Error 352 at line 99, column 3 Unable to access another database 'LINKNAME'". This occurs on an UPDATE statement within PL/SQL code in a form trigger that used to compile and work fine.
    I tried the database link in SQL Plus and the link is working fine.
    Database environment is 10g 10.2.0.3 on Windows Server 2003.
    Is anyone able to do this?

  • Help with a database link?

    Hiya
    In our environment we have two servers for live and two for test. LIVE01 has db links to all other servers and they all work fine. I cannot get the db links up on test and I'm not sure why..
    Both systems have global_names set FALSE so i can name the link anything I want. Both systems have identical TNSNAMES files and no SQLNET.ORA
    The test systems have database names that do not have a suffice (it's the only significant difference I can find)
    LIVE01 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = LIVE01.MYDOMAIN.COM)
    LIVE02 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = LIVE02.MYDOMAIN.COM)
    TEST01 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.2)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = TEST01)
    TEST02 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.2)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = TEST02)
      )I've connected via RDP to each server, and I can tnsping and sqlplus user/pass@tnsname successfully on both servers, to all instances
    The command I use in sqlplus to create the link on LIVE01:
    CREATE PUBLIC DATABASE LINK live2dblink CONNECT TO user IDENTIFIED BY pass USING 'LIVE02';
    CREATE PUBLIC DATABASE LINK test1dblink CONNECT TO user IDENTIFIED BY pass USING 'TEST01';
    CREATE PUBLIC DATABASE LINK test2dblink CONNECT TO user IDENTIFIED BY pass USING 'TEST02';
    SELECT * FROM ALL_DB_LINKS
    PUBLIC     live2dblink.DOMAIN.COM     USER     LIVE02     2011-04-10 01:26:23
    PUBLIC     test1dblink.DOMAIN.COM     USER     TEST01     2011-04-10 01:26:23
    PUBLIC     test2dblink.DOMAIN.COM     USER     TEST02     2011-04-10 01:26:23SELECT * FROM DUAL@test2dblink ;
    DUMMY
    XBut if I repeat the relevant parts of the setup on test01 to link to the other 3 databases:
    CREATE PUBLIC DATABASE LINK live1dblink CONNECT TO user IDENTIFIED BY pass USING 'LIVE01';
    CREATE PUBLIC DATABASE LINK live2dblink CONNECT TO user IDENTIFIED BY pass USING 'LIVE02';
    CREATE PUBLIC DATABASE LINK test2dblink CONNECT TO user IDENTIFIED BY pass USING 'TEST02';
    SELECT * FROM ALL_DB_LINKS
    PUBLIC     live1dblink.DOMAIN.COM     USER     LIVE01     2011-04-10 01:26:23
    PUBLIC     live2dblink .DOMAIN.COM     USER     LIVE02     2011-04-10 01:26:23
    PUBLIC     test2dblink.DOMAIN.COM     USER     TEST02     2011-04-10 01:26:23SELECT * FROM dual@test2dblink
    error: "tns could not resolve service name"
    I've run out of other things to check - it's not the "global names must match" issue because that's set false and verified with
    SELECT name, value
    FROM gv$parameter
    WHERE (name LIKE '%link%')
    OR (name IN ('global_names', 'dblink_encrypt_login'));
    Yep, it's false..
    I've seen other errors during my fiddling with various parameters, including "end of file on communication channel" when select * from dual@db_link.. as though the test instance kicked the connection from live but for the past half hour, this "cannot resolve" has been the persistent one..

    Try using the full connect string in the database link like this:
    CREATE PUBLIC DATABASE LINK test2dblink CONNECT TO user IDENTIFIED BY pass
    USING '(description=(address=(protocol=tcp)(port=1521)(host=10.0.0.2))(connect_data=(sid=TEST02)))';

  • Database Link name altered automatically

    Hi everybody,
    I'm facing here some strange behavior when I'm trying to create a database link. Here's the statement for creating the database link:
    CREATE DATABASE LINK "DEVELOP" CONNECT TO "XXX" IDENTIFIED BY XXX USING 'develop';
    After starting Oracle's SQL Developer it turns out that the link is successfully created.
    BUT it's not named 'DEVELOP' as expected! Instead the link is named 'DEVELOP.100.10.82.181'
    This leads to problems with a DataPump-Job because of an "invalid argument" (I suppose in this case the wrong link name)
    How can I avoid this behavior? Or is it possible to alter the name? So far I did not found a solution or comprehendible explanation.
    Any help will be highly appreciated.
    Kind regards
    Alex

    Robert Geier wrote:
    Database version ?
    select db_link from dba_db_links;
    Try removing some of the quotes.@Robert: removing the quotes did not solve the problem.
    Operating System: Mac OS X 10.5.8
    SQL> SELECT * from v$version;
    BANNER
    Oracle Database 10g Release 10.2.0.4.0 - Production
    PL/SQL Release 10.2.0.4.0 - Production
    CORE 10.2.0.4.0 Production
    TNS for MacOS X Server: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
    SQL> select db_link from dba_db_links;
    DB_LINK
    DEVELOP.100.10.82.181
    SQL> SELECT * FROM GLOBAL_NAME;
    GLOBAL_NAME
    CORPUS.100.10.82.181
    SQL> SHOW PARAMETER global;
    NAME TYPE VALUE
    global_context_pool_size string
    global_names boolean FALSE
    Thanks again
    Edited by: user9253174 on 03.03.2010 01:41

  • ORA-02020: too many database links in use ; but OK with where clause...

    Hello all,
    I have a view called V_MEDGEN_LISTRADIO but I can't run
    SELECT * FROM V_MEDGEN_LISTRADIO
    ORA-02020: too many database links in useThe cause is that we call in the view 5 tables over dblink and the open_links parameter is set to 4.
    What is strange is that when I run this select by adding a where clause then it works!
    SELECT * FROM V_MEDGEN_LISTRADIO WHERE SPRR = 3645;Can someone explain me ? (use of index so all tables are not called ???)
    Thanks

    Explain plan for SELECT * FROM V_MEDGEN_LISTRADIO WHERE SPRR = 3645;
    | Id  | Operation                              | Name            | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop | Inst   |IN-OUT|
    |   0 | SELECT STATEMENT                       |                 |     1 |   244 |    19   (6)| 00:00:01 |       |       |        |      |
    |   1 |  SORT ORDER BY                         |                 |     1 |   244 |    19   (6)| 00:00:01 |       |       |        |      |
    |   2 |   NESTED LOOPS                         |                 |     1 |   244 |    18   (0)| 00:00:01 |       |       |        |      |
    |   3 |    NESTED LOOPS                        |                 |     1 |   218 |    17   (0)| 00:00:01 |       |       |        |      |
    |   4 |     NESTED LOOPS                       |                 |     1 |   188 |    15   (0)| 00:00:01 |       |       |        |      |
    |   5 |      NESTED LOOPS                      |                 |     3 |   384 |    10   (0)| 00:00:01 |       |       |        |      |
    |   6 |       NESTED LOOPS                     |                 |     3 |   186 |     4   (0)| 00:00:01 |       |       |        |      |
    |   7 |        REMOTE                          | SPRR            |     1 |    20 |     2   (0)| 00:00:01 |       |       | DEV10~ | R->S |
    |   8 |        REMOTE                          | MPAT_MF         |     3 |   126 |     2   (0)| 00:00:01 |       |       | DEV10~ | R->S |
    |   9 |       REMOTE                           | SPER_P          |     1 |    66 |     2   (0)| 00:00:01 |       |       | ORAP_~ | R->S |
    |* 10 |      TABLE ACCESS BY GLOBAL INDEX ROWID| DOSSIER_MEDICAL |     1 |    60 |     3   (0)| 00:00:01 | ROWID | ROWID |        |      |
    |* 11 |       INDEX RANGE SCAN                 | DOSMED_MPR_IDX2 |     2 |       |     1   (0)| 00:00:01 |       |       |        |      |
    |  12 |     REMOTE                             | MEP             |     1 |    30 |     2   (0)| 00:00:01 |       |       | ORAP_~ | R->S |
    |  13 |    REMOTE                              | SSV             |     1 |    26 |     1   (0)| 00:00:01 |       |       | ORAP_~ | R->S |
    Predicate Information (identified by operation id):
      10 - filter("DM"."EXAM_TYPE"='TELEM')
      11 - access("DM"."MPR"="P"."SPER")
    Remote SQL Information (identified by operation id):
       7 - SELECT "SPRR","MNEMO" FROM "SPRR" "MP" WHERE "SPRR"=3645 (accessing 'DEV10_DBLK' )
       8 - SELECT "SPAT","DU","RMPB","SPRR_MF","AU" FROM "MPAT_MF" "MF" WHERE "SPRR_MF"=3645 AND NVL("AU",:1+1)>=:2 AND
           "RMPB"='PRINC' AND "DU"<=:3 (accessing 'DEV10_DBLK' )
       9 - SELECT "SPER","NOM","PRENOM","DTE_NAI" FROM "SPER_P" "P" WHERE "SPER"=:1 (accessing 'ORAP_DBLK' )
      12 - SELECT "MSJ","MEPNO_SEQ","SSV_OU_PAT_SEJOURNE" FROM "MEP" "MEP" WHERE :1="MSJ" AND :2="MEPNO_SEQ" (accessing 'ORAP_DBLK' )
      13 - SELECT "SSV","LIB_1" FROM "SSV" "SSV" WHERE :1="SSV" (accessing 'ORAP_DBLK' )Explain plan for SELECT * FROM V_MEDGEN_LISTRADIO
    Plan hash value: 3820716840
    | Id  | Operation                                | Name                  | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop | Inst   |IN-OUT|
    |   0 | SELECT STATEMENT                         |                       |     7 |  1708 |   771   (1)| 00:00:10 |       |       |        |      |
    |   1 |  SORT ORDER BY                           |                       |     7 |  1708 |   771   (1)| 00:00:10 |       |       |        |      |
    |   2 |   NESTED LOOPS                           |                       |     7 |  1708 |   770   (1)| 00:00:10 |       |       |        |      |
    |   3 |    NESTED LOOPS                          |                       |     7 |  1568 |   763   (1)| 00:00:10 |       |       |        |      |
    |   4 |     NESTED LOOPS                         |                       |     7 |  1386 |   756   (1)| 00:00:10 |       |       |        |      |
    |   5 |      NESTED LOOPS                        |                       |     7 |  1176 |   742   (1)| 00:00:09 |       |       |        |      |
    |   6 |       NESTED LOOPS                       |                       |   194 | 24444 |   414   (1)| 00:00:05 |       |       |        |      |
    |   7 |        TABLE ACCESS BY GLOBAL INDEX ROWID| DOSSIER_MEDICAL       |   194 | 11640 |    23   (0)| 00:00:01 | ROWID | ROWID |        |      |
    |*  8 |         INDEX RANGE SCAN                 | DOSMED_EXAM_TYPE_IDX2 |   194 |       |     1   (0)| 00:00:01 |       |       |        |      |
    |   9 |        REMOTE                            | SPER_P                |     1 |    66 |     2   (0)| 00:00:01 |       |       | ORAP_~ | R->S |
    |  10 |       REMOTE                             | MPAT_MF               |     1 |    42 |     2   (0)| 00:00:01 |       |       | DEV10~ | R->S |
    |  11 |      REMOTE                              | MEP                   |     1 |    30 |     2   (0)| 00:00:01 |       |       | ORAP_~ | R->S |
    |  12 |     REMOTE                               | SSV                   |     1 |    26 |     1   (0)| 00:00:01 |       |       | ORAP_~ | R->S |
    |  13 |    REMOTE                                | SPRR                  |     1 |    20 |     1   (0)| 00:00:01 |       |       | DEV10~ | R->S |
    Predicate Information (identified by operation id):
       8 - access("DM"."EXAM_TYPE"='TELEM')
    Remote SQL Information (identified by operation id):
       9 - SELECT "SPER","NOM","PRENOM","DTE_NAI" FROM "SPER_P" "P" WHERE :1="SPER" (accessing 'ORAP_DBLK' )
      10 - SELECT "SPAT","DU","RMPB","SPRR_MF","AU" FROM "MPAT_MF" "MF" WHERE NVL("AU",:1+1)>=:2 AND "RMPB"='PRINC' AND "DU"<=:3 AND
            :4="SPAT" (accessing 'DEV10_DBLK' )
      11 - SELECT "MSJ","MEPNO_SEQ","SSV_OU_PAT_SEJOURNE" FROM "MEP" "MEP" WHERE :1="MSJ" AND :2="MEPNO_SEQ" (accessing 'ORAP_DBLK' )
      12 - SELECT "SSV","LIB_1" FROM "SSV" "SSV" WHERE :1="SSV" (accessing 'ORAP_DBLK' )
      13 - SELECT "SPRR","MNEMO" FROM "SPRR" "MP" WHERE :1="SPRR" (accessing 'DEV10_DBLK' )

  • What is Database Links in Oracle 10g ?

    Same as subject.
    Thanks.

    Hi,
    Database Links
    A database link is a pointer that defines a one-way communication path from an Oracle Database server to another database server. The link pointer is actually defined as an entry in a data dictionary table. To access the link, you must be connected to the local database that contains the data dictionary entry.
    A database link connection is one-way in the sense that a client connected to local database A can use a link stored in database A to access information in remote database B, but users connected to database B cannot use the same link to access data in database A. If local users on database B want to access data on database A, then they must define a link that is stored in the data dictionary of database B.
    A database link connection allows local users to access data on a remote database. For this connection to occur, each database in the distributed system must have a unique global database name in the network domain. The global database name uniquely identifies a database server in a distributed system.
    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14231/ds_concepts.htm#i1007709
    Adith

  • Changing database links in query's

    I'm currently using query's with a syntax like 'select * from table@dblink'. Works fine, however the dblink (DWHD1) should at some time in the future be changed so it points at the production instead of the development server (DWHD1 should become DWHP1). This could mean changing numerous queries by hand after importing in the production server.
    I would rather like that this could be accomplished by changing a configuration item or something like that. Is there an easy way to accomplish this in APEX 3.0 by using a 'global variable' or..?
    regards
    Martin
    Message was edited by:
    mjb001

    This can be done only if you create dynamic queries. A better way to solve this is not to
    include any database links in your reports. Use Views and point them to a database.
    Denes Kubicek

  • Database Link for Entire DB

    Hi Friends,
    I can create database link from DEV instance to PROD instance using:
    ===
    create database link db_link1 connect to HR identified by HR using 'prod';
    ===
    Question 1
    My problem is that when HR changes it password my link gets disabled.
    Is there a solution for this?
    Question 2
    How do I create a database link that is global from DEV to PROD.
    What I mean is, I can access all tables of any schema from DEV to PROD.
    Is this possible?
    Thanks you very much in advance.

    You shouldn't be creating a database link connecting to the 'HR' account itself. That is dangerous.
    On PROD, create a shadow account -- eg called "QUERY_HR_FROM_DEV". Then GRANT SELECT on all HR tables to QUERY_HR_FROM_DEV.
    In DEV, create your Database Link as "CREATE DATABASE LINK HR_PROD CONNECT TO QUERY_HR_FROM_DEV IDENTIFIED BY password using 'PROD' "
    Question 2 is a worse idea.
    You want any schema in DEV to be able to update any schema in PROD.

Maybe you are looking for