神谕。如何在设备上 space 不足时刷新物化视图
Oracle. How to refresh materialized view when don`t have enough space on divece
我在物化视图方面没有足够的练习,现在遇到了问题。
我有一个磁盘有限 space 的 oracle 数据库。
里面有一个数据仓库。
我创建了一个物化视图以从中获取报告。
物化视图变大了,每天晚上开始压缩物化视图。
突然,物化视图刷新时,显示错误。
begin
DBMS_MVIEW.REFRESH('part_sales_mv','?');
end;
Error report -
ORA-12008: error in materialized view refresh path
ORA-12801: error signaled in parallel query server P004
ORA-01114: IO error writing block to file (block # )
ORA-01114: IO error writing block to file 201 (block # 8907)
ORA-27063: number of bytes read/written is incorrect
IBM AIX RISC System/6000 Error: 28: No space left on device
Additional information: -1
Additional information: 122880
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2566
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2779
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2748
ORA-06512: at line 4
12008. 00000 - "error in materialized view refresh path"
*Cause: Table SNAP$_<mview_name> reads rows from the view
MVIEW$_<mview_name>, which is a view on the master table
(the master may be at a remote site). Any
error in this path will cause this error at refresh time.
For fast refreshes, the table <master_owner>.MLOG$_<master>
is also referenced.
*Action: Examine the other messages on the stack to find the problem.
See if the objects SNAP$_<mview_name>, MVIEW$_<mview_name>,
<mowner>.<master>@<dblink>, <mowner>.MLOG$_<master>@<dblink>
still exist.
Mview 按范围分区和子分区。这是我的物化视图的参数:
refresh force on demand
buid deferred
parallel
enable row movement
using default local rollback segment
enable query rewrite
请帮我解决问题,解决我的问题。我需要找到一种方法如何用有限的光盘 space.
刷新 mvew
您可以在创建实体化视图时尝试使用压缩,但请记住这可能会对性能产生负面影响。
CREATE MATERIALIZED VIEW MV_TEST
COMPRESS
REFRESH FAST ON COMMIT
AS SELECT * FROM TEST;
我建议要求更多 space 或限制此实体化视图中的数据量,也许您可以避免将所有数据存储在源 table。
我在物化视图方面没有足够的练习,现在遇到了问题。 我有一个磁盘有限 space 的 oracle 数据库。 里面有一个数据仓库。 我创建了一个物化视图以从中获取报告。 物化视图变大了,每天晚上开始压缩物化视图。 突然,物化视图刷新时,显示错误。
begin
DBMS_MVIEW.REFRESH('part_sales_mv','?');
end;
Error report -
ORA-12008: error in materialized view refresh path
ORA-12801: error signaled in parallel query server P004
ORA-01114: IO error writing block to file (block # )
ORA-01114: IO error writing block to file 201 (block # 8907)
ORA-27063: number of bytes read/written is incorrect
IBM AIX RISC System/6000 Error: 28: No space left on device
Additional information: -1
Additional information: 122880
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2566
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2779
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2748
ORA-06512: at line 4
12008. 00000 - "error in materialized view refresh path"
*Cause: Table SNAP$_<mview_name> reads rows from the view
MVIEW$_<mview_name>, which is a view on the master table
(the master may be at a remote site). Any
error in this path will cause this error at refresh time.
For fast refreshes, the table <master_owner>.MLOG$_<master>
is also referenced.
*Action: Examine the other messages on the stack to find the problem.
See if the objects SNAP$_<mview_name>, MVIEW$_<mview_name>,
<mowner>.<master>@<dblink>, <mowner>.MLOG$_<master>@<dblink>
still exist.
Mview 按范围分区和子分区。这是我的物化视图的参数:
refresh force on demand
buid deferred
parallel
enable row movement
using default local rollback segment
enable query rewrite
请帮我解决问题,解决我的问题。我需要找到一种方法如何用有限的光盘 space.
刷新 mvew您可以在创建实体化视图时尝试使用压缩,但请记住这可能会对性能产生负面影响。
CREATE MATERIALIZED VIEW MV_TEST
COMPRESS
REFRESH FAST ON COMMIT
AS SELECT * FROM TEST;
我建议要求更多 space 或限制此实体化视图中的数据量,也许您可以避免将所有数据存储在源 table。