Bu makalemde sizlere SQL Server’da veritabanların anlık durumlarından bahsedeceğim.
1.ONLINE
Çevrimiçi durumda olan veritabanı son kullanıcıların erişimine ve çalışabilmeleri için çevrimiçi olma durumudur. Primay Data File çevrimiçi olmasına rağmen recovery aşamasının kritik veritabanı kurtarma işlemi hala tam olarak tamamlanmamış olabilir. Veritabanının sağlıklı bir şekilde çalışması gereken durumdur.
Aşağıdaki örnek gibi veritabanı adının yanında parantez içinde bir durum belirtilmemişse Online durumda olduğunun göstergesidir.
Resim-1
2.OFFLINE
Çevrimdışı durumdayken, veritabanı kullanıcı erişimine ve işlem yapma eylemleri için aktif olmadığının göstergesidir. Yalnızca bir kullanıcının müdahalesi ile veritabanı Offline duruma getirilebilir. Neden Offline duruma alma ihtiyacı duyarız diye örnek verecek olursak, bir önceki SQL Server Veritabanı Üzerindeki Dosyaları Farklı Bir Klasöre Taşıma adlı makalemde bu duruma örnek verilebilir. Veritabanının dosya veya dosyalarının farklı bir konuma taşımak istediğimizde Offline duruma alarak veritabanına o an gelecek olan bağlantıları engellemeye yardımcı olur. Veritabanını Offline duruma alabilmek için aşağıdaki scriptten faydalanabiliriz.
ALTER DATABASE [DEMO] SET OFFLINE
GO
Resim-2
Resim-3
İşlemlerimiz tamamlandıktan veritabanımızı ONLINE duruma çekmek için de aşağıdaki scripti çalıştırabiliriz:
ALTER DATABASE [DEMO] SET ONLINE
GO
3.RESTORING
Bu durumda da veritabanı kullanılamaz durumdadır. Primary Filegroup un bir veya daha fazla file ının geri yüklendiğinin yada bir veya daha fazla secondary file çevrimdışı olarak geri yüklendiğinin belirtisidir.
Resim-4
4.RECOVERING
Bu durum veritabanının kurtarma işlemi gerçekleştirdiği geçici bir durumdur ve veritabanı başlatıldıktan sonra kurtarma işlemi başarıyla tamamlanırsa otomatik olarak çevrimiçi hale gelir.
Kurtarma işlemi, veri tabanı kapatılırken gerçekleştirilen ve henüz veri tabanı veri dosyalarına yazılmamış tüm işlemlerin işleneceği Roll Forward aşaması olmak üzere iki ana aşamadan oluşur. Geri alma aşamasında veritabanı kapatılırken commitlenmemiş tüm işlemler geri alınır.Kurtarma işleminin başarısız olma durumunda SUSPECT durumuna gelir ve veritabanı kullanılamaz hale gelir. Kurtarma durumu esnasında veritabanı kullanıcılar tarafından kullanılamayacaktır.
5.RECOVERY PENDING
Veritabanının Recovery Pending durumunda kalması eksik dosyalar nedeniyle veya potansiyel olarak kaynak problemlerinden veritabanı kurtarma işleminin başarısız olduğu, veritabanının başarılı olarak kurtarılmasını engellediğini ifade eder. Veritabanı bu durum ile zarar görmemektedir ancak kullanıcıların erişimi için kullanılamayacak ve hata çözümü ve kullanılabilir duruma getirebilmek için ek bir kullanıcı eylemi gerekmektedir.
Resim-5
6.SUSPECT
Bu durum ile veritabanının kullanıcı erişimi için uygun olmadığını belirtir. Veritabanının kurtarma durumunun başlayıp başarıyla tamamlanamadığı durumunda, Primary Data File üzerinde hasar olduğunda gözlemleyebiliriz. Sorunun düzelmesi için kullanıcı eylemi gerektirir. SQL Server veritabanı dosyalarının bozulması, kullanılamayan veritabanı dosyaları veya büyük bir işlem çalıştırılırken veritabanı sunucusunun uygun olmayan şekilde kapatılması gibi birçok nedenden dolayı veritabanı SUSPECT durumuna düşer.
Resim-6
7.EMERGENCY
Veritabanı bakımının güvenli bir şekilde gerçekleştirmek veya sorun gidermek amacıyla sysadmin kullanıcının müdahalesiyle veritabanı EMERGENCY durumuna alınabilir. Veritabanında onarılacak veya geri yüklenecek, veritabanından dışarı aktarabileceğiniz READ_ONLY olarak işaretlenecek, günlük kaydı devre dışı bırakılacak ve erişim yalnızca sysadmin rol üyeleriyle sınırlı olacak şekilde tek kullanıcı modunda olacaktır.
ALTER DATABASE [DEMO] SET EMERGENCY
GO
Resim-7
Resim-8
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: Online, Offline, Suspect, Emergency, Recovering, Recovery Pending, Restoring, Database State, SQL Server, Database States, Database States in SQL Server, SQL Server veritabanı durumları