oracle スナップショットタイムスタンプエラー

スポンサーリンク
データベース
スポンサーリンク

Oracleにおいて、あるDBの「A」というテーブルと別DBにあるAのマテリアライズドビュー(スナップショットテーブル)「A’」とがあり、日々完全リフレッシュを行っている。

サーバの切替テストやらで、「A」の存在するDBを丸ごと移行した仮想サーバをたて、テストで「A」から「A’」(A’は本番環境)に完全リフレッシュした際、
ORA-04062: timestamp(xxxxx “yyyyy”について)が変更されました。

 

というエラーが発生した。

 

スポンサーリンク

はじめに

何が起こったのか・・・と想像してみた。
日常「A」から「A’」には日々完全リフレッシュを行っており、実際には前日リフレッシュを行っていた。テストの際は「A」は1カ月前のデータで仮想サーバを立てており、そこから「A’」にリフレッシュしようとした。

 

どうやら、「A’」側には、データの取得先である「A」がいつ時点のデータベースだったのかということを記録しているようで、その時点から遡った時間を持っているデータベースからリフレッシュを行う際、「本当に大丈夫か」という意味で(と、私は思っているが・・・)、一度エラーにするようになっているみたい。

 

エラーの「timestampが変更されました」は、「A’」側に保存されている取得先テーブルの時間情報を更新したというエラーで、再度リフレッシュ
すると正常終了となる。

 

そもそもこんなテストをすることはあまりないのだが、備忘録として残しておこう。
【参考】Oracle Technology Network (OTN) Japan スレッド: ORA-04062に関して

 

コメント