[SQLServer]Instant File Initialization(ファイル瞬時初期化)を有効化してDB復元を高速化する

超まとめ

先の記事で、PREEMPTIVE_OS_WRITEFILEGATHERについて説明をしましたが、このファイルのゼロ埋め初期化処理はSQL ServerのInstat File Initialization(ファイルの瞬時初期化)を有効にしてやればスキップすることができます。

どうすればInstat File Initializationが有効になるか

SQL Serverに「Instat File Initializationを有効にする」という設定があるわけではなく、SQL Serverのサービスを実行しているユーザーに「SeManageVolumePrivilege」ユーザー権利を付与することで、有効になります。

具体的な手順

  1. SQL Server構成マネージャーで、SQL Serverサービスを実行しているユーザーを確認しておきます。今回の例では、NT AUTHORITY\NETWORKSERVICEです。
  2. secpol.msc(ローカルセキュリティポリシー)を起動します。
  3. 左ペインで[ローカルポリシー] → 「ユーザー権利の割り当て]を選択します。
    右ペインで「ボリュームの保守タスクを実行」を探します。
  4. 右クリックして[プロパティ]を選択します。
  5. ここに一番最初に確認したSQL Serverサービスを実行しているアカウント を追加するために、[ユーザーまたはグループの追加]をクリックします。
  6. 一番最初に確認したSQL Serverサービスを実行しているアカウントを入力して[OK]をクリックします。
  7. 追加されました。
  8. SQL Serverのサービスを再起動して完了です。

設定結果の確認

Process Explorerで権利の様子を確認すると、付与した権利が付いていることがわかります。

参照情報

https://technet.microsoft.com/en-us/library/ms175935%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396
https://technet.microsoft.com/ja-jp/library/ms175935(v=sql.105).aspx?f=255&mspperror=-2147217396
https://www.sqlskills.com/help/waits/preemptive_os_writefilegather/
http://www.sqlserver-dba.com/2012/10/sql-server-preemptive_os_writefilegather-and-how-to-reduce-it.html
http://www.sqlshack.com/sql-server-wait-type-preemptive-os-writefilegather/
https://sqltimes.wordpress.com/2013/11/20/sql-server-preemptive_os_writefilegather-wait-statistic/
http://blog.engineer-memo.com/2011/04/03/%E3%83%AA%E3%82%B9%E3%83%88%E3%82%A2%E6%99%82%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%9E%AC%E6%99%82%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

One Reply to “[SQLServer]Instant File Initialization(ファイル瞬時初期化)を有効化してDB復元を高速化する”

コメントを残す