kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

SQL Serverのログ切り捨て

あるところで「SQL Serverのログってどんどん増えるから、BACKUP LOG hoge WITH TRUNCATE ONLYで切り捨てましょう」みたいな事を書かれていました。あれ?トランザクションログ切り捨てちゃっていいんだっけ?と思って調べたらMSDNサイトにこんなことが。
トランザクション ログの切り捨てより

重要 :
BACKUP LOG ステートメントの NO_LOG オプションと TRUNCATE_ONLY オプションでは、バックアップ コピーを作成せずにログの非アクティブな部分が削除されるため、ログ チェーンが破壊されます。次の完全バックアップまたは差分バックアップまで、データベースをメディア障害から防ぐことはできません。この機能は、Microsoft SQL Server の次のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。

TRUNCATE_ONLYってなくなるんですね。この記述を素直に信じるとSQL Server 2008では使えないように読めますが、CTP入れた方いかがでしょうか?トランザクションログなんだから、ちゃんと最初からある程度の容量計算して、自動拡張されないようにしましょう。
OracleなんかでもREDOログのログスイッチが頻繁に起きないようにしましょうって書かれてますよね。今は変わったかな?ちなみに自宅のSQL Serverではメンテナンスプランを何もやっていなかった(というか、会社のもやってなかったorz)ので、とりあえず保守計画フルセットで入れてみました。

  • 整合性確認
  • 全データベースバックアップ
  • トランザクションログバックアップ
  • インデックスの再構築
  • 圧縮
  • 統計の更新
  • 履歴クリーンアップ

会社のだと毎日差分バックアップを取るように。Sharepointの構築/カスタマイズに関していろいろ書かれている方は多いけれど、バックアップ運用とかみないので、なかなか試行錯誤です。