Idf ve mdf dosyaları göndermede çıkan “iznin yok” hatası

MSSQL’de kullanılan .mdf ve .ldf dosyaları, bir veritabanının önemli 2 dosyasıdır. .mdf dosyası, “Primary Data File” yani birincil veri dosyasıdır. Veritabanındaki tüm verileri, tabloları, görünümleri(view), saklı yordamları (stored procedures) gibi nesneleri içinde tutar. Her veritabanında mutlaka bir tane .mdf dosyası vardır. Ek bilgi olarak da, veritabanı büyüdüğünde verileri başka dosyalara da yaymanız gerektiği durumlarda .ndf uzantılı ek veri dosyaları da oluşturulabilir.

MSSQL de aldığınız hatanın çözümüne geçmeden önce ek bilgilendirme olarak;

.ldf dosyaları “Log Data File” yani işlem günlük dosyasıdır. Veritabanında yapılan tüm değişiklikler bu dosyada tutulur. Bu sayede sistem bir kesinti yaşadığında yapılan işlemler geri alınabilir (rollback) ya da tekrar uygulanabilir (redo). Özellikle transaction bazlı çalışan sistemlerde .ldf dosyası veri bütünlüğünü sağlamak için kritik bir rol oynar.

Aşağıda görülen dosyalardan log ile bitenler .Idf bir üstündekileri ise .mdf dosyalarıdır.

Idf ve mdf dosyaları
Idf ve mdf dosyaları

Tam yedek alındığında .mdf dosyasındaki veriler yedeklenirken, log yedeği alındığında .ldf dosyasındaki işlem geçmişi de ayrıca yedeklenir. Bu iki yedek türü sayesinde veritabanını herhangi bir zamana geri döndürmek mümkündür. Ancak bu dosyalardan biri silinirse, örneğin .mdf silinirse veritabanı tamamen çalışmaz hale gelir. .ldf dosyası silinirse de veritabanı “RECOVERY_PENDING” durumuna geçer ve bazen kurtarmak için özel yöntemlere başvurmak gerekir.

Eğer bu dosyalar başka bir sunucuya taşınmak istenirse, hem .mdf hem de .ldf dosyaları birlikte kopyalanarak “Attach Database” yöntemiyle yeni SQL Server’a eklenebilir. Eğer log dosyası yoksa, “FOR ATTACH_REBUILD_LOG” komutu ile yeni bir log dosyası oluşturularak veri kurtarılmaya çalışılabilir; ancak bu yöntemde veri bütünlüğü riski oluşabilir.

Idf ve mdf dosyalarını göndermek istediğinizde çıkan “İzin Yok” Hatası ve çözümü

SQL de Idf ve mdf dosyalarını nasıl alabilirim
SQL de Idf ve mdf dosyalarını nasıl alabilirim

Başka veritabanınında çalıştırmak için kendi veritabanınızdaki .mdf ve .ıdf dosyalarını gönderirken aldığınız “iznin yok” hatasını bir iki adımda çözebilirsiniz. En kısa çözümü SQL Server hizmetini durdurup çalıştırmak.

Öncelikle Hizmetlere girin. Sonra Çalışıyor durumunda olan SQLEXPRESS i sağ tık yapıp Özelliklerine gidin ve durdurun. Ardından mdf ve ıdf dosya yoluna gidip dosyaları gönderebilirsiniz veya masaüstüne kopyalayabilirsiniz.

İşleminiz bittikten sonra hizmetlerden tekrar çalıştırmayı unutmayın.

Diğer Çözüm Önerileri;

  1. Dosya İzinlerini Kontrol Edin
    • MDF ve LDF dosyalarının bulunduğu klasörde:
      • Dosyaya sağ tıklayın → Özellikler → Güvenlik
      • SQL Server servisinin çalıştığı kullanıcı hesabına (genellikle “NT Service\MSSQLSERVER”) tam kontrol izni verin
  2. SQL Server’da İzin Ayarları
USE master;
GO
GRANT ALTER ANY DATABASE TO [kullanıcı_adınız];
GO


ExpoTekno sitesinden daha fazla şey keşfedin

Subscribe to get the latest posts sent to your email.

English Translate »

ExpoTekno sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya Devam Edin