Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

What is the overhead of Supplemental Logging?

156101Jul 10 2006 — edited Jul 10 2006
We would like to copy data from a 600 GB Oracle database (9i) to a separate database for reporting. We want to use Data Guard in Logical Standby mode. The source database is heavily used and we can't afford a significant increase in system load (e.g. I/O activity) on that system.

To set up a Logical Standby, we need to put the JD Edwards database into Supplemental Logging mode. I am concerned that this will noticibly increase the load on the source server.

Has anyone analyzed the additional overhead of Supplemental Logging?

I have done some testing using Oracle 10.2 (Oracle XE on my computer) which indicates that when I turn on Supplemental Logging, the size of the archive logs grows by 40%. I have not yet tested this on our 9i database.

Thank you in advance for your help!

Best Regards,

Mike

=================================

The code below demonstrates the symptoms mentioned above:

RESULTS - size of archive logs generated:

- With Supplemental Logging: 120 MB
- Without: 80 MB

=================================

CREATE TABLE "EMP"
( "EMPLOYEE_ID" NUMBER(6,0),
"FIRST_NAME" VARCHAR2(20),
"LAST_NAME" VARCHAR2(25) NOT NULL ENABLE,
"EMAIL" VARCHAR2(25) NOT NULL ENABLE,
"PHONE_NUMBER" VARCHAR2(20),
"HIRE_DATE" DATE NOT NULL ENABLE,
"JOB_ID" VARCHAR2(10) NOT NULL ENABLE,
"SALARY" NUMBER(8,2),
"COMMISSION_PCT" NUMBER(2,2),
"MANAGER_ID" NUMBER(6,0),
"DEPARTMENT_ID" NUMBER(4,0)
)
/

alter table emp add CONSTRAINT "EMP_EMP_ID_PK" PRIMARY KEY ("EMPLOYEE_ID")
/

CREATE TABLE "STAT"
( "F1" NUMBER,
"ID" VARCHAR2(10)
)
/

/******************************************************
The "employee" table is from Oracle XE samples
The procedure below generates transactions to test archive log size.

To run, put the database in archive log mode. Then pop an archive log by executing
ALTER SYSTEM ARCHIVE LOG CURRENT;
To flip between running with Supplemental Logging, use one of:
ALTER DATABASE drop SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;
*******************************************************/
declare
i number;
begin
i := 0;
while i < 1000
loop
delete from emp;
insert into emp select * from employees;
update emp set COMMISSION_PCT = COMMISSION_PCT * .5;
update stat set f1 = i where id = 'UPD';
commit;
if i mod 1000 = 0 then
dbms_output.put_line(i);
end if;
i := i + 1;
end loop;
end;

/***********************************************/
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 7 2006
Added on Jul 10 2006
1 comment
1,615 views