Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: truncating snapshots
Shailesh,
Thanks. My thoughts on #2 are that if the snapshot refresh and the delete
from the master log comprise a single transaction (2 phase commit), then I
shouldn't have a problem. A full refresh might be necessary at some point,
but I could deal with that with some specific, infrequently used code. Of
course I still need to confirm that this is a single transaction. Not quite
sure how to do this. Maybe try a trace, or limit available space on snapshot
so inserts will error. I'll see what happens.
Henry
-----Original Message-----
Sent: Thursday, September 20, 2001 1:56 PM
To: Multiple recipients of list ORACLE-L
Henry,
I think Anita's concerns are valid however in my experience of doing the
refreshes like you plan to do I have not encountered the problem# 2. For
problem# 1 what we do here is check the table you are going to populate the
changes into for existance of that primary key. If found then update the
record with new values else insert into the table.
The real catch here would be the deletions. Try to get the deletes before
you do the refresh from the MLOG$xxx at the master site and then use those
primary keys to perform the deletion.
We have about 100 snapshots that are used to perform the aforementioned
task for over a year without any problems. Let me know if you have any
problem.
HTH,
Shailesh
-----Original Message-----
Sent: Tuesday, September 18, 2001 11:52 AM
To: Multiple recipients of list ORACLE-L
Henry,
OK, I think I see what you're trying to accomplish. By truncating the snapshot between refreshes, the refresh is essentially populating the snapshot with only the changed rows from the master site.
Probably not supported, but I can't see that it would cause any real problems. The way the refresh mechanism works, the missing rows on the snapshot site shouldn't be a problem.
I see a couple of potential problems, however.
It all depends on how critical the numbers are for the developers, because I can assure you it's only a matter of time before someone updates rows on a table that should only have inserts ;)
2. If a fast refresh fails this requires that the next refresh is a complete refresh, or the snapshot is recreated, so you will not have a way of getting just the set of changed rows. Your procedure will need to be able to detect this and perform the joins against the entire table again.
In the long run you're probably much better off developing your own trigger to populate another table or setting a flag, as you mentioned. Just because it works today doesn't mean that it will work in a newer release if they change the refresh mechanism.
HTH,
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: A. Bardeen INET: abardeen1_at_yahoo.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Yadav, Shailesh INET: NDASY3_at_labor.state.ny.us Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Henry Poras INET: Henry.Poras_at_ctp.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Thu Sep 20 2001 - 12:26:33 CDT