none
[SQL Server 監査] 監査が停止できない RRS feed

  • 質問

  • SQL Server 監査を利用しているのですが、監査する内容を変更するために
    サーバ監査の仕様を停止しようと以下のクエリを実行しました。

    ALTER SERVER AUDIT SPECIFICATION [ALogServerAuditSpecification] WITH(STATE = OFF)

    C#のプロフラム上からもSQL Server management studio上からの同じクエリを実行しているのですが
    プログラムの場合は、sqlCommandのタイムアウト、management studio上からは終了しない状態です。

    特にmanagement studio上からは実行中のまま処理が続いたままなのでなんとか処理を終了させたいです。

    正常に終了させる方法はありますでしょうか?

    開始する際は、監査の作成 -> 監査の有効化 -> サーバ監査の仕様の作成 -> サーバ監査の仕様の有効化の流れだと思いますが

    終了する際は、サーバ監査の仕様の無効化 -> サーバ監査の仕様の削除 -> 監査の無効化 -> 監査の削除

    の流れが一番問題が起きづらいと思われるですがいかがでしょうか?

    アプリケーションのイベントログには、以下のようなログが記録されていました。

    --

    2019-12-11 15:35:10.37 spid385     Replication-@rowcount_only パラメーターには値 0、1、または 2 を指定してください。0 = バージョン 7.0 と互換性のあるチェックサム。1 = 行数だけをチェック。2 = バージョン 8.0: agent Tera_dist@rowcount_only パラメーターには値 0、1、または 2 を指定してください。0 = バージョン 7.0 と互換性のあるチェックサム。1 = 行数だけをチェック。2 =  scheduled for retry. ディストリビューション トランザクション テーブルをクリーンアップできませんでした。

    自分で調べたかぎりでは、クエリの実行に失敗し、ロールバックしたことがわかるだけみたいですが、根本理由が書かれているのでしょうか?

    • 編集済み m-matsuda 2019年12月12日 9:32
    2019年12月12日 5:30

すべての返信

  • m-matsudaさん

    ALTER SERVER AUDIT SPECIFICATION [ALogServerAuditSpecification] WITH(STATE = OFF)

    このクエリの実行が終わらないとのことですが、↑のクエリを実行中に別のクエリウィンドウで、以下の2クエリを実行してみてください。


    1.現在実行中のクエリリスト

    https://raw.githubusercontent.com/masaki-hirose/SQLServer-Info/master/%E7%8F%BE%E5%9C%A81%E7%A7%92%E4%BB%A5%E4%B8%8A%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%AA%E3%82%B9%E3%83%88.sql


    2.ブロッキングチェーン

    https://raw.githubusercontent.com/MasayukiOzawa/SQLServer-Util/master/Lock/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%81%AE%E5%8F%96%E5%BE%97.sql

    このとき、「ALTER SERVER AUDIT SPECIFICATION 」のクエリがブロッキングされていないか、また、「ALTER SERVER AUDIT SPECIFICATION 」のクエリのstatusはrunnningなのか、suspendedなのか。suspendedなら何で待たされているのか(wait type / last wait type など参考になります)について、確認してみてください。

    runningが続くのであれば、普通に実行に時間がかかっているだけで、待っていれば終わると思います。suspendedが長く続くようであれば、何によって待たされているのか確認してみてください。

    -----------------------------------------------------------

    参考になりましたら投票および回答としてマークをお願いします。


    2019年12月12日 15:13
  • maaaaaaaa8さん。

    回答ありがとうございます。

    監査の手順のほうに注目していましたが、教えていただいた観点からも調べてみようと思います。

    進展がありましたらご報告させていただきます。

    2019年12月13日 1:24
  • maaaaaaaa8さん。

    その後、別の環境でも同じ事象が再現出来たため、教えていただいたクエリを実行してみました。

    1. 現在実行中のクエリリスト を実行したところ、数件レコードが抽出されましたが、

    負荷をかけるために実行したクエリと調査用のクエリでした。

    "ALTER ~" は見つかりませんでした。

    2. ブロッキングチェーン を実行したところ、0件でした。

    上記の結果から、何か分かりますでしょうか?

    2020年1月6日 2:53