26 Kasım 2007 Pazartesi

"Database 'veritabani_adı' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. (

HATA MESAJI:
"Database 'veritabani_adı' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. (Microsoft SQL Server, Error: 945)"

AÇIKLAMASI:
Veri ve Log dosyaları silinmiş bir veritabanına ulaşmaya çalıştığınızda bu hata ile karşılaşırsınız.

ÇÖZÜM:
Dosyalar zaten silindiği için yapabileceğiniz pek bir şey yoktur. En son aldığınız yedekten geri dönmeye çalışmanızı öneririm.

5 yorum:

Adsız dedi ki...

Böyle bir yorum olabilirmi ekrem bey,

Silinmiş diyorsun da, silinme vs yok,

bütün datalar yerinde duruyor.

Ekrem Önsoy dedi ki...

Sevgili adsız, bu günlüğümde yayınladığım yazıların %99'u benim birebir karşılaştığım durumlardır. Benim bu hata ile karşılaştığım durumda bu olay vuku bulmuştur ki ben de böyle kaydetmişimdir olayı. Aynı hata elbette başka durumlarda da oluşabilir, bunu hata mesajındaki "or"ların çokluğundan da anlayabiliriz. Senin durumun da elbette farklı olabilir.

Sana tavsiyem şu olabilir, SQL Server servis hesabının, ulaşmaya çalışılan SQL Server veritabanı dosyalarının bulunduğu klasöre erişim, okuma ve yazma yetkilerinin olup olmadığını, yoksa bu yetkileri SQL Server servis hesabına vermen.

Ayrıca tabii ki hata mesajında belirtilen RAM yeterliliği ve Diskte yeterli yer olup olmadığını da kontrol edebilirsin.

CELAL KÖSE dedi ki...

Aşağıdaki adımlar çözüme ulaşmanda yardımcı olabilir

use master
select databaseproperty('veritabaniadi','isShutdown')

2. use master
alter database dbname set offline

3. use master
alter database dbname set online

Ekrem Önsoy dedi ki...

Selam Celal,

Paylaştığın kod ancak şu adımlarda işe yarar:
- SQL Server servisi açıldığında ilgili veritabanı için bu Blog'taki hata alınır,
- Veritabanı / Sistem Yöneticisi veritabanı dosyalarının (Data / Log) bulunduğu klasör ve alt dosyalar için SQL Server servis hesabına gerekli yetkileri verir ki artık SQL Server servis hesabı bu dosyalara erişebilir ve değiştirebilir olur,
- Daha sonra bu paylaştığın kodlar çalıştırılır ve veritabanı açılır, sorun düzelmiş olur.

Bu bahsettiğin kod ancak böyle bir senaryoda bu sorunun çözümüne yardımcı olabilir.

Ekrem Önsoy dedi ki...

Selam Celal,

Paylaştığın kod ancak şu adımlarda işe yarar:
- SQL Server servisi açıldığında ilgili veritabanı için bu Blog'taki hata alınır,
- Veritabanı / Sistem Yöneticisi veritabanı dosyalarının (Data / Log) bulunduğu klasör ve alt dosyalar için SQL Server servis hesabına gerekli yetkileri verir ki artık SQL Server servis hesabı bu dosyalara erişebilir ve değiştirebilir olur,
- Daha sonra bu paylaştığın kodlar çalıştırılır ve veritabanı açılır, sorun düzelmiş olur.

Bu bahsettiğin kod ancak böyle bir senaryoda bu sorunun çözümüne yardımcı olabilir.