none
SQL2016でエラーおよび接続断 RRS feed

  • 質問

  • お世話になっております。

    下記構成で構築したのですが、2点エラーが出ており困っております。
    Windows2016std
    MS SQL2016std

    サーバ側
    とりあえずsnpは無効にしてあります。
    メモリは64GB搭載のSQLでは60GB制限
    共有メモリは無効にしましたが、こちらも効果なし
    セキュリティソフトは無効にしましたが、効果なし

    アプリ側はODBC13を使いアクセス、タイムアウト値は300、プールも300にしましたが、効果なし

    1.MSSMSのsystem_health内のログ上で

    「security_error_ring_buffer_recorded」
    が大量に発生しています。

    2.同ログ上で「接続を確立中にネットワーク エラー コード 0x80090330 が発生したので、接続が閉じられました。」
    もかなり出ています。

    2つに関連があるかもわかっていません。
    正直なところ、実害が出ているのは2なので、2を解決できれば1は放置でも。
    と考えております。

    以上、何卒よろしくお願い致します。

    2017/06/08 追記

    2のエラーはApache側の設定が悪かったようです。
    引き続き1のエラーに対する情報お待ちいたします。

    • 編集済み ito_ 2017年6月8日 2:42
    2017年6月4日 7:23

回答

  • session_id(SPID)が得られたのであれば、トレースを取ってそのSPIDで絞り込んでみてはいかがでしょうか?
    何かわかるかもしれません。トレースを取る際には、「すべてのイベントを表示する」にチェックをし、「Errors and Warnings」の「User Error Message」などにチェックを入れて探ってみて下さい。

    (参考)
    トレースでサーバー プロセス ID (SPID) をフィルタ選択する方法 (SQL Server Profiler)
    https://msdn.microsoft.com/ja-jp/library/ms191437(v=sql.90).aspx


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年6月14日 1:53
  • net helpmsg 5023
    の結果によると、

    グループまたはリソースは要求した操作の実行に適切な状態ではありません。

    とのこと。これ自体だとあまり参考にならないようですね。失敗したログインのイベントでも出るようです。

    あとはSPIDでトレースをフィルタして詳細に調査する、といったことをされている方もいます。

    Troubleshoot SQL Security Error Ring Buffer Recorded - System Health
    http://www.sqlserver-dba.com/2015/05/troubleshoot-sql-security-error-ring-buffer-recorded-system-health-.html

    2017年6月14日 1:53
  • トレースに何かヒントとなるメッセージが出ると良いですね。

    >この点、何か問題はあるのでしょうか。

    いえ、全く問題ありません。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年6月14日 4:08

すべての返信

  • 「security_error_ring_buffer_record」の詳細はわかりますでしょうか。こちらにErrorCodeが含まれており、そのコードに何が起きたのか記載があるそうです。

    Troubleshooting specific Login Failed error messages
    https://blogs.msdn.microsoft.com/sqlserverfaq/2010/10/27/troubleshooting-specific-login-failed-error-messages/

    Query to extract Security Ring Buffer information
    
    — Extract Ring Buffer Information for SQL Server 2008 instances and above
    SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
    dateadd (ms, (a.[Record Time] – sys.ms_ticks), GETDATE()) as [Notification_Time],
    a.* , sys.ms_ticks AS [Current Time]
    FROM
    (SELECT
    x.value(‘(//Record/Error/ErrorCode)[1]’, ‘varchar(30)’) AS [ErrorCode],
    x.value(‘(//Record/Error/CallingAPIName)[1]’, ‘varchar(255)’) AS [CallingAPIName],
    x.value(‘(//Record/Error/APIName)[1]’, ‘varchar(255)’) AS [APIName],
    x.value(‘(//Record/Error/SPID)[1]’, ‘int’) AS [SPID],
    x.value(‘(//Record/@id)[1]’, ‘bigint’) AS [Record Id],
    x.value(‘(//Record/@type)[1]’, ‘varchar(30)’) AS [Type],
    x.value(‘(//Record/@time)[1]’, ‘bigint’) AS [Record Time]
    FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers
    WHERE ring_buffer_type = ‘RING_BUFFER_SECURITY_ERROR’) AS R(x)) a
    CROSS JOIN sys.dm_os_sys_info sys
    ORDER BY a.[Record Time] ASC
    
    
    


    2017年6月13日 5:29
  • コメントありがとうございます。

    いただいたクエリと大差ない(こっちのほうが見やすい)ので
    system_healthのイベントログから詳細を拾ってみました。

    正直、error_codeから調べても有用な情報が得られず、お手上げ状態です。


    name security_error_ring_buffer_recorded
    id 5023
    session_id 69
    error_code 5023
    api_name ImpersonateSecurityContext
    calling_api_name NLShimImpersonate
    call_stack 0x00007FFC419E2A6E  0x00007FFC4188DA2F  0x00007FFC41890D85  0x00007FFC4188C8C1  0x00007FFC4188BD62  0x00007FFC419E2AB3  0x00007FFC41891C48  0x00007FFC417210A3  0x00007FFC41235BFD  0x00007FFC412358F5  0x00007FFC4123554D  0x00007FFC4125D7C8  0x00007FFC4125DB10  0x00007FFC4125DCD7  0x00007FFC4125D9F8  0x00007FFC585B8364  


    2017年6月14日 0:32
  • session_id(SPID)が得られたのであれば、トレースを取ってそのSPIDで絞り込んでみてはいかがでしょうか?
    何かわかるかもしれません。トレースを取る際には、「すべてのイベントを表示する」にチェックをし、「Errors and Warnings」の「User Error Message」などにチェックを入れて探ってみて下さい。

    (参考)
    トレースでサーバー プロセス ID (SPID) をフィルタ選択する方法 (SQL Server Profiler)
    https://msdn.microsoft.com/ja-jp/library/ms191437(v=sql.90).aspx


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年6月14日 1:53
  • net helpmsg 5023
    の結果によると、

    グループまたはリソースは要求した操作の実行に適切な状態ではありません。

    とのこと。これ自体だとあまり参考にならないようですね。失敗したログインのイベントでも出るようです。

    あとはSPIDでトレースをフィルタして詳細に調査する、といったことをされている方もいます。

    Troubleshoot SQL Security Error Ring Buffer Recorded - System Health
    http://www.sqlserver-dba.com/2015/05/troubleshoot-sql-security-error-ring-buffer-recorded-system-health-.html

    2017年6月14日 1:53
  • お二方共、ありがとうございます。

    現在トレースを取ってみております。
    が、今のところ正常な動きをしているようです。。。

    一点お聞きしたいのですが、
    このWindowsサーバはドメイン参加済み
    SQLserverにアクセスさせているのは、SQL認証ユーザ(DBアクセスもログインも許可)

    このSQLユーザはAD上に同じ名前はなく、サーバのローカルユーザにもいません。

    この点、何か問題はあるのでしょうか。

    2017年6月14日 3:17
  • トレースに何かヒントとなるメッセージが出ると良いですね。

    >この点、何か問題はあるのでしょうか。

    いえ、全く問題ありません。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年6月14日 4:08
  • ありがとうございます。
    トレースだけでは何もでなかったので、エラー件数とイベント数を照らし合わせたりしてみるつもりです。

    >>この点、何か問題はあるのでしょうか。
    >いえ、全く問題ありません。
    こちらもありがとうございます。安心できました。

    2017年6月14日 23:25