SQL-Server2008 R2のトレースファイル
会社のデータベースがサーバー機入れ替えに伴ってSQL-Server2000からSQL-Server2008R2に変わった。
それほど特別な設定をしてないので、移行自体は問題なくできたが、1件問題が出た。
内部統制の関係でDBアクセスをトレースファイルに出力し、そのファイルを毎月テーブルに読み込んで監査資料を作っているのだが、アップデート後読み込めなくなった。
具体的にはSQL Profilerにてトレースのスクリプトをエクスポートして、ストアドにセットしトレースファイルを出力、別のプログラムにてfn_trace_gettable関数を使ってテーブルに読み込み、クエリで監査資料を出力という操作をしていたのだが、2008R2にしてから
サーバー : メッセージ 567、レベル 16、状態 1、行 5
ファイル 'd:\****.trc' は存在しないか、トレース ファイルとして認識されません。または、ファイルを開くときにエラーが発生しました。
というメッセージが出て、読み込めなくなった。
いろいろ探しても情報があまりなく1つあったのはMSのサイトで
「SQL ProfilerのGUIから出力したトレースは読み込めない」
であったが、こちらはストアドで実行してるし・・
ストアドにセットしている内容も特に関係なささそうだったし・・
海外サイトをみてもあまり直接というものはなかった。
2008R2には監査機能がついたというので切り替えようかと思ったのだが、これはEnterpries EditionしかサポートしないということでうちのStandard Editionでは無理だった。
その後もいろいろ海外サイトを探していたら、実行アクセス権というのが関係あるという
のを見つけて、最終的には他のサーバーにおいていたトレースファイルを、同じDB
サーバーのフォルダに戻して読み込んだら、読み込めた。
1月くらい悩んで、最終的にはつまらない原因だったが、こういうとこを気づくのが結構難しいですね
最近のコメント