Veri katmanlı uygulamaları yükseltme

Yeni bir veri katmanı dağıtılan uygulama (dac) yükseltme işlemi sürüm veritabanı veya veritabanı değişiklikleri dağıtmak için komut dosyaları kullanırken daha kolaydır.Veritabanı geliştiricisi, şema ve yeni sürüm özelliklerini açıklayan bir dac paket oluşturmak zorundadır.dac yükseltme işlemi, varolan dağıtılmış şeması yeni bir şemaya karşılaştırır ve dinamik olarak değiştirmek için yeni şema için gerekli eylemleri gerçekleştirir.

Yükseltme işlemi

The SQL Server data-tier application upgrade process converts a deployed DAC to a different version of the same application.Örneğin, Finans sürüm 2.0 sürüm 1.0 Finans yükseltmek için.Basit Dağıtım işlemi aşağıdaki adımları gösterilmektedir:

  • Bir veritabanı geliştiricisi bir finans sürüm 1.0 gelişimini tamamlar, dac ve sonra FinanceVersion1.dacpac dac paket oluşturur.

  • Veritabanı Yöneticisi, üretim için Finans 1.0 dac dağıtır.Üretim veritabanı altyapısı örnek şimdi Finans, bir sürüm 1.0, bir uygulamanın adını taşıyan bir dağıtılan dac var ve ilişkili bir veritabanı Finans adlı.

  • Veritabanı geliştiricisi, sonraki çalışma başlar sürüm, ne zaman geliştirme tamamlar bir finans oluşturur vesürüm2.dacpac.

  • Veritabanı Yöneticisi dac yükseltme işlemi planlamaktadır.Bunlar yedeklemek Finans veritabanı.İçeriğini gözden geçirin DAC paket ve eylemleri hakkında bir rapor bunlar değil sorunlara neden üretim veritabanına emin olmak için yükseltme götürür.

  • Veritabanı Yöneticisi daha sonra her iki geçerli dağıtılan sürüm belirterek bir dac yükseltmeyi gerçekleştirdiğinde dac 1.0 ve 2.0 sürüm dac paket.Yükseltme gerçekleştirmek için iki seçenek vardır:

    • dac çağıran bir Windows PowerShell komut dosyası kullanarak bir yerinde yükseltme gerçekleştirin IncrementalUpgrade() yöntem.Yerinde yükseltme he yeni tanımlanan şema eşleştirmek için varolan veritabanı şemasını değiştirir sürüm DAC'ın.

    • dac kullanarak bir yan yana yükseltme gerçekleştirmek Upgrade() yöntem veya bir veri katmanı uygulama yükseltme Sihirbazı.Yan yana yükseltme yeni şema ile yeni bir veritabanı oluşturur ve özgün veritabanından yeni bir tane veriyi aktarır.

  • Yükseltme işlemi tamamlandıktan sonra yükseltilen dac Finans ve Finans adlı ilişkili bir veritabanı uygulama adı hala vardır, ancak dac şimdi 2.0 sürüm.

Sonra dağıtım veritabanlarını değiştirme

Veritabanı Yükseltme dac dışındaki bazı düzeneğini kullanarak veritabanında yapılan değişiklikler, onun ilişkili dac drifted kabul edilir.create TRIGGER deyim kullanarak yeni bir tetikleyici eklemek veya bir tablonun yapısını değiştirmek için alter tablo deyim kullanarak örnek verilebilir.Bazı değişiklik türleri dac yükseltme işlemi, belirtilen yükseltme seçenekleri bağlı tamamlamanızı engelleyebilir.Değişiklikler de yükseltilen veritabanında var olmayacak.

dac yükseltme geçerli veritabanı şemasını ve depolanan dac tanımı arasındaki farklar için işlem çek msdb sistem veritabanı.Bu farklılıklar bulunursa, farkları listeleyen bir uyarı iletişim kutusu verir.Bildirilen farklılıkları analiz ve Yerleştir işlemleri veya herhangi bir nesne veya yükseltme transfer edilemez, ancak yeni sistemde gerekli veri aktarmak için komut dosyaları koyun sonra yalnızca yükseltmeye devam etmelisiniz.

Yükseltme işlemi tamamlandıktan sonra veritabanı DAC'ın yeni sürüm ile yeni dac içinde belirtilen formunda tanımlanan tüm nesneleri içerir.Çoğu durumda, bu yeni sürüm dac ve veritabanı ile ilişkili uygulamalar sürüm için gereken form olacaktır.Yükseltme Değiştir rapor çözümlenmesinde karşılamaya ve yalnızca yeni sistemde gerekli olan nesneleri aktarılır.Örneğin, yeni dac birkaç nesne geçerli dac ve veritabanı eksikse, bu bir hata olmayabilir.Bunlar, bırakılan veya dac kullanan uygulamalar yeni sürümlerinde yeniden tasarlanmış özellikleri ile ilişkili olabilir.

Yerinde yükseltme, deien nesneler korunur.Yükseltmeye başlamadan önce nesne tanımları ve verileri kaydetmeniz gerekir.Yan yana yükseltme için nesneleri ve verileri yeniden adlandırılan özgün veritabanında korunur.Değiştirilen tüm nesneleri yeni veritabanına el ile aktarılması gerekir.

