Oracleマテリアライズドビュー関連のエラー対応

Published by

on

項目バージョン
OSWindows Server 2016/2019/2022/2025
Oracle19c Standard

■テーブルの再編成後、インデックスが「UNUSABLE」となる(ORA-01502:索引’スキーマ名.インデックス名’またはそのパーティションが使用不可の状態です。)

以下の方法で「商品マスタ」テーブルの再編成を実施(同一表領域内で移動)したところ、このテーブルに対するインデックスが「UNUSABLE」となり、利用できなくなってしまいました。

ALTER TABLE 商品マスタ MOVE TABLESPACE TS_SALES;

このようなとき、他にも関連するインデックスが同様の状態かもしれないため、以下の方法で確認をしてまとめて対処します。

SELECT INDEX_NAME, STATUS FROM USER_INDEXES WHERE TABLE_NAME = '商品マスタ' AND STATUS <> 'VALID';

見つかった「VALID」でないインデックス(今回は「UNUSABLE」状態)をリビルドすれば解決します。

ALTER INDEX IDX_商品 REBUILD;

■表定義変更に伴うエラー(ORA-12008:ORA-12008:
マテリアライズド・ビューまたはゾーンマップのリフレッシュ・パスでエラーが発生しました)

マテリアライズドビューのマスター表の定義変更(列追加など)を実施後、同期(リフレッシュ)処理に失敗したときのエラーです。

行1でエラーが発生しました。:
ORA-12008:
マテリアライズド・ビューまたはゾーンマップのリフレッシュ・パスでエラーが発生しました
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行2957
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行2372
ORA-00904: “A1″.”xxxxxxxxxxxxx”: 無効な識別子です。
ORA-02063: 先行のエラー・メッセージを参照してくださいline(USR)。
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行88
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行248
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行2353
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行2913
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行3197
ORA-06512: “SYS.DBMS_SNAPSHOT_KKXRCA”, 行3228
ORA-06512: “SYS.DBMS_SNAPSHOT”, 行15
ORA-06512: 行1

対応としては、マテリアライズドビューの再定義(DROPとCREATE)を実施し、一度、完全リフレッシュを行って同期する必要がありました。※高速リフレッシュの運用環境でも初回は完全リフレッシュによる同期が必要な点に注意です。

コメントを残す