![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ASP+Oracle9iで作られたシステムがあります。
Oracleの設定などは前任者がしており、まともな引継ぎを受けないまま私が維持運用員となりました。
現在DBからあるレコードが消えてしまい(最初から作られてない可能性もあり)、顧客からクレームがついています。
状況から考えて怪しいプログラムを調査したのですが、原因不明でした。
そこで、Oracleの方で今まで流れたSQLをログとして保存していれば手がかりがつかめるのではないかと思い、情報を探しているのですが見つからないので教えて頂きたいのです。
私はOracleの知識(管理面について)が殆どなく、Oracleを使うことはできるが、Oracleの設定がどういう状況になっているか調べることもできず、資料もありません。
1.そもそもOracleにSQLをログとして保存する機能があるのか?
2.あるとすれば、保存機能が有効になっているか、保存したファイルがどこにあるかをどこで確認できるか?
以上の点についてご存知の方、どうぞ回答よろしくお願いします。
No.2ベストアンサー
- 回答日時:
OracleのSQL実行痕跡は以下に示すものの中にあります。
ただし、それぞれの設定レベル、保存方法によって、参照できる範囲は変わります。
1.オンラインREDOログとアーカイブログ
オンラインREDOログはすべてのOracleデータベースに存在します。
ですが、そのREDOログのサイズとシステムのアクセス量によって保存期間は変化します。アーカイブログ設定しておけば、古いREDOログはアーカイブとして吐き出されます。
これらは#1の方がおっしゃったLOGMINERで実行済みSQLを調査することができます。
アーカイブログモードになっているかどうかは、下記で確認できます。
SQL> select log_mode from v$database;
また、どのアーカイブログファイルを調査するかは下記を参照すれば良いと思います。
SQL> select name,to_char(completion_time, 'yyyy/mm/dd hh24:mi') adate from v$archived_log;
2.フラッシュバック問い合わせ
これは初期化パラメータUNDO_MANAGEMENTがAUTOに設定されており、かつUNDO_RETENTIONが保存期間として適切に設定されている場合のみ使用できます。
やっていることは、UNDO表領域(旧RBS用表領域)の中に残っている実行履歴を参照しています。したがって、データベース設計時にフラッシュバック問い合わせを前提としていない限り、使える可能性は低いです。
3.その他
監査を実行していれば、実行SQLを取得できる可能性があります。
ただし、監査レベルなどを理解しておかないと、すべてのSQLが取得されていない可能性がありますので、難しいかもしれません。
ご丁寧にありがとうございます。
調べてみたところ、アーカイブモードで月切りで取っているようでした。
残念ながら不具合発生したのは2月末時点で、その時のログは残っておりませんで、ログからの解析はできませんでしたが、これからのトラブル解決に役立てそうです。
どうもありがとうございました。
No.1
- 回答日時:
オラクルが処理した痕跡というのは、幾つか残りますが..
アーカイブログを残しているのであれば、それを解析するのが
最も確実な方法でしょう。
解析用のLOGMINERという標準ツールも付属しています。
(詳しくはマニュアル参照)
REDOログというのがあるというのを知り、テスト環境のログを開いてみようとテキストエディタに突っ込んでみたところ、テキストエディタでは開けなかったので、専用のツールか何かで見るようになっているんだと思っておりましたが、
LOGMINERという名前まではわかりませんでした。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。 もしあなたがその電話を手にしたら、いつの自分にどのようなアドバイスを送りますか?
-
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
PL/SQLでログを確認したい。
Oracle
-
SQLPLUSで結果を画面に表示しない
Oracle
-
-
4
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
5
含まない言い方ってどうしたらいいんでしょうか
日本語
-
6
Viewにインデックスは張れますか?
Oracle
-
7
Log4jで機能毎に別ファイルへ出力する方法
Java
-
8
日付の大小の表現
日本語
-
9
トレースファイルの削除スクリプト
Oracle
-
10
キャッシュを使わずにSELECTを投げたい
Oracle
-
11
異なるサーバのDBデータ同士を結合するには?
Oracle
-
12
他の処理でselectさせないようにしたい。
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マテリアライズドビューログに...
-
Oracleで流したSQLのログを取得...
-
SQL実行結果の出力を見やすくし...
-
PL/SQLでログを確認したい。
-
SQL*Plusで、コマンドの返答を...
-
batファイルでのSQL(oracle)...
-
ORA-00984のエラーが出ます
-
シェル上でDBコマンドをループ...
-
共有プールの断片化解消
-
コマンドファイルの実行
-
SQL実行結果取得
-
4GB = 4096MB ではない?
-
ORA-01013のエラーについて経験...
-
PL/SQLのコンパイルエラーにつ...
-
なぜ再起動すると空き領域が増...
-
増設したHDDに、新たにDtoD領域...
-
SQLLOADER
-
ストアドファンクションの実行
-
シェルスクリプトでオラクルの...
-
PL/SQL PLS-00103エラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLでログを確認したい。
-
SQL*Plusで、コマンドの返答を...
-
SQL実行結果の出力を見やすくし...
-
Oracleで流したSQLのログを取得...
-
batファイルでのSQL(oracle)...
-
ストアド・プロシージャをバッ...
-
サービスの再起動を自動で
-
トレースファイルの削除スクリプト
-
ORACLEのエクスポートについて
-
JavaでのOracle接続について(J...
-
マテリアライズドビューログに...
-
Accessからoracleのストアドプ...
-
ORA-00984のエラーが出ます
-
リスナーログを出力しない設定方法
-
SQL*Plus:SPOOLコマンドでのSQ...
-
oracle11g listener.logの削除
-
SQL実行結果取得
-
SPOOL出力先のフォルダにSpace...
-
pl/sqlでのautotraceについて
-
SQL*PLUSを終了させる方法
おすすめ情報