Belirtiler
Microsoft SQL Server 2012 'da WıTH Replace seçeneğini kullanarak bir veritabanını yedekten geri yüklediğinizde, yedek veritabanından gelen geri yüklenen veritabanının fiziksel dosya adları var olan veritabanının fiziksel dosya adlarının üzerine yazabilir. Örneğin, aşağıdaki senaryoyu düşünün:
-
SQL Server, InstanceA ve InstanceB için iki seçeneğiniz vardır.
-
SQL Server 'ın her örneğinde, aynı adlı bir veritabanınız vardır.
-
InstanceA 'da, SQLDB veritabanı veri dosyasının adı DB1_InstanceA. mdf, günlük dosyası DB1_InstanceA adı ise. ldf.
-
InstanceB 'de, SQLDB veritabanı veri dosyasının adı DB1_InstanceB. mdf, günlük dosyası DB1_InstanceB adı ise. ldf.
-
Restore komutunun Replace seçeneğini kullanarak, SQLDB veritabanının bir yedeğini InstanceA 'dan SQLDB veritabanından InstanceB 'den geri yüklemeye çalışırsınız.
Bu senaryoda, InstanceB 'deki SQLDB 'deki fiziksel dosya adları DB1_InstanceA. mdf ve DB1_InstanceA. ldf olarak değiştirilir.
Neden
Bu davranış SQL Server 2012 'da tasarımdır.
Geçici Çözüm
Bu soruna geçici bir çözüm için, restore komutunun Replace seçeneğini kullanmayın. Bunun yerine, Taşı seçeneğini kullanın.Not WıTH Taþý seçeneği, fiziksel dosya adını değiştirme seçeneği sunar.
Ek Bilgi
WıTH Taþý seçeneği yalnızca restore komutunu ilk kez kullandığınızda gereklidir. Bir veritabanını yedekten geri yüklemeyi denediğinizde, SQL Server veritabanının kurtarma çatalı değerlerini karşılaştırır. Ardından, yedekleme kümesi bu değerlerin eşleşip eşleşmediğini bağlı olarak aşağıdaki eylemleri alır:
-
Bir eşleşme varsa, yedekleme kümesi hedef veritabanının dosya adlarını kullanmaya devam eder.
-
Değerler farklıysa, yedekleme kümesi, yedekleme kümesindeki adları kullanarak hedef veritabanının fiziksel dosya adlarını değiştirir.
WITH WITH WITHrestore komutuyla birlikte taşı seçeneğini kullandığınızda, aşağıdaki eylemler gerçekleştirilir:
-
Hedef sunucuda yeni bir kurtarma çatalı oluşturulur.
-
Sonraki geri yükleme işleminde, yedekleme kümesindeki kurtarma çatalı kimlikleri hedef sunucunun kimlikleriyle eşleştirilir.
-
WıTH Replace seçeneğiyle birlikte kullanılan restore komutu, hedef sunucudaki fiziksel adları korur.
Restore komutu hakkında daha fazla bilgi için restore (Transact-SQL) konusuna bakın.