ASP+Oracle9iで作られたシステムがあります。
Oracleの設定などは前任者がしており、まともな引継ぎを受けないまま私が維持運用員となりました。
現在DBからあるレコードが消えてしまい(最初から作られてない可能性もあり)、顧客からクレームがついています。
状況から考えて怪しいプログラムを調査したのですが、原因不明でした。
そこで、Oracleの方で今まで流れたSQLをログとして保存していれば手がかりがつかめるのではないかと思い、情報を探しているのですが見つからないので教えて頂きたいのです。
私はOracleの知識(管理面について)が殆どなく、Oracleを使うことはできるが、Oracleの設定がどういう状況になっているか調べることもできず、資料もありません。
1.そもそもOracleにSQLをログとして保存する機能があるのか?
2.あるとすれば、保存機能が有効になっているか、保存したファイルがどこにあるかをどこで確認できるか?
以上の点についてご存知の方、どうぞ回答よろしくお願いします。
No.1
- 回答日時:
オラクルが処理した痕跡というのは、幾つか残りますが..
アーカイブログを残しているのであれば、それを解析するのが
最も確実な方法でしょう。
解析用のLOGMINERという標準ツールも付属しています。
(詳しくはマニュアル参照)
REDOログというのがあるというのを知り、テスト環境のログを開いてみようとテキストエディタに突っ込んでみたところ、テキストエディタでは開けなかったので、専用のツールか何かで見るようになっているんだと思っておりましたが、
LOGMINERという名前まではわかりませんでした。
どうもありがとうございました。
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月末時点で、その時のログは残っておりませんで、ログからの解析はできませんでしたが、これからのトラブル解決に役立てそうです。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- その他(ソフトウェア) JavaとOracle Javaって何が違うんですか? 1 2022/05/05 05:46
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- 情報処理技術者・Microsoft認定資格 「Oracle Java Gold」 か 「応用情報技術者試験 」だとどちらのほうが転職に役立ちます 2 2022/08/22 08:16
- SQL Server SQL Oracle serverにって質問です。 会社テーブルがあり、そのテーブルから 社員名、給 4 2022/05/21 12:22
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- Oracle oracleで 10,20, 30, というデータがあるとして ,区切りでデータが何件あるか調べる関 3 2023/03/14 15:56
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
PL/SQLでログを確認したい。
Oracle
-
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
PL/SQLで@ファイル名が反応しません
Oracle
-
-
4
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
5
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
6
キャッシュを使わずにSELECTを投げたい
Oracle
-
7
PL/SQLのコンパイルエラーについて(ignored)
Oracle
-
8
データを削除しても表領域の使用率が減りません
Oracle
-
9
SQLPLUSで結果を画面に表示しない
Oracle
-
10
CSVファイルを読み込んでテーブルの更新
Oracle
-
11
update文で改行を入れる
Oracle
-
12
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
13
NUMBER(N,M) としたときの、格納データサイズ(バイト)
Oracle
-
14
変数名の付け方
Java
-
15
Viewにインデックスは張れますか?
Oracle
-
16
異なるスキーマからビュー作成
Oracle
-
17
SQL Plusで項目名が最後まで表示されない?
Oracle
-
18
ORA-00959: 表領域'****'は存在しません
Oracle
-
19
サーバーの移行について(エクスポートとインポート)
Oracle
-
20
vssver2.scc って消してもいいんですか?
Windows 8
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL実行結果の出力を見やすくし...
-
batファイルでのSQL(oracle)...
-
SQL*Plusで、コマンドの返答を...
-
PL/SQLでログを確認したい。
-
ShellからTruncate【Linux】
-
JavaでのOracle接続について(J...
-
シェルの実行ができません
-
startup、shutdownコマンド実行...
-
RMANのバッチ実行に関して
-
ORA-01013のエラーについて経験...
-
空のDVDの見分け方
-
CASE文のエラーについて
-
4GB = 4096MB ではない?
-
sqlのエラーハンドリングについ...
-
MSDE2000SP4のデータベースをMS...
-
なぜ再起動すると空き領域が増...
-
Excel2013VBAでフリーソフト「...
-
ストアドファンクションの実行
-
DOSプロンプトとコマンドプロン...
-
Oracleストアドの互換性について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLでログを確認したい。
-
SQL*Plusで、コマンドの返答を...
-
SQL実行結果の出力を見やすくし...
-
トレースファイルの削除スクリプト
-
batファイルでのSQL(oracle)...
-
Oracleで流したSQLのログを取得...
-
ストアド・プロシージャをバッ...
-
サービスの再起動を自動で
-
JavaでのOracle接続について(J...
-
Accessからoracleのストアドプ...
-
SQL*PLUSを終了させる方法
-
リスナーログを出力しない設定方法
-
execute使用した時の、完了メッ...
-
ORA-00984のエラーが出ます
-
ソート(大文字・小文字を区別...
-
PL/SQLからshellスクリプ...
-
oracle11g listener.logの削除
-
ShellからTruncate【Linux】
-
シェルの実行ができません
-
【spoolコマンドで追記】
おすすめ情報