超まとめ
先の記事で、PREEMPTIVE_OS_WRITEFILEGATHERについて説明をしましたが、このファイルのゼロ埋め初期化処理はSQL ServerのInstat File Initialization(ファイルの瞬時初期化)を有効にしてやればスキップすることができます。
どうすればInstat File Initializationが有効になるか
SQL Serverに「Instat File Initializationを有効にする」という設定があるわけではなく、SQL Serverのサービスを実行しているユーザーに「SeManageVolumePrivilege」ユーザー権利を付与することで、有効になります。
具体的な手順
- SQL Server構成マネージャーで、SQL Serverサービスを実行しているユーザーを確認しておきます。今回の例では、NT AUTHORITY\NETWORKSERVICEです。
- secpol.msc(ローカルセキュリティポリシー)を起動します。
- 左ペインで[ローカルポリシー] → 「ユーザー権利の割り当て]を選択します。
右ペインで「ボリュームの保守タスクを実行」を探します。
- 右クリックして[プロパティ]を選択します。
- ここに一番最初に確認したSQL Serverサービスを実行しているアカウント を追加するために、[ユーザーまたはグループの追加]をクリックします。
- 一番最初に確認したSQL Serverサービスを実行しているアカウントを入力して[OK]をクリックします。
- 追加されました。
- 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復元を高速化する”