none
イベントID:3967 及び イベントID:1101 への対処方法について RRS feed

  • 質問

  • はじめて投稿いたします。

    私はネットワーク屋なので、本来「担当外」なのですが、対応している者があまりに頼りないのでsuggestionをお願いしたく。

    現在、Microsoft SQL server 2012 -11.02100.60(X64)に於いて
    イベントID:3967 "Insufficient space in tempdb to hold row versions.  Need to shrink the version store to free up some space in tempdb.
    イベントID:1101 "Could not allocate a new page for database 'TEMPDB' because of insufficient disk space in filegroup 'DEFAULT'.
    が頻発しています。

    私は、早急に「SHRINKFILE」or「SHRINKDATABASE」を行う、若しくは、tempdbファイルサイズを大きくする(現在、autogrowth=onですが、上限=20,480Mに設定されています)必要があると考えるのですが、担当者はtempdbファイルを「追加」して増やした(8→10へ)のみです。(私が調べた限り、このような対応を行えという記述は見当たらないのですが)

    その後も上記エラーは止んでいません。

    Q1:担当者が行った対応は間違いである事の確認

    Q2:Q1が「間違い」であった場合、「SHRINKFILE」or「SHRINKDATABASE」を行う、若しくは、「tempdbファイルサイズを大きくする」のどちらが”サービス稼働中に行う対応として」適切でしょうか?

    Q3:SQL Serverが使用できる論理プロセッサは「4」です。よって、tempdbファイルが無駄に多い状況かと思うのですが、サービス稼働中に「ファイルremove」したら、パーフォーマンスに悪影響、またはシステムに重大な問題を引き起こすでしょうか?

    以上、宜しくお願いいたします。


    • 編集済み IDF hana 2016年2月19日 6:23
    2016年2月19日 5:45

回答

  • tempdbが足りないので、tempdbを構成するファイルを増やしたわけですよね。
    ひとつ20GBなら、+40GB、ということですか。
    運用側の取るべき選択としては間違ってないと思いますよ。

    根本的には、現在20GBのtempdbファイルが10個で200GBあっても足りないわけで、
    tempdbを使うクエリ側をなんとかしないと直らないのではないでしょうか。

    Q1.間違ってはないです(立場にも拠ります。開発者であれば、クエリ特定して直せよ、とは思います)。
    Q2.tempdbを使うクエリが存在する以上、shrinkしても無駄と思います。
    Q3.ファイルを削除すると、すくなくともその反映にはSQLServerの再起動が要求されるはずです。


    jzkey

    • 回答の候補に設定 星 睦美 2016年4月18日 7:53
    • 回答としてマーク 星 睦美 2016年4月22日 6:40
    2016年2月21日 16:09