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

メンテナンス プランは、データベース サイズやトランザクション ログのファイル サイズを小さく保ち、データベースに不整合がないかをチェックするなど、データベースの性能を確保するのに必要なタスクをスケジュールするために使用できます。

Autodeskは、少なくとも週 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. データ ファイル数は、使用可能な論理/仮想プロセッサの数と同じである必要があります。たとえば、マシンに 12 個の論理プロセッサがある場合、.mdf ファイル数が 1、.ndf ファイル数が 11 などになります。ディスク容量が重要な場合は、1024 MB ではなく 512 MB の「サイズ」を使用できます。

      注: SQL 2016 以降の場合、データ ファイルの既定値は8またはセットアップで検出された論理コア数の低い方の値になります。この値は、特定のワークロードの必要に応じて増やすことができます。セカンダリ データ ファイルのファイル名は、tempdb_mssql_#.ndf 命名規則に従います。# は、追加される各ファイルの順序を表します。

    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 2016(130)]に設定します。
    注: システム データベースはAutodeskが定義するものではなく、既定の互換性レベル(2016 など)のままにしておくことが安全です。ユーザ データベース、KVM、およびその他の Vault データベースは、2016年の互換性レベルにとどめておく必要があります。
  7. [OK]をクリックします。

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

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

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

SQL Standard/Enterprise 2016.

  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 2016(130)]に変更し、[自動縮小]ドロップダウン リストを[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 メンテナンス プランを実行している OS (Windows)ユーザが SQL 内で sysadmin ロールを所有していることを確認します。

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

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

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

    SQLCMD -E -S".\AutodeskVault" -Q "ALTER DATABASE [tempdb] SET COMPATIBILITY_LEVEL = 110"
    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データディレクトリと同じ場所である必要があります。この例のファイル システムのパスは、C:¥Program Files¥Microsoft SQL Server¥MSSQL10.AUTODESKVAULT¥MSSQL¥DATA です。正しいパスが表示されるように、スクリプトを修正することができます。
    1. データ ファイル数は、使用可能な論理/仮想プロセッサの数と同じである必要があります。たとえば、マシンに 12 個の論理プロセッサがある場合、.mdf ファイル数が 1、.ndf ファイル数が 11 などになります。ディスク容量が重要な場合は、1024 MB ではなく 512 MB の「サイズ」を使用できます。

      注: SQL 2016 以降の場合、データ ファイルの既定値は8またはセットアップで検出された論理コア数の低い方の値になります。この値は、特定のワークロードの必要に応じて増やすことができます。セカンダリ データ ファイルのファイル名は、tempdb_mssql_#.ndf 命名規則に従います。# は、各追加ファイルのファイル序数を表します。

      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 110
    sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET 
    COMPATIBILITY_LEVEL = 110"
    @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.