locked
大量データを登録するとSQLサーバでエラーが発生する RRS feed

  • 質問

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

    原因・調査方法など、教えて頂きたいことがございます。

    現在、SharePoint2013の、フィード機能の評価を進めています。

    評価にあたり、データが大量になった場合、レスポンスがどうなるか検証しています。

    データ登録は、フィードに親・子ポストを登録するプログラムを作成し、データ作成しています。

    (データは、1サイトに親ポストを4000個作成し、その後に、各親ポストに2件子ポストを追加するといったデータ登録処理としています。)

    子ポストを追加時ですが、次のエラーが出力されました。

    ■SharePoint
    Unknown SQL Exception 7105 occurred. Additional error information from SQL Server is included below.  LOB データ型ノードに対し、データベース ID xx、ページ (1:xxxxxx)、スロット xx が存在しません。このエラーは通常、データ ページ上のコミットされていないデータを読み取れるトランザクションが原因で発生します。DBCC CHECKTABLE を実行してください。

    ■SQL Server

    The Database ID xx, Page (1:xxxx), slot xx for LOB data type node does not exist. This is usually caused by transactions that can read uncommitted data on a data page. Run DBCC CHECKTABLE.

    SharePoint・SQLサーバともに疎く、なぜこういったエラーが発生するのか、原因を調査したいのですが、何から調査していけばいいか目途がたっていません。(実運用でも発生するかどうか知りたい。)

    原因・調査でのきっかけなどありましたら、教えて頂けませんでしょうか。

    よろしくお願いいたします。

    2014年4月25日 3:04

すべての返信

  • Takahashiさん

    この辺、あまり詳しくないですが、調査の助けになれば・・・

    まずSharePointで出力されているエラーですが、このエラーはどこに出力されたのでしょうか?
    イベントログですかね?
    もしまだ診断ログを確認されていないのであれば、診断ログも見ておいた方が良いかと思います。
    もしかしたら、何かわかるかもしれません。
    診断ログは以下のフォルダにある、.logファイルです。
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\LOGS

    SQL Serverで出ているエラーですが、少し調べてみたところ以下のサイトがヒットしました。
    http://connect.microsoft.com/SQLServer/feedback/details/649767/error-7105-severity-22-state-9-the-database-id-44-page-1-531-slot-1-for-lob-data-type-node-does-not-exist

    これを読む感じでは、このエラーはSQL11、つまりSQL Server 2012で修正されているようです。
    お使いのSQL Serverのバージョンはなんでしょうか?
    もし2008であれば、2012に変えてみるというのも選択肢の一つになるかもしれません。

    それから、フィードのところの仕組みですが、
    フィードのデータそのものは、そのフィードが置かれているサイトを含むコンテンツDBに保存されます。
    なので、そのコンテンツDBが現在どういう状態になっているか、確認した方が良いですね。
    http://technet.microsoft.com/ja-JP/library/jj219700(v=office.15).aspx

    上記ページに書いてますが、フィードがらみのところは分散キャッシュサービスというサービスも絡んでいます。このサービスはメモリ上での話なので今回は関係ない気はしますが。

    ちょっとまだエラーを特定するには程遠いい情報しか見つけられなかったのですが、これで多少は進められそうでしょうか?

    及川


    SharePoint Developer http://sharepoint.orivers.jp

    • 回答の候補に設定 佐伯玲 2014年4月28日 0:59
    2014年4月25日 19:31
  • 及川様

    お世話になります、高橋です。(長文失礼いたします。)

    早速のご返信ありがとうございました。

    まず、先に記載させて頂いたSharePointのログは、診断ログの内容です。

    診断ログの内容からエラーの発生元は、SQL Serverだったので、SQL Serverのログを確認しました。

    SQL Serverは2012を使っています。

    コンテンツDBについてですが、時間を空けて(半日以上)、再度、子ポストを投稿したところ、今度は、正常に投稿されたので、正常にデータが登録されているのではないかと思っています。

    大量データ登録は、夜間実行で行い、2/3で、子ポストの追加に失敗します。(大量データ登録アプリは、3回リトライし、それでも失敗すれば停止する仕様です。)

    失敗する時間ですが、それぞれ、0:05、0:06に発生します。だいたい同じ時間で、失敗しているので、ジョブが怪しいのかなと思って調べてみましたが、イベントログには、正常性解析ジョブ の警告レベルのログが0:00-0:01に出力されているだけで、これ以外のログは出力されていませんでした。

    試しに、大量データ登録中に、手動で、0:00に実行されるジョブを実行してみましたが、同じ様に、SQLでエラーにならなかった状況です。

    何か、調べるにあたって、手がかりになる事はありませんでしょうか。

    2014年5月8日 7:46