Instant File Initialization
CREATE DATABASE [CreateDatabase100GB] CONTAINMENT = NONE ON PRIMARY ( NAME = N'CreateDatabase100GB', FILENAME = N'H:\CreateDatabase100GB.mdf' , SIZE = 104857600KB , FILEGROWTH = 1048576KB ) LOG ON ( NAME = N'CreateDatabase100GB_log', FILENAME = N'H:\CreateDatabase100GB_log.ldf' , SIZE = 262144KB , FILEGROWTH = 262144KB ) GO
Instant File Initialization ’ı aktif hale getirden sonra ise aynı işlem aşağıda da görüldüğü gibi 3 saniye sürdü.
2. Var olan bir veritabanına data file ekleme;
Oluşturduğumuz CreateDatabase100GB veritabanına 20 gb boyutu olan bir data file ekleyelim.
Instant File Initialization aktif değilken bu işlemi gerçekleştirdiğimde 1 dakika 1 saniye sürdü.
USE [master] GO ALTER DATABASE [CreateDatabase100GB] ADD FILE ( NAME = N'CreateDatabase100GB_2', FILENAME = N'H:\CreateDatabase100GB_2.ndf' , SIZE = 20971520KB , FILEGROWTH = 1048576KB ) TO FILEGROUP [PRIMARY] GO
Instant File Initialization ’ı aktif hale getirden sonra ise aynı işlem aşağıda da görüldüğü gibi 1 saniyeden daha kısa bir sürede tamamlandı.
3. Var olan bir veritabanının data file boyutunu arttırma ya da autogrowth ile bu işlemin gerçekleşmesi;
CreateDatabase100GB_2 olarak eklediğimiz file’ın boyutunu 30 gb arttırmamız Instant File Initialization
aktif değilken 1 dakika 42 saniye sürdü.
Instant File Initialization ’ı aktif hale getirden sonra ise aynı işlem aşağıda da görüldüğü gibi 1 saniyeden daha kısa bir sürede tamamlandı.
4. Var olmayan bir veritabanını restore etmek;
CreateDatabase100GB olarak oluşturduğumuz veritabanının son hali 150 GB oldu. Şimdi bu veritabanının backup’ını alıp silelim. Instant File Initialization aktif değilken bu backup’ı restore ettiğimizde 12 dakika 1 saniye sürdü.
Instant File Initialization ’ı aktif hale getirden sonra ise aynı işlem aşağıda da görüldüğü gibi 3 saniye sürdü.
SQL Server Servis Hesabını Perform Volume Maintenance Tasks Üzerinde Yetkilendirmek:
Başlangıç’tan search program and files kısmına aşağıda görüldüğü gibi gpedit.msc yazıyoruz.
Daha sonra açılan Local Group Policy Editor’den sırasıyla, Computer Configuration->Windows Settings->Security Settings->Local Policies->User Rights Assingment seçilir. Daha sonra Perform Volume Maintenance Tasks üzerinde sağ tıklanarak properties seçilir.
Açılan pencerede add user or group tıklanarak sql server servis hesabına gerekli yetki verilmiş olur. SQL Server Servis hesabını restart ederek bu işlem tamamlanır. Tabi sistemin çalışmadığı bir zaman diliminde bu işlemi yapmak gerekir.
Instant File Initialization aktif hale getirilirse beraberinde getireceği güvenlik riskleri:
Perform Volume Maintenance Task üzerinde SQL Server Servis hesabını yetkilendirdiğimizde, sql server tarafından talep edilen disk allocation anında, talep edilen alanın 0’lar ile doldurulmadan sql server’a tahsis edildiğini konuşmuştuk. Ama sql server tarafından alınan bu alan üzerinde oluşan data silindiğinde üzerine 0 yazılmadan tekrar windows’a iadesi yapılıyor. Ve Data üzerinde encryption yoksa sunucu üzerinde yetkili biri çeşitli tool’ları kullanarak SQL Server’ın iade ettiği bu alanı okuyabilir.