Veritabanı Kopyalama/Taşıma Veritabanlarını çeşitli sebeplerden dolayı başka bir sunucuya, sisteme veya diske taşımak veya kopyalamak isteyebiliriz Veritabanının taşınacağı yer aynı SQL Server üzerinde olabileceği gibi uzaktaki bir sunucu da olabilir Hatta MySQL veya Access gibi başka bir VTYS yazılımı da olabilmektedir
Veritabanı Kopyalama/Taşıma Veritabanı kopyalama/taşıma yapmak için aşağıdaki metotlardan birisi kullanılabilir: Backup edilen VT, hedefte Restore edilir Detach edilen VT, hedefte Attach edilir SSMS üzerinden “Copy Database” komutu kullanılabilir SSMS üzerinden “Export Data” komutu kullanılabilir SSMS üzerinden VT ve alt nesnelerine (ör: Tablolar) ait SQL Scriptleri edinilerek, hedef sunucuda bu komutlar çalıştırılabilir
Detach/Attach işlemi Bir MDF ve LDF dosyasından oluşan veritabanı, VTYS sistemine bağlı iken sistem dosyaların taşınmasına izin vermez Bu durumda dosyalar önce sistemden “Detach” ile ayrılmalı, daha sonra tekrar istenen başka bir sunucuda “Attach” edilmelidir
Detach işlemi
Detach işlemi Veritabanı sistemden ayrılırken, aktif bağlantılar otomatik kapatılsın mı? Eğer bu seçenek seçilmezse ve aktif bağlantılar varsa, veritabanı ayrılması gerçekleşmeyecektir
Attach işlemi Sistemden ayrılan veritabanına ait MDF ve LDF dosyasının yeri gösterilecek, istenen herhangi bir SQL Server sunucusuna tanıtılabilir.
Attach işlemi Detach edilen VT dosyası sisteme tekrar tanıtılıyor
Copy Database Komutu SSMS üzerinde, VT’nin Tasks menüsü içinden “Copy Database” komutuna erişilerek VT istenen başka bir sunucuya kopyalanabilir
Copy Database Komutu Bu komut sırasında şu bilgiler kullanıcıya sorulur: Source Server: Kaynak sunucu Destination Server: Kopyalanmanın yapılacağı hedef sunucu Transfer method: Arka tarafta hangi metot kullanılarak kopyalanma yapılacağı Schedule the package: (Kopyalanmanın zamanlanması) Hemen veya zamanlanmış görev (Job) olarak kopyalanmanın icra edilmesi
Copy Database Komutu Transfer metodu iki tanedir: Use the detach and attach method: Kaynak veritabanı otomatik olarak detach edilir, bir kopyası oluşturulur ve tekrar attach edilir. Bu metot büyük veritabanları için hızlı çalışmaktadır Use the SQL Management Object method: Daha yavaş bir metottur ama bu işlem sırasında kaynak VT her zaman online kalır
Export Data Komutu SSMS üzerinden seçilen VT istenen herhangi bir hedefe aktarılabilir. Aktarılacak hedef şunlardan birisi olabilir: Oracle VTYS Başka bir SQL Server Access VT MySQL Düz metin dosyası Excel dosyası
Export Data Komutu Export Data (Veri aktar) komutu da diğer komutlar gibi VT’nin “Tasks” menüsü altında bulunmaktadır
Export Data Komutu Buraya tıklanarak farklı hedef türleri (ör: MySQL, Access v.b.) seçilebilir Verinin aktarılacağı hedef seçim ekranı
Export Data Komutu MySQL’e aktarım için Oracle’a aktarım için Düz metin dosyaya aktarım için Access veya Excel’e aktarım için
Export Data Komutu Örnek olarak Access seçiyoruz ve masaüstündeki a.mdb Access veritabanını gösteriyoruz
Export Data Komutu İki seçeneğimiz var: Varolan tabloları hedefe aktarmak Varolan tabloları bir sorgu ile birleştirip, sadece sorgu sonucu dönen kayıtları hedefe aktarmak
Export Data Komutu Son adımda “Run immediately” seçilerek, aktarımın hemen yapılması sağlanır
SQL Scriptleri ile aktarım SSMS üzerinden veritabanları dahil, herhangi bir nesneyi tekrar oluşturmak için gerekli SQL kodları “Generate Scripts” menüsü aracılığıyla alınabilir
SQL Scriptleri ile aktarım Generate Scripts ile ilgili önemli not: Bu komut sadece veritabanına ait yapıyı oluşturacak kodları otomatik üretmektedir. Tablolardaki veriler bu işlemin dışında kalmaktadır. Yani bu yaklaşım ile üretilecek ikinci veritabanında sadece tablolar oluşacak ama içlerinde veri olmayacaktır
SQL Scriptleri ile aktarım Üretilecek olan SQL kodlarının nereye kaydedileceği soruluyor Dosyaya kaydet Hafızaya al (Clipboard) Yeni bir sorgu penceresi aç ve orada göster
SQL Scriptleri ile aktarım Üretilen SQL kodları kopyalanıp başka bir sunucuda çalıştırıldığında, veritabanımızın bire bir kopyası – veriler olmaksızın – orada da oluşturulacaktır