サーバのメンテナンス(パート 6): SQL メンテナンス プランを作成する

メンテナンス プランを使用して、データベース サイズおよびトランザクション ログ ファイル サイズを小さく維持したり、データベースの不整合をチェックするなど、データベースが正常に動作することを確認するために必要なタスクのスケジュールを設定することができます。毎週 1 回以上、就業時間外にメンテナンス プランを実行することをお進めします。

接続ワークグループ環境では、SQL サーバごとにメンテナンス プランを設定する必要があります。

管理者タスクの一環として、メンテナンス プランが正常に実行されたことを定期的に確認する必要があります。

Vault Server の旧リリースにメンテナンス プランが設定されている場合は、このトピックの内容に基づいてメンテナンス プランの確認と更新を行ってください。

次の手順は、Vault Server (Express およびフル バージョンの SQL)と併用するすべてのバージョンの SQL に適用できます。対応データベース エンジンの完全なリストについては、製品の Readme ファイルを参照してください。

注: SQL Express を実行していて、SQL Management Studio がインストールされていない場合、コマンド プロンプトから「Microsoft SQL Express 用のメンテナンス スクリプトを作成する」セクションに記載されているスクリプトを使用して、次の手順を実行することができます。また、SQL Management Studio for Express (Microsoft の Web サイトから入手可能)をインストールすることもできます。
  1. SQL Management Studio にログインします。
  2. データベースの展開、システム データベースを展開します。
  3. tempdb を右クリックし、[プロパティ]を選択します。
  4. [ファイル]ページを選択します。
  5. マルチコア システムを使用している場合は、次のガイドラインに従って追加のデータ ファイルを設定する必要があります。シングルコア システムを使用している場合は、手順 d に進みます。
    1. データ ファイルの合計数は、使用可能な物理プロセシング コアの個数の半分にする必要があり、データ ファイルの最大数は 8 個です(例: 物理コア数が 8 の場合、データ ファイルの合計数 4、つまり tempdev、tempdev_2、tempdev_3、tempdev_4 の 4 つになります)。
    2. データ ファイルを追加するには、[追加]ボタンをクリックします。
    3. 必要に応じて、新しいファイルに tempdev_2、tempdev_3 などの名前を付けます。
    4. 各データファイルの初期サイズを 1,024 MB に設定します。データ ファイルを合計で 8 個使用する場合は、512 MB の初期サイズを指定することができます。
    5. データ ファイルごとに[自動拡張]を100 MB (無制限の拡張)に設定します。
    6. LDF ログ ファイルのサイズを、データ ファイルの合計サイズに設定します(例: データ ファイルの合計数が 2 個の場合、LDF を初期サイズ 2048 MB に設定する必要があります)。
    7. 次のイメージのような結果が表示されます。
  6. [オプション]ページで、[復旧モデル]を[単純]、[互換性レベル]を[SQL Server 2008 (100)]に設定します。
  7. [OK]をクリックします。

フル バージョンの SQL の SQL メンテナンス プランを作成する

メンテナンス プランは、データベース サイズおよびトランザクション ログ ファイル サイズを小さく維持したり、データベースの不整合性をチェックするなど、データベースが正常に動作することを確認するために必要なタスクをスケジュール化するために使用できます。

注: これらの設定はオートデスクが推奨するものであり、新規のインストール時に自動的に設定されます。Vault Server の旧リリースからマイグレーションした場合、これらの設定は管理者により意図的に変更されている可能性があるため適用されません。

