Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle 8i Replication Question

Re: Oracle 8i Replication Question

From: Frank van Bortel <frank.van.bortel_at_gmail.com>
Date: Wed, 11 Jan 2006 21:35:00 +0100
Message-ID: <dq3pgc$6n0$1@news6.zwoll1.ov.home.nl>


Wally wrote:
> Hi All,
>
> I have two identical databases that have replication running between
> them.
>
> Let say I have a table
>
> scott.emp
> empno NUMBER
> ename VARCHAR2(10)
> job VARCHAR2(9)
> mgr NUMBER
> hiredate DATE
> sal NUMBER(10,2)
> comm NUMBER(9,0)
> deptno NUMBER(2)
>
> When I updated the "sal" column on one row let say where empno = 10 in
> the emp table in one instance and went to Oracle DBA Studio and look at
> the replication queues, it shows that there is a transaction on the
> scott.emp table. What I noticed was that in DBA Studio it shows the
> entire row of scott.emp where empno = 10 as it was before i made the
> change and as it is after i made the change.
>
> My question is,
>
> when this transaction replicates, are copies of the entire row before
> the change and after the change sent via replication to the other
> instance, or is just the primary key of the affected row sent along
> with the columns actually changed sent via replication to the other
> instance.
>
> The reason I ask this is, I have a small procedure that will update
> upto 5,000,000 records in a table where the the row size is not that
> small. I am worried that if these records are updated then that means
> that 10,000,000 records are being sent via replication (complete old
> record + complete new record) and this will slow down the system.
>
> Thank you all for your help.
>
> Wally
>

In that case, replicate the call, not the data. Look at I_AM_A_SNAPSHOT/AM_I_A_SNAPHOT functions. You can use that to trick your table in not writing to the snapshot log table.

You will have to write your own DML replication, though. Hint: use a new table with the ddl, and an update flag. Use dynamic sql (DBMS_SQL - execute immediate did not exist in 8i...) to execute.

-- 
Regards,
Frank van Bortel

Top-posting is one way to shut me up...
Received on Wed Jan 11 2006 - 14:35:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US