SQL Server 2005 - Hızlı El Kitabı
Skip Navigation Links. VERİ TABANI TAŞIMA

 

Veri tabanını bir yerden alıp bir yere göç ettirmek istiyor isek,3 seçeneğimiz vardır.Bunlardan biri backup-recovery’dir ki onu bir önceki bölüme anlattım.Diğer ikisi ise Detach/Attach ve Copy Database seçenekleridir.Şimdi isterseniz onlara göz atalım.

 

Detach/Attach

 

Mdf dosyalarını detach ettiğimizde system tablolarında bu veri tabanına ilişkin kayıt silinir ama dosya silinmez.Attach ettiğimizde ise,bu veri tabanına ilişkin bilgiler system tablolarına kaydedilir.Veriler üzerinde herhangi bir işlem yapılmadığı için,işlem 1-2 sn sürmektedir.

 

Bir veri tabanını detach etmek istiyor isek;

 

EXEC sp_detach_db 'AdventureWorks'

 

 

Tekrar Attach etmek için;

 

CREATE DATABASE AdventureWorks ON

(FILENAME='C:\Data\AdventureWorks_Data.mdf'),

(FILENAME='C:\Data\AdventureWorks_Log.ldf')

FOR ATTACH

 

 

 

Copy Database Wizard

 

Bu sistemde bir wizard aracılığıyla verit abanı nesnelerinin hepsini bir yerden bir yere taşıyabilrsiniz.Taşıma veri tabanı düzeyinde olduğu için,veri tabanı için kullanılan server bazlı veriler (örneğin login),bunları ayrıca taşımamız gerekmektedir.

 

ÖRNEK: AdventureWorks veri tabanını başka bir server’a taşıyalım.

 

1)      AdventureWorks veri tabanına sağ tıkla ve Task->Copy Database seçeneğini seç.

2)      Sırasıyla Source ve destination serverları ve kullanılacak authentication modlarını seçelim.SQL Server authentication kullanıyor isek bu durumda kullanıcı adı ve şifre belirtmeliyiz.

3)      Ardından bize iki seçenek sunacaktır.

a.       Use the Detach and Attach method : Bu yöntemde, yukarıda anlattığım attch/detach yönetiminde ne yapılıyorsa,SQL Sever bu işlemleri kendisi yapar.Kısa süreliğine veri tabanını detach eder ki bu veri tabanının online olmaması anlamına gelir,kimse bu veri tabanına erişemez.Ardından detach edilen veri tabanı dosyası diğer server’a kopyalanır ve orada da attach işlemi yapılır.İşlem tamamlandıktan sonra source tarafta, veri tabanı tekrar attach edilir ve online durumuna getirilir.Bu yöntem çok hızlıdır fakat veri tabanının kapatılmasını istemiyor isek,diğer seçeneği seçmeliyiz. Detach/Attach yapılırken,bir hata oluşması durumunda detach edilmiş source veri tabanının tekar attach edilip edilmemesini(reattach) hemen altındaki checkbox’da belirleyebiliyoruz.

b.      Use the SQL Management Object Method: Bu yöntemde source veri tabanındaki her bir nesnenin scripti oluşturulur.İçindeki kayıtlarda script şeklinde oluşturulur.Bu işlemleri yapmak için Scripting API’ler kullanılır.Sürekli script oluşturularak veri tabanının kopyası elde edilediği için veri tabanının kapatılmasına gerek yoktur ve kapatılmamaktadır.Yani bu yöntemde veri tabanı hep online durumundadır.Yalnız sürekli script oluşturulup diğer tarafta(destination) bu scriptler çalıştırıldığından dolayı hoz açısından daha yavaştır.

4)      Ardından hangi veri tabanları üzerinde işlem yapacağımzıı seçiyoruz.Seçerken ya Copy ya da Move seçeneğini işaretliyoruz.Copy’de veri tabanın bir kopyası destination’da da oluşturulur. Move’da ise veri tabanı Destination server’de oluşturulur ve Source server’dan kaldırılır.

5)      Daha sonra destination veri tabanı için bir isim belirliyoruz.Bunun yanında dosya isimlerini,bulunacağı path’i de belirleyebiliyoruz.Yine bu sayfada eğer,destination server’da aynı isimde bir veri tabanı var ise ne yapılacak sorunun cevabını vermek adına,İki adet radio button vardır.Birincisi seçilir ve eğer aynı isimde veri tabanı varsa,işlem iptal edilir.İkincisi seçilir ve aynı isimde veri tabanı var ise,eskisi drop edilir ve yenisi oluşturulur.

6)      Daha sonra bu işlemin hemen mi yoksa belirtilebilecek bir tarihte mi yapılacak,bu bilgi gelen ekranda seçilir.

a.       Run immediately: seçeneği seçilir ise kopyalama anında yapılır.

b.      Schedule: seçilir ise Change schedule diyerek bu işlemin beliritlen zaman(lar)da ve yinelenerek yapılmasını sağlanabilir.