質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

解決済

1回答

7025閲覧

Mviewリフレッシュ時エラー

umegon

総合スコア24

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

0クリップ

投稿2018/04/05 05:21

編集2018/04/05 05:46

Oracle Database12c でのMviewについて質問があります。

Mviewを使用し、他サイトのテーブルを参照しています。

11gから12cへデータ移行し、Mviewの構築を行った後リフレッシュをかけると以下エラーが発生して困っています。

環境はAWSのRDS上に乗っているOracle 12cとなります。

============-(一部置き換えております)
ORA-12048: マテリアライズド・ビュー"スキーマー名"."Mview名"をリフレッシュ中にエラーが発生しました
ORA-12034: "マスタスキーマ名"."Mview名"のマテリアライズド・ビュー・ログは最終リフレッシュよりも新しいものです
============-

上記エラー、特に12034は、マテリアライズド・ビュー・ログがどのような状態になってしまっているのかが理解が出来ずにいます。
(書いてある通りだよ・・・とは思うのですが、それがどこが結局悪いのかがイメージ出来ずにいます)

マスタサイト・参照のサイトでどのような状況が発生しているときに発生することが多いのか
ご教示頂けないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

理由と回避策について詳しく紹介されているサイトがありました。
ORA-12034
要約としては、リフレッシュのタイミングの問題ということです。

投稿2018/04/05 05:52

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umegon

2018/04/05 06:15

sazi様 ご回答ありがとうございます。 ご教示頂いたサイトは、昨日拝見させて頂いているのですが、自分の理解があっているのか認識の確認をさせていただけないでしょうか。 ①元の移行元のデータベースで高速リフレッシュ中にデータをエクスポートをした場合、エクスポートされた先でMviewを作り直すときは、必ず上記のエラーが出てしまうということになるのでしょうか? ②あと上記のブログとOracleのページに 「"新規マテリアライズド・ビュー・サイトでマテリアライズド・ビュー作成中に、マスター表またはマスター・マテリアライズド・ビューのマテリアライズド・ビュー・ログがパージされる場合があります。これが発生すると、次のエラーが検出される場合があります。」 と書かれていますが、自分のイメージに変換すると 参照元のマテリアライズドビューのログが退避中?に参照元でMviewの作成を行うことによっても起こってしまうということなのでしょうか? また、①の件でエクスポートがやり直せない場合は、 必ず上記のエラーがでるので、 完全リフレッシュを実施したのち、高速リフレッシュに切り替える必要があると考えているのですがいかがでしょうか。 長文&質問の数が多く申し訳ございませんが、可能な箇所のご回答をお願い致します。
sazi

2018/04/05 06:37

>① 多分そうでしょうね。理由は、 >materialized view logの伝播が必要なデータ有無に関係なく、リフレッシュ時刻を跨いてしまうかどうか! ということですから。 >② Mviewの作成ですか? 退避中にそんなこと行うのが誤りって気がしますけど、ステータスの問題ですから、別のエラーも含めて正常な状態にならない可能性が高いと思われます。 >完全リフレッシュを実施したのち、高速リフレッシュに切り替える 元の状態に戻すということで、それが高速リフレッシュなら、そういうことです。
umegon

2018/04/05 07:25

①につきまして ありがとうございます。もうこれはエクスポートはできないのであきらめるしかなさそうですね。 ②につきまして マスタサイトは別担当者が管理している為、 退避中かどうかを判断した状態でMview作成を行うのが難しい状態なのです。。。 ③につきまして 書き方が悪かったです。申し訳ございません。 クリエイト時の宣言は高速リフレッシュです。 なので初期構築時に、エラーが出てしまうのはしょうがないと今回は判断し 一度完全リフレッシュを行います。それにより高速リフレッシュが使用できるようになり、 その後のリフレッシュは初期構築時の高速リフレッシュが勝手に実施されていくのかなと認識しております。
sazi

2018/07/31 01:49 編集

>② なんか変だなーと思いましたがひょっとして、 >「参照元」のマテリアライズドビューのログが退避中?に「参照先」でMviewの作成を行う ってことですか? データの同期をとる際は、ジョブネットによる制御は必須だと思いますが、できないなら余裕を持った時間帯で処理を行うしかないですね。 それにしても時間内に処理が終わらないこともあるので、結局ジョブネットに立ち返ることになってしまうでしょうけど。 >③ ビューの宣言時のモードの話ですか。 完全リフレッシュをDBMS_MVIEWで行う分には、宣言部分に変更は無いですね。
umegon

2018/04/09 04:26

お世話になっております。 あれから完全リフレッシュを試したのですが、エラーは消えずという結果になりました。 3つあるMviewのうち1つのMviewが毎回「ORA-12034」を吐いているようでした。 完全リフレッシュを実施しても改善がされないところを見ますと、高速リフレッシュ時にしようされるマテリアライズドビューのログ辺りが何かおかしいのかもしれないですね。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問