Wednesday 13 February 2008

Creating Oracle Database Link

Oracle has invested heavily in distributed database technology and the creation of a database link is very straightforward. You specify the database link name, the remote user to connect to, the password for the remote user and the TNS service name for the database link connection:

create public database link
mylink
connect to
remote_username
identified by
mypassword
using 'tns_name';


You can also create a database link to non-Oracle databases, here are steps for a database link to MySQL:

  1. Your first step is having installed the TRANSPARENT GATEWAY (it comes in as of the options when you install Oracle).
  2. You must have a user in the SQL Server.
  3. In the directory \tg4msql\admin look for the file inittg4msql.ora and have the following options:
    HS_FDS_CONNECT_INFO="SERVER=name_server;DATABASE=name_db"
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=user_sqlserver
    HS_FDS_RECOVERY_PWD=pass_user_sqlserver
  4. Configure the listener and add the following
    (SID_DESC =
    (PROGRAM = tg4msql)
    (SID_NAME = MSQL)
    (ORACLE_HOME = C:\oracle1)
    )
    )

    and on tnsnames.ora add the following
    MSQL=
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = servidor)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SID = MSQL)
    )
    (HS=OK)
    )

    where HS set up as a heterogonous service
  5. Create a link to sql server.
    create database link msql connect to user_sqlserver identified by password using 'MSQL';
  6. You can now use the database link to a foreign database:
    select * from table@msql