SQL Standard/Enterprise 2008 および 2008 R2

  1. 先に進む前に、Autodesk Vault Server Console を使用して Vault がバックアップされていることを確認してください。
  2. すべてのユーザが Vault からログアウトしているか確認します。
  3. [コントロール パネル]の[管理ツール]をダブルクリックし、[サービス]アイコンをダブルクリックします。
  4. [SQL Server Agent (AUTODESKVAULT)]サービスを選択します。
  5. [SQL Server Agent (AUTODESKVAULT)]サービスを右クリックし、[プロパティ]を選択します。
  6. . [スタートアップ タイプ]を[自動]に変更して、サービスを開始します。
  7. Microsoft SQL Server Management Studio を開いて、Autodesk Vault インスタンスに接続します。サーバ名として<コンピュータ名>¥AutodeskVault を使用して、[接続]をクリックします。
  8. Vault データベースを右クリックし、[プロパティ]を選択します。
  9. [ファイル]ページで、次の項目を設定します。
    • すべての <Vault> データベースの[自動拡張]を、最大 100 MB、拡張制限なしに設定する。
    • すべての <Vault>_log ファイルの初期サイズを 500 MB に設定する。
    • <Custom_Library> ファイルの[自動拡張]値を 25 MB に設定する。
    • すべての _log ファイルの[自動拡張]値を、最大 10 %、拡張制限なしに設定する。

    同じ内容を表形式で示します。

    論理名

    初期サイズ(MB)

    自動拡張

    KnowledgeVaultMaster

    最大 10 MB、拡張制限なし

    KnowledgeVaultMaster_log

    最大 10 %、拡張制限なし

    <Vault>

    最大 100 MB、拡張制限なし

    <Vault>_log

    500

    最大 10 %、拡張制限なし

    <Custom_Library>

    最大 25 MB、拡張制限なし

    <Custom_Library>_log

    最大 10 %、拡張制限なし

    <Standard_Library>

    最大 25 MB、拡張制限なし

    <Standard_Library>_log

    最大 10 %、拡張制限なし

    注: 上の表の空白セルは、既定の設定を変更してはいけないことを示します。
    グレーのセルは既定値を示し、値が異なる場合は表の値に設定する必要があります。
  10. [オプション]ページで、[復旧モデル]を[単純]、[互換性レベル]を[SQL Server 2008 (100)]に変更し、[自動縮小]ドロップダウン リストを[False]に変更します。[自動]見出しの下にあるすべての値が、次に示す値に設定されます。
  11. KnowledgeVaultMaster、Vault、Library Vault のすべてのデータベースについて、手順 8 ~ 10 を実行します。
  12. [管理]フォルダを展開して、[メンテナンス プラン]フォルダを選択します。
  13. [メンテナンス プラン]フォルダを右クリックし、[メンテナンス プラン ウィザード]を選択します。次のダイアログが表示されたら[次へ]をクリックします。
  14. [プランのプロパティを選択]ダイアログで、名前として Vault メンテナンス プランを入力し、[変更]ボタンをクリックしてスケジュールを設定します。
  15. [ジョブ スケジュールのプロパティ]ダイアログで、Autodesk Vault Server Console バックアップの終了後に実行するプランを設定します。データセットのサイズによっては、週の別の日時にこのスケジュールを実行しなければならない場合があります。このタスクを土曜日に実行して、完了までにかかる時間を確認してから、このジョブを定期的に実行する日時を決定することができます。
  16. [メンテナンス タスクの選択]ダイアログで、次のオプションをオンにします。
  17. [メンテナンス タスクの順序を選択]ダイアログで、順序を次のように設定します。
  18. [データベースの整合性確認タスクの定義]ダイアログで、[データベース]ドロップダウン リストから[すべてのユーザ データベース]を選択し、[インデックスを含める]の横にあるチェック ボックスをオンにします。
  19. [インデックスの再構築タスクの定義]ダイアログで、[データベース]ドロップダウン リストから[すべてのユーザ データベース]を選択します。
  20. [統計の更新タスクの定義]ダイアログで、次のオプションを選択します。
  21. [履歴のクリーンアップ タスクの定義]ダイアログで、必要に応じてクリーンアップ オプションを選択します。
  22. [レポート オプションの選択]ダイアログで、メンテナンス レポートの場所を指定します。
  23. [次へ]をクリックしてから、[終了]をクリックします。

Microsoft SQL Express のメンテナンス スクリプトを作成する

Microsoft SQL Express では SQL Server Management Studio Express 内部でメンテナンス プランを作成できません。さらに、SQL 2008 では、SQL 2005 からセキュリティ モデルが変更されています。SQL メンテナンス プランを実行している OS (Windows)ユーザが SQL 内で sysadmin ロールを所有していることを確認する必要もあります。

