web-dev-qa-db-ja.com

SQL Server 2008のログファイルには最小サイズがあります。何が得られ、どのように小さくすることができますか?

まず、データベースを作成するときに、大まかに次のような作成スクリプトを使用して失敗しました(折り返しの目的での人工的な改行と名前/パス)。

CREATE DATABASE [EXAMPLE] ON  PRIMARY 
( NAME = N'EXAMPLE_Data', FILENAME = N'J:\SQLServer2008\MSSQL.INSTANCE\EXAMPLE.mdf', 
    SIZE = 446046KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
 LOG ON 
( NAME = N'EXAMPLE_Log', FILENAME = N'J:\SQLServer2008\MSSQL.INSTANCE\EXAMPLE.ldf', 
    SIZE = 664505KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

既存の開発データベースからスクリプトを作成し、何かを実行したかっただけです。サイズを適切なもの(4096KBなど)に変更しないと失敗し、ログファイルを約600MB以下に縮小できません。

どこで問題が発生したかはわかっていますが、簡単に修正するにはどうすればよいですか?

7
jcolebrand
  1. データベースを切り離します。

    sp_detach_db @dbname = 'EXAMPLE'

  2. ディスクからログファイルを物理的に削除します(これはcrucialですが、危険な場合があります-以下の mrdenny のコメントを参照)。

  3. sp_attach_single_file_dbストアドプロシージャを使用してデータベースをアタッチします。

    sp_attach_single_file_db @dbname = 'EXAMPLE', @physname = N'J:\SQLServer2008\MSSQL.INSTANCE\EXAMPLE.mdf'

7

SSMSにアクセスするための十分な権限があることを願っています。その場合は、次の手順に従ってください

  1. SSMSを開く
  2. SQL Server Instacneに接続する
  3. オブジェクトエクスプローラーを開き、データベース(ログファイルの最小サイズを縮小する)を右クリックして、[プロパティ]を選択します。
  4. 「プロパティ」ウィンドウから「ファイル」を選択します
  5. 右下にデータベースファイルグリッドが表示されます
  6. [追加]をクリックして新しいログファイルを追加します。
    • 論理名
    • ファイルタイプ=ログ
    • 初期サイズ= 1 MB(またはお好み)
    • Autogrowthをクリックして、それに応じて設定を行います
    • ファイル名
  7. 次に、既存のログ行をクリックして、「削除」を選択します
  8. それでおしまい!これで、希望する最小サイズの新しいログファイルができました。

alt text

5
CoderHawk