MSSQL Server Recovery Pending Modunda Olan Veritabınını Kurtarma

Bu makalede veritabanının recovery pending modunda olduğu durumda neler yapılır konusuna değinmiş olacağız. Recovery pending yapısına veritabanının girme nedeni  mssql server hataları, mdf veya ldf dosyalarının bozulması, sistemin aniden kapanması, diskte yeterli alan kalmamasından, donanım arızaları ve ani elektrik kesintileri sebep olmuş olabilir.

Genellikle bu gibi durumlarda veritabanı erişilemez duruma gelmektedir.

Şimdi recovery pending modunda olan veritabanı için izlenecek yola değinelim. Aşağıdaki  adımları yapmamız için sysadmin olmanız gerekmektedir.

Veritabanınız suspect mode’a düştüğünü aşağıdaki komut ile teyit ederiz.

SELECT DATABASEPROPERTYEX (N'GOCDB', N'STATUS') AS N'Status';

Not: Veritabanımız küçükse hazırda olan backup dosyamız varsa herhangi bir veri kaybı olmadan restore işlemini gerçekleştirebiliriz.

Suspect modu sıfırlamak için aşağıdaki komut kullanılır.

EXEC SP_RESETSTATUS 'GOCDB';

Veritabanı bakımını güvenli bir şekilde yapmak için emergency modu kullanılır.

ALTER DATABASE GOCDB SET EMERGENCY

Aşağıdaki komutla veritabanımızı tek kullanıcı moduna alıyoruz. Ardından veritabanı üzerinde veri kaybına sebep olabilecek ve bütün hataları düzeltecek repair_allow_data_loss komutunu kullanıyoruz. REPAIR_REBULID komutu ile veri kaybı olmadan düzeltme yapabiliriz. Bu karar aşamasını DBCC CHECKDB(‘GOCDB’) komutunu başlangıçta çalıştırarak karar verebiliriz. Tüm komutları bir araya getirirsek aşağıdaki komutları çalıştırdığımızda veritabanımız recovery pending modundan çıkacaktır.

ALTER DATABASE GOCDB SET EMERGENCY
ALTER DATABASE GOCDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB ('GOCDB', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS; --REPAIR_REBUILD

ALTER DATABASE GOCDB SET online;

ALTER DATABASE GOCDB SET MULTI_USER

Yukarıdaki komutlardan sonra veritabanımız recovery pending modundan çıkmış bulunmaktadır.

Bu makalede sql server üzerinde bulunan veritabanının recovery pending moduna düştükten sonra yapılması gereken işlemleri ele almış olduk.

Not: İlk olarak page bazında bozukluk tespit edilirse page bazında düzenleme yapılmalıdır. Ama genellikle page bazı bozulma göremeyiz. Sebebi: Recovery pending genel olarak ldf dosyası geri yüklenemediğinden dolayı olur. DBCC CHECKDB çalışmaz (önce emergency moda almalısın) msdb.dbo.suspect_pages genelde boş olabilir. MDF/LDF sorunları nedeniyle recovery işlemi yarım kalıyor. suspect modunda ise diskte hata oluşmaktadır. Recovery pending modunda msdb.dbo.suspect_pages genelde boş olabilir. Suspect modun da dolu olur. Suspect modunda Bozuk page’ler tespit edilebilir(örn: checksum hatası)

Başka bir makalede görüşmek dileğiyle..

“O Allah ki, yeryüzünü enine boyuna yayıp genişletti, oraya yerinden oynatılamaz dağlar yerleştirdi, nehirler akıttı ve orada her bir ürünü çifter çifter yetiştirdi. O, sürekli olarak geceyi de gündüze bürüyüp duruyor. Doğrusu bütün bunlarda, sistemli düşünebilen kimseler için nice deliller, alınacak nice dersler vardır.” Rad-3

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir