2010-11-19 72 views
0

我,删除它后MView问题

我有一个物化视图在一个服务器是由数据库链接创建的。 在Mview上有一个作业正在运行(用前面的dbms_refresh.make制作)。

现在我已经在原始表中创建了3个新字段。

有在Mview上运行的作业,我通过DBMS_refresh.destroy丢弃了作业。 然后扔下MView的(我忘了删除索引的视图)

现在,当我试图与SQL这是我前sxtracted创建MVIEW, 这是给错误为: -

错误起始线1命令:

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 [email protected] 

错误在命令行:1列:0 错误报告:

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 

错误起始线26命令:

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 
) 

错误在命令行:26列:0 错误报告: SQL错误:关闭连接

回答

3

的动作是相当清楚的:

*Action: Report as a bug - the first argument is the internal error number

这是一个内部错误。按照来自说明[ID 153788.1]的说明使用错误查找工具Oracle support site进行故障排除ORA-600或ORA-7445错误。

+0

+1 ORA-00600错误*通常不是* – DCookie 2010-11-19 15:53:22

0

您必须: - 删除快照/ MVIEW - 删除快照日志上的主表 - 创建主表 一个新的快照日志 - 重新创建MVIEW并简化您创建语句如下:

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 [email protected]; 

上面将添加一个刷新dbms_job,它使表每5分钟更新一次表。您可以更改它以符合您的要求。

在创建它,你必须运行:

exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'C'); 
exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'F'); 

这应该照顾它。如果表格很大,您将需要使用备用方法。我不知道大小,所以我假设不太大。

0

检查数据库的警报日志以获取有关数据库中可能发生的情况的线索。这可能会指向您一个或多个跟踪文件,其中可找到有关该问题的更多信息。有时候你可以自己解决问题。