SQL Server 2014 üzerinde veritabanı yönetimi, özellikle büyük ölçekli veri ortamlarında, doğru ve güvenilir işlemler gerektirir. Veritabanlarının taşınması veya başka bir SQL Server ortamına aktarılması gerektiğinde en çok kullanılan yöntemlerden biri Detach ve Attach işlemleridir. Bu işlemler, bir veritabanını mevcut SQL Server Instance'ından ayırmak ve ardından başka bir ortama eklemek için kullanılır. Böylece, veri taşıma süreçleri daha esnek ve kontrollü bir şekilde gerçekleştirilebilir.
Database Detach işlemi, mevcut bir veritabanının SQL Server Instance'ından güvenli bir şekilde ayrılmasını sağlar. Bu işlem, veritabanını kullanıma kapatarak dosyaların başka bir ortama taşınmasına veya yedeklenmesine olanak tanır. Ancak, bu işlemi gerçekleştirirken dikkat edilmesi gereken noktalar vardır. Özellikle veritabanının ayrılmadan önce tüm bağlantılarının kapatılması ve herhangi bir veri kaybı yaşanmaması için gerekli önlemlerin alınması büyük önem taşır.
Detach edilen bir veritabanı, başka bir sunucuya taşındıktan sonra veya aynı sunucuda farklı bir SQL Server Instance'ına eklenmek istendiğinde Attach işlemi kullanılır. Bu işlem, veritabanı dosyalarının SQL Server tarafından yeniden tanınmasını ve veritabanının aktif hale getirilmesini sağlar. Attach işlemi sırasında, dosyaların bütünlüğü ve doğruluğu kontrol edilir, bu sayede veritabanı sorunsuz bir şekilde kullanıma açılır.
Bu iki işlem, SQL Server yönetiminde kritik bir rol oynar ve özellikle veri taşınması veya yeniden yapılandırılması gerektiğinde kullanılır. Detach ve Attach süreçlerinin doğru bir şekilde planlanması ve uygulanması, veri güvenliği ve operasyonel süreklilik açısından hayati önem taşır. Yanlış bir adım, veri kaybına veya sistem kesintilerine neden olabilir; bu yüzden her adımın dikkatli
Database Attach Etme
Elinde MDF ve LDF dosyaları bulunan bir Database'i SQL Server'a yeniden kazandırmak için CREATE DATABASE ... FOR ATTACH komutu kullanılır. Bu yöntem, backup dosyası olmadan bir veritabanını doğrudan fiziksel dosyalar üzerinden sisteme dahil etmek için tercih edilir. Özellikle manuel olarak taşınan ya da başka bir sunucudan kopyalanan Database'ler için en pratik geri yükleme yöntemidir.
USE [master]
GO
CREATE Database [Northwind] ON
( FILENAME = 'C:\sqltables\Northwind\Northwind.mdf'),
( FILENAME = 'C:\sqltables\Northwind\Northwind_log.ldf')
FOR Attach
GO |
Yukarıdaki komutu çalıştırdığımda Northwind isimli Database (Veri tabanı) Attach etme işlemi başarılı bir şekilde tamamlandı.

Bu ekranda görülen çıktı, CREATE DATABASE ... FOR Attach komutunun SQL Server tarafından başarıyla işlendiğini gösteriyor. Sağ altta yer alan Command(s) completed successfully. mesajı, yazılan komutun hata üretmeden çalıştığını ve belirtilen MDF ile LDF dosyaları üzerinden Northwind isimli Database'in başarıyla Attach edildiğini doğruluyor.
Aynı anda sol taraftaki Object Explorer panelinde Databases altında Northwind isimli Database’in listelenmiş olması, Attach işleminin hem sunucuya tanıtıldığını hem de erişime açık hale geldiğini gösteriyor. Tüm tabloların alt alta listelenmesi, veri yapısının doğru şekilde yüklenmiş olduğunu kanıtlar. Bu durumda Database, artık diğer veritabanları gibi sorgulanabilir ve kullanılabilir hale gelmiş olur.

