That’s Me

Gavin Soorma
  • Oracle Certified Professional
  • 7.3, 8i, 9i,10g, 11g
  • 11i Apps DBA OCP
  • 10g RAC OCE
  • Certified GoldenGate Implementation Specialist
  • 10g OCM
  • 11g OCM

  • Feedback

    1,650,000 hits

    Thanks A MILLION for your support!

    Please send me your valuable feedback and suggestions






    Using GoldenGate to replicate between databases on same host

    I have been asked this question quite a lot as to how do we set up GoldenGate when both the source and target database are physically located on the same server.

    I will answer this specific to Oracle as I have not tried it on other RDBMS’s – but I guess conceptually it should be the same.

    Basically all we have do is to set up TNS aliases to connect to the source and target databases and make sure that before we do launch GGSCI, we are able to connect to both source and target databases from say SQL*PLUS in the environment from where we are running the GoldenGate software via GGSCI.

    If both the source and target databases are Oracle, it would make more sense to perform the initial load using Oracle utilities like say Import/Export, Data Pump, SQL Loader etc because the performance of those utilities are far better as compared

    Continue reading Using GoldenGate to replicate between databases on same host

    Solving a 10g Bind Variable Peeking problem by granting and revoking privileges

    The Cost Based optimizer peeks at the values of user-defined bind variables on the first invocation of a cursor. Based on this, the optimizer determines the selectivity of the WHERE clause condition as if literals have been used instead of bind variables. On subsequent invocations of the cursor, no bind peeking takes place, and the cursor is shared even if subsequent invocations use different bind values.

    If the data is skewed in the table especially in the columns used in the WHERE clause, based on the first value ‘peeked’, the optimizer may make a wrong choice of a full table scan or index range scan when the opposite would have been more optimal for the execution of that particular SQL statement.

    To force a hard parse (by invalidating the cursor) so that the CBO does another fresh ‘peek’ at the bind variables chosen for a query (and so that a new execution

    Continue reading Solving a 10g Bind Variable Peeking problem by granting and revoking privileges

    Oracle GoldenGate - how to connect to a particular database if there are multiple databases on the source or target server

    I have been asked this question quite often in this forum regarding how do we connect to GoldenGate if there are a number of databases running on the source server or on the target server. Or there could be a case where we have installed GoldenGate for Oracle 10g and we have both 10g as well as 11g Oracle Homes on the same machine and we want to connect to the Oracle 10g environment in particular.

    Very valid question and a very simple answer for that.

    1) Either set the right environment using .oraenv
    or
    2) Specify the right TNS alias in the Manager, Extract or Replicat parameter file where we have used the USERID keyword

    For example, just to illustrate the same, I wrongly set the ORACLE_SID variable to a nonexistent value. The manager process will not start since it will try to connect with the username and password used in the manager

    Continue reading Oracle GoldenGate – how to connect to a particular database if there are multiple databases on the source or target server