Oracle 10G - Broken Views and Refresh
От: DmitryMS  
Дата: 22.07.13 12:18
Оценка:
Oracle 10G

Есть несколько materialized views, которые строятся на основе данных из внешнех базы данных получемых через dblink. Представления рефрешаться каждое утро, в какой то день внешняя база данных была недоступна, все представления с того дня отображаются с карасным кружком (используем Sql Developer). Oбновление для этих представлений не работало до тех пор, пока они не были пересозданы (drop materialized view/ create materialized view). Рефреш заработал но странно, конструкция, которaя раньше работала —

DBMS_SNAPSHOT.REFRESH(
LIST => 'OWNER.MV_NAME'
,PUSH_DEFERRED_RPC => TRUE
,REFRESH_AFTER_ERRORS => FALSE
,PURGE_OPTION => 1
,PARALLELISM => 0
,ATOMIC_REFRESH => TRUE
,NESTED => FALSE);

отваливаетвается с ошибкой:

*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_SNAPSHOT_UTL", line 350
ORA-06512: at "SYS.DBMS_SNAPSHOT_UTL", line 432
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2255
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2461
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2430
ORA-06512: at line 1

хотя вариант без именованый парамтеров
DBMS_SNAPSHOT.REFRESH('OWNER.MV_NAME');

работает.

Кто может объяснить произошедшее? Интересует:

1. На основе чего materialized view выставляется красный кружок несмотря на возможность выборки данных из view?
2. Связан ли красный кружок с DBMS_SNAPSHOT.REFRESH failure?
3. Является ли разовая перестройка представлений надежным фиксом или рефреш начал работать по независомой от этого причины?
Re: Oracle 10G - Broken Views and Refresh
От: wildwind Россия  
Дата: 25.07.13 17:49
Оценка:
Здравствуйте, DmitryMS, Вы писали:

DMS>DBMS_SNAPSHOT.REFRESH(

DMS> LIST => 'OWNER.MV_NAME'
DMS> ,PUSH_DEFERRED_RPC => TRUE
DMS> ,REFRESH_AFTER_ERRORS => FALSE
DMS> ,PURGE_OPTION => 1
DMS> ,PARALLELISM => 0
DMS> ,ATOMIC_REFRESH => TRUE
DMS> ,NESTED => FALSE);

Эти view — updateable?
Re: Oracle 10G - Broken Views and Refresh
От: wildwind Россия  
Дата: 25.07.13 18:00
Оценка:
Здравствуйте, DmitryMS, Вы писали:

DMS>1. На основе чего materialized view выставляется красный кружок несмотря на возможность выборки данных из view?


Могу предположить, что на основе ALL_MVIEWS.COMPILE_STATE

DMS>2. Связан ли красный кружок с DBMS_SNAPSHOT.REFRESH failure?


Да, скорее всего.

DMS>3. Является ли разовая перестройка представлений надежным фиксом или рефреш начал работать по независомой от этого причины?


Зависит от причины. В любом случае перестройка это какой-то жестокий фикс.
Re: Oracle 10G - Broken Views and Refresh
От: avpavlov  
Дата: 26.07.13 14:16
Оценка:
Есть подозрение, что какие-то таблицы или другие вью, на которые опирается твоё вью, изменились.

Почему работает рефреш без параметров — не понятно, по идее у него refresh_after_errors д.б. false, а он работает, как будто true

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_mview.htm#i997194

refresh_after_errors
If this parameter is true, an updatable materialized view continues to refresh even if there are outstanding conflicts logged in the DEFERROR view for the materialized view's master table or master materialized view. If this parameter is true and atomic_refresh is false, this procedure continues to refresh other materialized views if it fails while refreshing a materialized view.

Re[2]: Oracle 10G - Broken Views and Refresh
От: wildwind Россия  
Дата: 27.07.13 11:01
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>Почему работает рефреш без параметров — не понятно, по идее у него refresh_after_errors д.б. false, а он работает, как будто true


С чего ты взял?

A>http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_mview.htm#i997194


Релевантность цитаты IMHO 0%, или я чего-то не вижу?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.