|
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.
|