MVIEW

check mviews status
set lines 300
set pages 100
select owner,MVIEW_NAME,STALENESS,COMPILE_STATE,UNKNOWN_IMPORT,REFRESH_MODE, REFRESH_METHOD,LAST_REFRESH_DATE from dba_mviews order by owner,MVIEW_NAME;
mviews not imported

if mviews not imported for any user (e.g. co_apps) then grant below privilege to user and start import of mviews only

grant CREATE MATERIALIZED VIEW to co_apps;
grant create table to co_apps;
impdp directory=ICP01ONL_DUMP dumpfile=expdp_TROY_oel6-node04_23jul2020_%U.dmp logfile=DATA_PUMP_DIR:mview_MV_INVCDR_REPORT.log include=materialized_view:"IN('MV_REPORT')"

Import: Release 11.2.0.3.0 - Production on Thu Jul 23 15:59:58 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Username: / as sysdba

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters and Automatic Storage Management options
Master table "SYS"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_FULL_01":  /******** AS SYSDBA directory=TROY_DUMP dumpfile=expdp_TROY_oel6-node04_23jul2020_%U.dmp logfile=DATA_PUMP_DIR:mview_MV_REPORT.log include=materialized_view:IN('MV_REPORT')
Processing object type DATABASE_EXPORT/SCHEMA/MATERIALIZED_VIEW
Job "SYS"."SYS_IMPORT_FULL_01" successfully completed at 16:00:11
do complete refresh
select 'execute dbms_mview.refresh('||''''||owner||'.'||MVIEW_NAME||''''||','||''''||'C'||''''||');' from dba_mviews ;
mview compile
select 'alter MATERIALIZED VIEW '||owner||'.'||MVIEW_NAME||' compile;' from dba_mviews ;
do fast refresh
select 'execute dbms_mview.refresh('||''''||owner||'.'||MVIEW_NAME||''''||','||''''||'F'||''''||');' from dba_mviews ;
mviews scheduler jobs status
set lines 300
set pages 1000
col JOB_NAME for a30
col OWNER for a10
col ADDITIONAL_INFO for a40
col LOG_DATE for a40
select OWNER,JOB_NAME,LOG_DATE,STATUS,ADDITIONAL_INFO,RUN_DURATION from DBA_SCHEDULER_JOB_RUN_DETAILS where JOB_NAME='MVIEW_REFRESH_JOB' order by LOG_DATE;
ORA-12034: materialized view log on younger than last refresh

run the job if prior execution were failing with this error

BEGIN
   dbms_scheduler.run_job('TROY.MVIEW_REFRESH_JOB');
END;
/
check oter jobs
set lines 300
col LAST_START_DATE for a40
col NEXT_RUN_DATE for a40
col JOB_ACTION for a40
select owner,state,JOB_ACTION,LAST_START_DATE, NEXT_RUN_DATE from DBA_SCHEDULER_JOBS WHERE JOB_NAME ='MVIEW_REFRESH_JOB';
mviews details
SET LONG 9999999 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON
select dbms_metadata.get_ddl('MATERIALIZED_VIEW','BS_TAB_MV','SYS') from dual;
mviews on prebuilt error
ORA-39083: Object type MATERIALIZED_VIEW failed to create with error:
ORA-32334: cannot create prebuilt materialized view on a table already referenced by a MV

find the child mviews and drop it then create parent mviews and then child mview

set lines 300
select  name, owner, master_owner, master 
from dba_snapshots where 
master ='NC_OMD_M_II_AV';

NAME                  OWNER                   MASTER_OWNER                   MASTER
--------------------- ----------------------- --------------------- ------------------------------
NC_OMD_MT_SP_AV       TROY_TRN_6800_KPI       TROY_TRN_6800_KPI      NC_OMD_M_II_AV

drop the child mview

alter session set current_schema=TROY_TRN_6800_KPI;
drop MATERIALIZED VIEW NC_OMD_MT_SP_AV;

import first the master mview and then child

impdp directory=PUMP_DIR dumpfile=expdp_TROY_oel6-node04_22jul2020_%U.dmp logfile=LOG_DIR:impdp_TROY_mview_NC_OMD_M_II_AV.log include=materialized_view:"IN('NC_OMD_M_II_AV')"
impdp directory=PUMP_DIR dumpfile=expdp_TROY_oel6-node04_22jul2020_%U.dmp logfile=LOG_DIR:impdp_TROY_mview_NC_OMD_M_II_AV.log include=materialized_view:"IN('NC_OMD_MT_SP_AV')"
import the refresh group
impdp directory=PUMP_DIR dumpfile=expdp_NCT01ORT_lonodc0702_22jul2020_%U.dmp logfile=LOG_DIR:refresh_group.log include=REFRESH_GROUP sqlfile=LOG_DIR:refresh_group.sql

open the sqlfile

cat refresh_group.sql
-- CONNECT SYS
ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';
-- new object type path: DATABASE_EXPORT/SCHEMA/REFRESH_GROUP
-- CONNECT COLTNC_TRN_6800
 BEGIN
dbms_refresh.make('"COLTNC_TRN_6800"."NRM_RG"',list=>null,next_date=>null,interval=>null,implicit_destroy=>FALSE,lax=>FALSE,job=>477,rollback_seg=>NULL,push_deferred_rpc=>FALSE,refresh_after_errors=>FALSE,purge_option => 0,parallelism => 0,heap_size => 0);
 END;
/

modify to below and remove remove job=>477

 

 cat refresh_group.sql
-- CONNECT SYS
ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';
-- new object type path: DATABASE_EXPORT/SCHEMA/REFRESH_GROUP
-- CONNECT COLTNC_TRN_6800
conn COLTNC_TRN_6800/COLTNC_TRN_6800
 BEGIN
dbms_refresh.make('"COLTNC_TRN_6800"."NRM_RG"',list=>null,next_date=>null,interval=>null,implicit_destroy=>FALSE,lax=>FALSE,rollback_seg=>NULL,push_deferred_rpc=>FALSE,refresh_after_errors=>FALSE,purge_option => 0,parallelism => 0,heap_size => 0);
 END;
/

now connect as refreshgroup owner and run the script

conn TROY_TRN_6800/TROY_TRN_6800
SQL> @refresh_group_mod.sql

Session altered.


Session altered.


Session altered.


Session altered.


Session altered.


Session altered.

Connected.

PL/SQL procedure successfully completed.

check status

SQL> select ROWNER,RNAME,JOB from dba_refresh;

ROWNER                         RNAME                                 JOB
------------------------------ ------------------------------ ----------
TROY_TRN_6800                NRM_RG                                  2