コマンド プロンプトからの tempdb の変更

    このセクションで前述したように、SQL Server Management Studio がインストールされていない場合、次の手順を実行することにより、コマンド プロンプトから tempdb データベースを変更することができます。

  1. 管理者としてコマンド プロンプトを開きます。
  2. 次の各行をコピーし、コマンド プロンプトに貼り付けて[Enter]を押します。

    SQLCMD -E -S".\AutodeskVault" -Q "ALTER DATABASE [tempdb] SET COMPATIBILITY_LEVEL = 100"
    SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = 
    N'tempdev', SIZE = 1024MB, FILEGROWTH = 100MB)"
    SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = 
    N'templog', SIZE = 1024MB )"
  3. マルチコア システムを使用している場合は、次のガイドラインに従って追加のデータ ファイルを設定する必要があります。* * 注: FILENAME = で使用するファイル システムのパスは、SQL データ フォルダと同じ場所にする必要があります。この例のファイル システムのパスは、N'C:¥Program Files¥Microsoft SQL Server¥MSSQL10.AUTODESKVAULT¥MSSQL¥DATA です。正しいパスが表示されるように、スクリプトを修正することができます。
    1. データ ファイルの合計数は、使用可能な物理プロセシング コアの個数の半分にする必要があり、データ ファイルの最大数は 8 個ですデータ ファイルを合計で 8 個使用する場合は、初期サイズとして、次に示す 1024 MB ではなく 512 MB を指定することができます。(例: 物理コア数が 8 の場合、データ ファイルの合計数 4、つまり tempdev、tempdev_2、tempdev_3、tempdev_4 の 4 つになります)。
      SQLCMD -E -S ".\AutodeskVault" -Q " ALTER DATABASE [tempdb] ADD FILE ( NAME = 
      N'tempdev_2', FILENAME = N'C:\Program Files\Microsoft SQL 
      Server\MSSQL10.AUTODESKVAULT\MSSQL\DATA\tempdev_2.ndf', SIZE = 1024MB, 
      FILEGROWTH = 100MB)"
    2. 追加のデータ ファイルを作成する必要がある場合は、NAME と FILENAME の両方について、tempdev_3 などを反映するように上の例を修正します。
    3. LDF ログ ファイルのサイズを、データ ファイルの合計サイズに設定します(例: データ ファイルの合計数が 2 個の場合、LDF を初期サイズ 2048 MB に設定する必要があります)。
      SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( 
      NAME = N'templog', SIZE = 2048MB )"

メンテナンス プラン

    次のスクリプトをコピーし、新しいファイルに貼り付けてから、VaultMaintenance.bat というファイル名で保存します。

    次の例では、C:¥ のルートで、Vault という名前のデータベースに対してバッチ ファイルを実行し、その結果をテキスト ファイルに出力します。

    C:\VaultMaintenance.bat Vault > results.txt
    注: このドキュメントから直接コピーして貼り付ける場合は、改行記号を修復する必要があります。さらに、メンテナンス プランを実行するユーザは、SQL 内でその権限を所有している必要があることに注意してください。その設定は、SQL のインストール中またはインストール後に行うことができます。
    REM This begins the maintenance plan.
    @echo off
    if "%1"=="" goto NOPARAM
    set VAULTNAME=[%1]
    set VAULTLOG=[%1_log]
    @echo Setting %VAULTNAME% database compatibility to 100
    sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET 
    COMPATIBILITY_LEVEL = 100"
    @echo Setting %VAULTNAME% database recovery model to simple...
    sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET RECOVERY 
    SIMPLE"
    @echo Setting %VAULTNAME% database Autogrowth value...
    sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME%  MODIFY FILE 
    (NAME=%VAULTNAME%, FILEGROWTH=100MB)"
    @echo Setting %VAULTNAME% database Log filesize...
    sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% MODIFY FILE ( NAME = 
    %VAULTLOG%, SIZE = 512000KB )"
    @echo Setting %VAULTNAME% database Autoclose to false...
    sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET AUTO_CLOSE OFF 
    WITH NO_WAIT"
    @echo Reindexing %VAULTNAME% database...
    sqlcmd -E -S ".\AutodeskVault" -Q "USE %VAULTNAME% DECLARE tableCursor CURSOR FOR 
    SELECT NAME FROM sysobjects WHERE xtype in('U') DECLARE @tableName nvarchar(128) 
    OPEN tableCursor FETCH NEXT FROM tableCursor INTO @tableName WHILE 
    @@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX(@tableName, '') FETCH NEXT FROM 
    tableCursor INTO @tableName END CLOSE tableCursor DEALLOCATE tableCursor"
    @echo Updating Statistics on %VAULTNAME% database...
    sqlcmd -E -S ".\AutodeskVault" -Q "USE %VAULTNAME% Exec sp_MSForEachTable 'Update 
    Statistics ? WITH FULLSCAN'"
    goto EXIT
    :NOPARAM
    echo [FAIL] Please indicate Vault database
    pause
    :EXIT
    REM This ends the maintenance plan.