Yeni veritabanına aktarılması için nesneleri komut dosyası konusunda fikirleri hakkında daha fazla bilgi için bkz: Nasıl yapılır: Bir komut dosyası (sql Server Management Studio'yu) oluştur.

dac projeleri önceden dağıtım ve Dağıtım sonrası komut dosyaları belirtebilirsiniz.Bunlar içinde bir dac desteklenmeyen nesneler oluşturma da dahil olmak üzere herhangi bir eylem gerçekleştiren Transact-sql komut dosyalarıdır.Özgün dac bir dac desteklenmeyen nesneler oluşturulan dağıtım sonrası bir komut dosyası içeriyorsa, bu nesneleri ayrı ayrı bir yerinde yükseltme sırasında atılan veya özgün veritabanındaki nesneler için izin veren bir mekanizma kullanılarak bir yan yana yükseltme yükseltilmelidir.

Yerinde yükseltme

Yerinde yükseltme aşağıdaki eylemleri gerçekleştirir:

  • Dağıtılan dac ve dac paket uygulaması ile aynı ada sahip olduğunu doğrular (örneğin, iki adı için vade olarak küme).Veritabanı Altyapısı örnek sunucu seçimi (tanımlanmışsa) yeni ilkede gereksinimleri karşılayıp karşılamadığını da değerlendiren sürüm DAC'ın ve varolan veritabanı içinde bir dac desteklenmeyen nesneler olup.

  • Tüm veritabanı şemasını yeni tanımlanan şemaya uyan yapmak için gereken açılan create ve alter deyimleri gibi değişiklikler yapar sürüm DAC'ın.

If the Ignore Data Loss option is set to True, the DAC upgrade may perform actions that remove data.Örneğin, geçerli veritabanında var, ancak yeni dac şemasını bir tablo varsa, tablo yükseltme bırakır.Veritabanı Yöneticisi işlemi gerçekleştirmeden önce yükseltme işleminden sonra gereken herhangi bir veri arşiv gerekir.

Yerinde yükseltme gerektiren dac Framework 1. 1 ' yükleyebileceğiniz dac Framework 1.1 Feature Pack sayfa.

Yan yana yükseltme

Yan yana yükseltme aşağıdaki eylemleri gerçekleştirir:

  • Dağıtılan dac ve dac paket uygulaması ile aynı ada sahip olduğunu doğrular (örneğin, iki adı için vade olarak küme).Veritabanı Altyapısı örnek sunucu seçimi (tanımlanmışsa) yeni ilkede gereksinimleri karşılayıp karşılamadığını da değerlendiren sürüm DAC'ın ve varolan veritabanı içinde bir dac desteklenmeyen nesneler olup.

  • dac yeni sürüm dağıtan DAC paket.Bu geçici bir adla yeni bir veritabanı oluşturur.

  • Zaten salt okunur modda olmadığından ve verileri yeni bir veritabanına kopyalar özgün veritabanı salt okunur olarak ayarlar.

  • Özgün veritabanı salt okunur modunda ise, yeni veritabanı olan küme salt okunur.

  • Özgün veritabanı için veritabanı adı sonuna bir dize ekleyerek yeniden adlandırılır.

  • Yeni veritabanı, özgün veritabanı adı atanır.

  • Veritabanı Yöneticisi, yeni veritabanı doğru çalıştığından onaylamıştır sonra özgün veritabanında saklanabilir.

Veritabanı değişiklikleri etkileyebilir mi verilerde bir tablo yeni veritabanına aktarılır.Tablolar veritabanı değişiklikleri ile ilgili bu durumlar olabilir:

  • Tüm konumlarda aynı şekilde üç tablo yapısı şöyledir: Geçerli dac tanımında msdb, geçerli veritabanı ve yeni dac.tablo yeni bir veritabanında bulunur ve yükseltme işlemi yeni veritabanına veri aktarma yapar.Transfer yapılır dayalı bir INSERT deyim kullanarak bir eski tablo seçin.

  • Tablo geçerli dac tanım ya da veritabanı bağlantısı yok, ancak yeni dac içinde tanımlanır.Tablo yeni veritabanında bulunması, ancak varolan veri aktarmak için olduğundan veri içermeyen.

  • Tablo geçerli dac tanımında yok, ancak yeni dac ve geçerli veritabanında yok.tablo yeni bir veritabanında var, ancak veri yükseltme işlemi aktarır.Yükseltme tamamlandıktan sonra verileri el ile aktarın.

  • Geçerli dac tanımına ve veritabanı, ancak yeni dac tablo mevcut.Yeni bir veritabanında tablo bulunmaz.Tablo yeni sistemde gerekli ise, el ile bir tablo oluşturun ve yükseltme işlemi tamamlandıktan sonra veri aktarımı.

  • Tablonun her üç yerde de var, ancak geçerli dac tanımı ve veritabanı tablosunun yapısı yeni dac tablo yapısı farklı.Tablo içinde yeni dac tanımlanmış yapısı ile yeni veritabanı olacaktır.

    • Tablo ve sütun adları eşleşmiyorsa, yükseltme işlemi bu veri transfer değil olduğunu bildirir.Yükseltme tamamlandıktan sonra verileri el ile aktarın.

    • Tablo adı ve sütun adları aynıysa, veri aktarımı yükseltme işlemi deneyecek.Bir veya daha fazla sütun veri türünü değiştirmiş ve uyumlu olmayan, INSERT deyim, yükseltme işlemini geri almak neden başarısız olur.

Yeni sürüm için tablo, verileri aktarmak için herhangi bir mekanizma kullanabilirsiniz.Eski seçtiği INSERT deyim kullanabilirsiniz sürüm tablo.De anlatıldığı bulk INSERT tekniklerden birini kullanabilirsiniz Toplu veri alma ve verme.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

dac Framework 1.1 tarafından tanıtılan yerinde yükseltme açıklanmıştır.Diğer konuları yinelenen içerik kaldırıldı.