none
SQL Server 2005 で ログファイル が 拡張されない RRS feed

  • 質問

  • 初めて投稿させて頂きます。
    よろしくお願いします。

    ・環境

    OS:Windows XP sp3
    DB:SQL Server 2005

    ・質問

    Microsoft TechNet : SQL Server 2005 自習書シリーズ

    上記サイトの「管理編」「バックアップ・リカバリ」のpdf内「3.2 ログ ファイルの切り捨てとファイルの圧縮」について自習を進めているのですが、「前準備(ログの作成)」でログの容量を意図的に増やす事が出来ずに行き詰っています。

    DBのプロパティから
    DBの復旧モデルを「完全」とする
    ログの自動拡張を「10 MB 単位。1024 MB までに拡張を制限。」とする

    テーブル作成

    CREATE TABLE [dbo].[TestTable](
     [id] [int] NOT NULL
    ) ON [PRIMARY]
    

    上記テーブルに 「id」=1 のレコードを1つ作成

    下記の処理を実行

    declare @i int
    set @i = 0
    while @i < 100000
    begin
    UPDATE [TestTable]
     SET id = 1
     WHERE id = 1
     set @i = @i + 1
    end
    

    参考にしているpdfから、この作業でログファイルが52MB程に増えると解釈しているのですが、初期サイズの1MBからいっこうに増えません。

    1分程かかるアップデート処理中に、「レポート」>「ディスク使用量」を何度か更新しながら見ていると、「トランザクションログの使用領域」は1MBで変化ぜず、「使用済み」の領域の割合が増えたり減ったりしています。

    何かアドバイスを頂けないでしょうか。
    2011年4月6日 6:25

回答

  • 質問を読んでいただいた方、お手数をおかけしました。

    自己解決いたしました。

    「完全」バックアップを行ったところ、以後順調にログファイルの容量が増えるようになりました。

    DB作成時や単純復旧モデルから「完全」へ変更した時等は、一度「完全」バックアップを取らないといけないようです。

    ログの容量が増えず、使用領域が増えてもすぐまた減るところから、「これは「単純」復旧モデルのログの動きにあたるのでは…。」と初心者ながら考えた末、「あれ?復旧の仕組み的に完全バックアップが必須なのかな?それでバックアップ前は「単純」復旧モデルの動きなのか?」という考えに行きつき、なんとか解決となりました。

    振り返ってみれば、「仕組み」からして当たり前の事とも思いますが、まだまだ知識が身に染み込んでいない状態ゆえに、半日以上手間取ってしまいました…。

    まぁ、自習書の初めからDBを消さずに使っていけば、バックアップを取るステップもあるのですんなり通過できたんでしょうね。

    DBを作ったり消したりと余分にしていたら良い勉強をするはめになりました^^;

    2011年4月6日 7:53