7

Oracle データベースを初めて見たとき、多くの場合、最初の質問の 1 つは「アラート ログはどこにあるのか?」です。Grid Control で確認できますが、多くの場合、環境では利用できません。

しばらく前に、アラート ログを見つけて追跡するためにいくつかの bash および Perl スクリプトをブログに投稿しましたが、その投稿がまだ多くのヒットを記録していることに驚いています。

使用される手法は、v$parameter から background_dump_dest を検索することです。ただし、これは Oracle Database 10g でのみテストしました。

これよりも良いアプローチはありますか?そして、これが11gでも機能するかどうかは誰にもわかりませんか?

4

2 に答える 2

8

11gで動作すると確信しています。そのパラメータは長い間使用されてきました。

私にはそれを見つける正しい方法のようです。

background_dump_dest パラメータが設定されていない場合、alert.log は $ORACLE_HOME/RDBMS/trace に配置されます。

于 2008-10-05T12:04:18.473 に答える
3

ログを開いたら、スリープして読んでいるのではなく、 File::TailまたはFile::Tail::Appを使用して書き込み中のログを表示することを検討します。File::Tail::Appファイルが回転して切り替わるのを検出し、プログラムの呼び出しの合間にどこまで行ったかを記憶するので、特に賢いです。

また、使用する前にキャッシュファイルをロックすることを検討します。競合状態は気にならないかもしれませんが、複数の人が一度にプログラムを開始しようとすると、誰がキャッシュファイルに書き込むかをめぐって厄介な争いが発生する可能性があります。

ただし、これらは両方とも問題があります。あなたのコードをざっと見ただけでは、明白な間違いはわかりません。

于 2008-10-06T00:56:28.260 に答える