16 Ağustos 2016 Salı

Bir Azure SQL Database'i yerel bir Instance'a taşımak

Selam millet,

Bugün bir yazılımcı arkadaş, Azure SQL Database'de bulunan bir veritabanını verileriyle birlikte yerel bir sunucumuza taşıma talebinde bulundu.

Yaptığım işlem çok özetle ilgili SQL Database'i Azure'daki müsait bir Storage'a Export etmek ve sonrasında üretilen *.bacpac dosyasını yerel ortamdaki uygun bir sunucuya indirmek ve daha sonra da Restore/Import edilmesi istenen yerel SQL Server Instance'ına Restore etmek oldu.

Bu yazıda daha ziyade değinmek istediğim şey ise *.bacpac dosyasının marifeti. Azure SQL Database'deki veritabanının versiyonu 12.0.2000.8, yani V12 idi, *.bacpac dosyasını Restore ettiğim Instance'ın versiyonu ise 11.0.5582.0 idi. Deneyimli her SQL Server DBA'in bildiği gibi, üst bir versiyonda oluşturulmuş olan *.bak dosyaları alt bir versiyona Restore edilemez. Daha net olmak gerekirse ve bu örnek üstünden gidersek 12.0.2000.8 versiyonunda olan bir Instance'ta oluşturduğunuz bir *.bak dosyası 11.0.5582.0 versiyonlu bir Instance'a Restore edilemez. Fakat 12.0.2000.8 versiyonunda oluşturulmuş bir *.bacpac dosyası pekala ve başarıyla 11.0.5582.0 versiyonlu bir Instance'a Restore edilebiliyor.

Bununla birlikte, bu Restore (aslında Import) işlemini doğrudan 11.0.5582.0 üstündeki SQL Server Management Studio'dan yapmaya çalıştığımda şöyle bir hata aldım:

TITLE: Microsoft SQL Server Management Studio
------------------------------
Count not load schema model from package. (Microsoft.SqlServer.Dac)
------------------------------
ADDITIONAL INFORMATION:
Internal Error. The database platform service with type Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider is not valid. You must make sure the service is loaded, or you must provide the full type name of a valid database platform service. (Microsoft.Data.Tools.Schema.Sql)

Bu sorun *.bacpac dosyasından ziyade SQL Server Management Studio'nun versiyonuyla ilgiliydi. Aynı *.bacpac dosyasını SQL Server Management Studio'nun daha yeni bir versiyonunda Import etmeyi denediğimde hiçbir sorunla karşılaşmadan işlem başarıyla tamamlandı. Eğer olur da biri böyle bir hata ile karşılaşırsa diye burada not etmek istedim.

Sevgiler,
Ekrem Önsoy

Hiç yorum yok: