Are you sure that the refresh process isn't erroring out (in which case the error would be written to the alert log)?
Are you doing complete refreshes? Or incremental refreshes? Are you doing atomic refreshes? Or non-atomic refreshes? My guess is that you are doing a complete, non-atomic refresh (which, behind the scenes, means that you are doing a TRUNCATE
and direct-path INSERT
) where the TRUNCATE
succeeds but the direct-path INSERT
fails. You could do a complete, atomic refresh instead which would be doing a DELETE
and INSERT
. This will, however, be slower than a non-atomic refresh when the remote database is available and it will generate more REDO
. Or, potentially, you could do an incremental refresh instead but that would, at a minimum, require that materialized view logs are created on the remote database.