Problema de mview depois de soltá -lo
-
26-09-2019 - |
Pergunta
eu,
Eu tenho uma visualização materializada em um servidor criado pelo link DB. Há um trabalho em execução nesse mview. (Craeta com dbms_refresh.make anteriormente).
Agora eu criei 3 novos campos na tabela original.
Havia um emprego em execução no MVIEW, deixei o trabalho de dbms_refresh.destroy. Em seguida, soltei o MVIEW (esqueci de soltar índices na exibição)
Agora, quando estou tentando criar o MVIEW com SQL que eu criei antes, ele está dando erro como:-
Erro começando na linha 1 no comando:
CREATE MATERIALIZED VIEW TTMU_LAVORAZIONE_TT
TABLESPACE "TTSTAT_DATA"
LOGGING
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
STORAGE
(
INITIAL 5M
NEXT 5M
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOCACHE NOPARALLEL BUILD IMMEDIATE
USING INDEX
REFRESH ON DEMAND FAST
WITH ROWID
DISABLE QUERY REWRITE AS
SELECT T288.C1,C2,C3,C4,C5,C6,C7,C8,C536870915,C536870916,C536870917,
C536870918,C536870919,C536870920,C536870921,C536870922,C536870927,
C536870928,C536870929,C536870930,C536870931,C536870932,C536870933,
C536870937,C536870939,C536870940,C536870941,C536870942,C536870945,
C536870951,C536870952,C536870953,C536870954,C536870955,C536870956,
C536870957,C536870959,C536870961,C536870962,C536870965,C536871100
FROM T288@STAT2TTM.WORLD
Erro na linha de comando: 1 coluna: 0 relatório de erro:
SQL Error: ORA-00600: internal error code, arguments: [17113], [0x000000000],
[], [], [], [], [], []
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s],
[%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. This indicates that a process has encountered an
exceptional condition.
*Action: Report as a bug - the first argument is the internal error number
Erro começando na linha 26 no comando:
CREATE UNIQUE INDEX I_SNAP$_TTMU_LAVORAZIONE_T
ON TTMU_LAVORAZIONE_TT (M_ROW$$ ASC)
TABLESPACE "TTSTAT_DATA"
LOGGING
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE
(
INITIAL 5M
NEXT 5M
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
Erro na linha de comando: 26 Coluna: 0 Relatório de erro: SQL Erro: conexão fechada
Solução
A ação é bem clara:
*Ação: Relatório como um bug - o primeiro argumento é o número de erro interno
Este é um erro interno. Siga as instruções da nota [ID 153788.1 Solucionar problemas de um erro ORA-600 ou ORA-7445 usando a ferramenta de pesquisa de erro sobre Site de suporte do Oracle.
Outras dicas
Você deve: - soltar o instantâneo/mview - solte o log de instantâneos na tabela mestre - crie um novo log de instantâneos na tabela mestre - recrie seu mview e simplifique sua instrução CREATE para o seguinte:
CREATE MATERIALIZED VIEW TTMU_LAVORAZIONE_TT
TABLESPACE "TTSTAT_DATA"
REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 5/1440
WITH ROWID
AS
SELECT T288.C1,C2,C3,C4,C5,C6,C7,C8,C536870915,C536870916,C536870917,
C536870918,C536870919,C536870920,C536870921,C536870922,C536870927,
C536870928,C536870929,C536870930,C536870931,C536870932,C536870933,
C536870937,C536870939,C536870940,C536870941,C536870942,C536870945,
C536870951,C536870952,C536870953,C536870954,C536870955,C536870956,
C536870957,C536870959,C536870961,C536870962,C536870965,C536871100
FROM T288@STAT2TTM.WORLD;
O acima adicionará uma atualização DBMS_JOB que leva a tabela atualizada a cada 5 minutos. Você pode alterá -lo para atender aos seus requisitos.
Depois de criar, você deve executar:
exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'C');
exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'F');
Eu deveria cuidar disso. Você precisará usar um método alternativo se a tabela for enorme. Não sei o tamanho, então estou assumindo que não é muito grande.
Verifique o log de alerta do banco de dados para obter pistas sobre o que pode estar acontecendo no seu banco de dados. Isso provavelmente apontará você em um ou mais arquivos de rastreamento em que mais informações sobre o problema podem ser encontradas. Às vezes você pode resolver o problema por conta própria.