Database Detach Etme
SQL Server'da bir Database'i geçici olarak sistemden kaldırmak ya da farklı bir sunucuya taşımak gerektiğinde sp_detach_db prosedürü ile Detach işlemi yapılır. Bu işlem sonucunda Database, SQL Server üzerindeki aktif listeden çıkarılır ve sadece MDF ile LDF dosyaları Disk üzerinde kalır. Detach edilen Database, daha sonra tekrar Attach yöntemiyle kullanılabilir hale getirilir.
USE [master]
GO
EXEC MASTER.dbo.sp_Detach_db @dbname = N'Northwind'
GO |
Yukarıdaki komutu çalıştırdığımda da Attach ettiğim Northwind isimli Database'in (Veri tabanı) Detach etme işlemini başarılı bir şekilde gerçekleştiriyorum.

Bu ekrandaki işlem, sp_detach_db prosedürü ile Northwind isimli Database’in SQL Server üzerinden başarıyla kaldırıldığını gösteriyor. Sağ alttaki Command(s) completed successfully. mesajı, detach işleminin hata vermeden tamamlandığını doğruluyor. Ancak bu durum Object Explorer paneline hemen yansımayabilir.
Görseldeki gibi Databases klasörü üzerinde sağ tıklayıp Refresh seçeneği kullanıldığında, arayüz güncellenir ve Northwind artık listede görünmez. Bu da işlemin hem sunucu düzeyinde hem de arayüzde tamamlandığını teyit eder. Detach sonrası MDF ve LDF dosyaları fiziksel olarak Disk üzerinde kalır, ancak SQL Server bu Database’i artık yönetmez. Bu yapı, veritabanını başka sunucuya taşımak ya da geçici olarak erişim dışı bırakmak isteyenler için ideal senaryoyu oluşturur.

Bu ekranda, sp_detach_db komutunun çalıştırılmasının ardından Northwind isimli Database'in artık Databases listesinden çıkarıldığı açıkça görülüyor. Sol taraftaki Object Explorer panelinde Northwind'in yer almaması, Detach işleminin hem SQL Server Engine hem de Management Studio arayüzünde başarıyla tamamlandığını gösteriyor.
Alt kısımda yer alan Command(s) completed successfully. ifadesi, prosedürün sorunsuz çalıştığını doğrular. Detach işlemiyle birlikte Northwind'e ait MDF ve LDF dosyaları disk üzerinde bırakılır, ancak SQL Server bu Database ile olan bağlantısını tamamen keser. Bu durum, veritabanını yedeklemeden taşıma, arşivleme ya da başka bir SQL Server instance'ına aktarım gibi işlemler için uygun ortamı sağlar.

Görüldüğü gibi bir Database (Veri tabanı) Attach ya da Detach etme işlemleri bu kadar hızlı bir şekilde gerçekleştirilebiliyor.
SQL Server’da Database Detach ve Attach işlemleri, veritabanlarının taşınması, yedeklenmesi ya da farklı bir sunucuda yeniden kullanılabilmesi için kritik bir yöntemdir. Bu makale boyunca Detach ve Attach süreçlerinin nasıl gerçekleştirildiği, veritabanı dosyalarının sistemden nasıl ayrıldığı ve tekrar sisteme nasıl bağlandığı ayrıntılı olarak ele alınmıştır. Özellikle büyük veritabanlarının taşınması gerektiğinde, bu işlemler güvenli ve etkili bir çözüm sunar.
Sonuç olarak, Detach ve Attach yöntemleri, veri kaybı yaşamadan bir veritabanını başka bir sunucuya taşımak ya da geçici işlemler için sistemden ayrılmasını sağlamak açısından oldukça verimli bir yöntemdir. Bu süreçler, yöneticilere hem esneklik kazandırır hem de SQL Server yönetimi sırasında olası kesintileri minimuma indirir. Ancak, bu işlemler sırasında dikkat edilmesi gereken en önemli husus, veritabanı dosyalarının doğru şekilde taşınması ve bağlantı işlemleri sırasında herhangi bir hata yapılmamasıdır. Eksik veya bozulmuş bir dosya, veritabanının düzgün çalışmamasına neden olabilir.
Veritabanı yönetiminde Detach ve Attach işlemlerinin doğru bir şekilde uygulanması, SQL Server’ın verimli ve güvenli bir şekilde yönetilmesi için kritik öneme sahiptir. Yöneticilerin, bu işlemleri gerçekleştirirken dosya yollarını ve veritabanı bütünlüğünü kontrol etmeleri, olası hataları önlemek adına önemlidir. Veritabanının yeniden sisteme bağlanmasının ardından, tüm işlemler normal işleyişine döner ve veri kaybı olmaksızın sistem yönetimi sürdürülür.
Faydalı olması dileğiyle...