Re: snapshot refresh errors

From: Contractor - Yuk Hon <jychan_at_corp.hp.com>
Date: 1995/07/14
Message-ID: <3u4gjv$iok_at_hpcc48.corp.hp.com>#1/1


Chuck Hamilton (chuckh_at_ix.netcom.com) wrote:
: I'm having trouble doing a fast refresh on snapshots. It worked fine
: until I defragmented the master database by exporting the user that
: contained the master tables and snapshot logs, dropping that user (with
: cascade option), recreating the user, and importing him. Now when I try
: to do a fast refresh I get the following...
 

: ERROR at line 1:
: ORA-12004: REFRESH FAST cannot be used
: ORA-06512: at "SYS.DBMS_SNAPSHOT", line 248
: ORA-06512: at "SYS.DBMS_SNAPSHOT", line 131
: ORA-06512: at line 1
 

: What's the problem?

fast refreshes of read-only snapshots are implemented using rowid to identify which rows are have DML done on them and only push the delta's over.

by dropping and recreating the master table, you dropped it's snapshot log as well, and hence when you recreate it, it doesn't know that the table, though timestamped as recent is really the same table before the export. a similar problem would occur if you just truncated the table as well, since a re-import of a table cannot guarantee that the rowid's assigned will be identical the rowid's in the table's previous incarnation.

the bottom line is that you'll need to do a complete refresh or even better drop and recreate the snapshot slave table. You can also try tweaking with the snapshot log timestamps...it's totally unsupported and i would not recommend it unless you know what you are doing and have tested it few times.

Johnny Chan
Independent Oracle Specialist. Received on Fri Jul 14 1995 - 00:00:00 CEST

Original text of this message