Database cannot be upgraded because it is read-only or has read-only files

SQL Server, Oracle Add comments

Birkaç gün önce sunucu iyileştirme kapsamında SQL Server 2008 instance üzerinde bulunan bir veritabanını detach edip network üzerinden ikinci sunucuya kopyalayıp aynı şekilde SQL Server 2008 R2 üzerine attach etmeye çalışırken aşağıdaki hatayla karşılaştım.

Msg 3415, Level 16, State 3, Line 1
Database [database_name] cannot be upgraded because it is read-only or has read-only files. Make the database or files writeable, and rerun recovery.
Msg 1813, Level 16, State 2, Line 1
Could not open new database [database_name]. CREATE DATABASE is aborted.

Mesajın içeriÄŸine bakınca database dosyalarının iÅŸletim sistemi üzerinde salt-okunur olduÄŸunu düşündüm. Oysa dosyaları read-only durumda deÄŸildi. SQL Server’i çalıştıran kullanıcının permission ayarlarına baktım onlar da full görünüyordu. Yaptığım araÅŸtırmalarda bu iÅŸin nedenlerinin farklı olabileceÄŸi ve farklı ÅŸekillerde çözülebileceÄŸi söyleniyor. Muhtemel neden ve çözümleri aÅŸağıda bulabilirsiniz;

Öncelikle bu dosyaların attach edilmesi esnasında başka bir instance tarafından kullanılmadığında ve dosya özelliklerinden ve ya kullanıcı yetkilerinden salt-okunur olmadıklarından emin olmamız gerekiyor.

Birinci çözüm olarak “Everyone” kullanıcısına full access yetkisi verilir. Dosyalar attach edildikten sonra iÅŸlem baÅŸarılı olduktan sonra Everyone yetkisi geri alınır.

İkinci çözüm veya sorunun nedeni olarak SQL Server kullanıcısına bakılabilir. Benim sorunum buydu. SQL Server servisi AUTHORITY\NETWORKSERVICE kullanıcısıyla başlatılmıştı. Bu kullanıcının attach etmek hakkı olmadığı için servis kullanıcısını LOCAL ACCOUNT olarak değiştirince sorun çözüldü.

Leave a Reply


3 × = 9

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS GiriÅŸ