Share via


Nasıl yapılır: Bir veri katmanı uygulama yükseltme

Yükseltme veri katmanı uygulaması Sihirbazı'nı veya Windows PowerShell komut dosyası şeması ve uygulamasının şemayla eşleşecek şekilde halen Dağıtılmış veri Katmanı (dac) özelliklerini ve tanımlanan özelliklerini değiştirmek için yeni bir kullanma sürüm DAC'ın.

Yerinde ve yan yana yükseltmeler

dac yükseltmeleri iki tür vardır:

  • Yan yana yükseltme yeni bir veritabanı oluşturmak yeni tanımlanan şemaya varken varolan veritabanının bir kopyasını korur sürüm DAC'ın.Bunun ardından verileri eski veritabanından yeni bir veritabanına kopyalar.

  • Yerinde yükseltme yeni dac tanımlanan şemayla eşleşecek şekilde varolan veritabanı şemasını değiştirir sürüm.

SQL Server 2008 R2 ve yalnızca yan yana yükseltme desteği dac Framework 1.0, Microsoft Visual Studio 2010 dahil.Yan yana yükseltme desteği SQL Azure.Visual Studio 2010 SP1'i içeren bir yeni dac Framework dac Framework 1. 1 ' sql Server kullanıcıları karşıdan yükleyebilirsiniz 1 Feature Pack sayfa.Desteklenir hem yerinde yükseltmelere dac Framework 1.1 tanıtır SQL Azure ve örneklerini Veritabanı Altyapısı.dac Framework 1.1 hakkında daha fazla bilgi için bkz: sql Server nesneleri ve sürümler için dac desteği

Yan yana yükseltme gerçekleştirmek için dac Framework 1.0 dac Yükseltme Sihirbazı'nın geçerli sürüm kullanır.Geçerli planları olan bir gelecekte yerinde yükseltme gerçekleştirmek için Sihirbazı'nı değiştirmek için SQL Server 2008 R2 Service Pack.

Yükseltme için hazırlama

Tam veritabanı yükseltme başlatmadan önce yedek alın tedbirdir.Yükseltme hatayla karşılaşması ve önceki durumuna döndüremezsiniz kendi güncellemeleri tüm yedek, yedek geri almak almak yükleme yapmanız gerekebilir.

Doğrulamak için atılması gereken çeşitli eylemler vardır DAC paket ve yükseltme işlemleri.Bu denetimi gerçekleştirme hakkında daha fazla bilgi için bkz: Nasıl yapılır: dac paketi doğrula.

  • Bilinmeyen veya güvenilmeyen kaynaklardan gelen dac paket kullanarak yükseltme değil emin öneririz.Bu tür DACs olabilir kötü niyetli kod içerebilecek yürütmek istenmeyen Transact-SQL kod ya da neden hata değiştirerek şema.Güvenilmeyen veya bilinmeyen bir gelen bir dac kullanın önce kaynak, dac paketten ve saklı yordamlar veya diğer kullanıcı tanımlı kod gibi bir kodu inceleyin.

  • Özgün dac dağıtıldığı sonra geçerli veritabanına yapılan değişiklikler, bazı değişiklikler yükseltme işleminin başarıyla tamamlandığını engelleyebilir veya yükseltme tarafından kaldırılması.İnceleme Raporu veritabanında yapılan böyle bir değişiklik ilk oluştursun.

  • Şema değişiklikleri güncelleştirme gerçekleştirmek ve bunları gözden geçirmesi için herhangi bir sorun listesini oluşturmak tedbirdir.

dac yükseltme seçeneklerini seçin

Yerinde yükseltme için yükseltme dört seçenek vardır:

Veri kaybına göz ardı –, True, yükseltme devam olsa bile, bazı işlemlerin veri kaybına nedenIf False, these operations will terminate the upgrade.Örneğin, geçerli veritabanında bir tablo yeni dac şemada yoksa, True belirtilmişse tablo çökecektir.Varsayılan ayar True.

Değişiklikleri engelleyen -, True, ise veritabanı şeması önceki dac. tanımlanan farklı yükseltme sonlandırıldıIf False, the upgrade continues even if changes are detected.Varsayılan ayar False.

Üzerindeki geri alma hatası -, True, yükseltme işlemlerinde içine ve hatalarla karşılaştı, bir geri alma girişimi.If False, all changes are committed as they are made and if errors occur you may have to restore a previous backup of the database.Varsayılan ayar False.

İlke doğrulaması Atla -, True, dac sunucu seçimi ilkesi değil değerlendirilir.If False, the policy is evaluated and the upgrade terminates if there is a validation error.Varsayılan ayar False.

Yan yana yükseltme için yükseltme iki seçeneğiniz vardır:

  • Ingore kayması -, True, değişiklikleri algılandı bile yükseltmeye devam ediyor.If False, the upgrade is terminated if the database schema is different than that defined in the previous DAC.

  • ts İlkesi harekete geçirmek -, True, dac sunucu seçimi ilkesi değerlendirildi ve yükseltme kesilmediğini var. bir doğrulama hatasıIf False, the policy is not evaluated.

Gereksinimler

Bir dac yalnızca üyeleri tarafından yükseltilebilir sysadmin veya serveradmin'e üye sunucu rolleri sabit bulunan oturumlar tarafından veya dbcreator sabit sunucu rolü ve sahip alter any LOGIN izni.Oturum açma, varolan veritabanının sahibi olması gerekir.Yerleşik SQL Server adlı Sistem Yöneticisi hesabının sa de Sihirbazı başlatabilirsiniz.

Uygulama adı DAC paket şu anda dağıtılan dac uygulama adıyla eşleşmesi gerekir.Örneğin bir uygulama adı geçerli dac var, GeneralLedger, yalnızca bir uygulama adını da taşıyan bir dac paket kullanarak yükseltme yapabileceğiniz GeneralLedger.

Oturum açma parolaları

Güvenliğini artırmak için sql Server kimlik doğrulaması oturum açma bir parola olmadan DAC paket saklanır.Zaman paket dağıtılan veya yükseltilmiş, oluşturulan bir parola ile oturum açma devre dışı bırakılmış olarak oluşturulan oturum açma.Oturum açma etkinleştirmek için alter any LOGIN iznine sahip bir oturum açma kullanarak oturum açın ve alter LOGIN login etkinleştirmek ve kullanıcıya bildirilebilmesi, yeni bir parola atamak için kullanın.Parolaları sql Server tarafından yönetilen olarak bu Windows kimlik doğrulaması oturum açma için gerekli değildir.

Alanı hususları

Yerinde yükseltme için birincil alanı dikkate, tüm değişiklikler oturum kullanılabilir yeterli hareket günlük alanı vardır.

Yan yana yükseltme geçerli veritabanı için yeni bir veritabanı oluşturmak ve varolan verileri yeni bir veritabanına kopyalama ek olarak dağıtılan dac korur.Elinizde bulunan yeterli boş disk alanı varolan bir veritabanını daha büyük olan yeni veritabanı tutacak.Yan yana yükseltme çalıştırmadan önce geçerli veritabanındaki veri miktarı çok büyük olmadığından emin olun uyma yeni veritabanında.Yükseltme tarafından oluşturulan veritabanı veritabanı oluşturma varsayılan boyutu ayarları olacaktır deyim.Başlangıç boyutu 3 mb ve 1 MB'lık artışlarla sınırsız sayıda içeren bir veri dosyası ve bir başlangıç boyutu 1 MB'lık ve 2 GB boyut sınırına sahip tek bir günlük dosyası için varsayılandır.

Yan yana veritabanı seçenekleri

Yan yana yükseltme dağıtım aşamasında oluşturduğunuz veritabanını tüm varsayılan ayarları oluşturmak veritabanından sahip olur deyim, dışında:

  • Veritabanı harmanlama ve uyumluluk düzey olan küme dac paketnde tanımlanan değerler için.Bir Visual Studio dac projede oluşturulan paket değerleri kullanır küme DAC projesi.Varolan bir veritabanından açılan paket özgün veritabanından değerleri kullanır.

  • İçinde bazı veritabanı adı ve dosya yolları gibi veritabanı ayarları ayarlayabilirsiniz Güncelleme yapılandırmasını sayfa.

trustworthy DB_CHAINING ve HONOR_BROKER_PRIORITY, gibi bazı veritabanı seçeneklerini dağıtım işleminin bir parçası ayarlanamaz.Dağıtma işleminin bir parçası, dosya gruplarını veya sayıların sayısı dosyaların ve boyutları gibi fiziksel özellikleri değiştirilemez.Dağıtım tamamlandıktan sonra alter database kullanabilirsiniz deyim, SQL Server Management Studio, veya SQL Server PowerShell için uyarlamak veritabanı.Daha fazla bilgi için bkz: Bir veritabanını değiştirme.

Yerinde dac yükseltme PowerShell kullanma

Bu örnek kullanır dac Framework 1.1 IncrementalUpgrade() yöntem dac yerinde yükseltme gerçekleştirmek için.Bu yöntem DACs üzerinde ya da yükseltir SQL Server veya SQL Azure.Yeni framework karşıdan yüklemek için bkz: dac Framework 1.1 Feature Pack.

Aşağıdaki kodu içeren bir PowerShell komut dosyası (IncrementalUpgradeDAC.ps1) dosyası oluşturun.

  1. smo sunucu nesnesi oluşturmak için kod ekleyin ve küme bir dac ayıklamak istediğiniz veritabanını içeren örneği için.Bu örnek bir sunucu nesnesi ayarlar varsayılan örnek yerel bilgisayarda:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. ServerConnection nesnesi açın ve bağlanmak için aynı kodu ekleyip örnek.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. dac yüklemek için kod ekleme paket dosyası.Bu örnek bir MyApplicationVNext.dacpac dosyası yükler.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. dac dağıtım olaylara abone olmak için kod ekleyin.

    ## Subscribe to the DAC deployment events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  5. dac yükseltme dac yükseltilmesi ve yükseltme seçenekleri belirtmek için kod ekleyip dac kapatmak paket dosyası:

    ## Upgrade the DAC and create the database.
    $dacName  = "MyApplication"
    ## Set the upgrade options.
    $upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions
    $upgradeProperties.blockonchanges = $true
    $upgradeProperties.ignoredataloss = $false 
    $upgradeproperties.rollbackonfailure = $true
    $upgradeProperties.skippolicyvalidation = $false
    ## Do not set IgnoreDrift, replaced by BlockOnChanges.
    
    ## Upgrade the DAC and create the database.
    $dacstore.IncrementalUpgrade($dacName, $dacType, $upgradeProperties)
    
    $fileStream.Close()
    

IncrementalUgradeDAC.ps1 ya da bir PowerShell çalıştırma oturum içinde size yüklü sql Server PowerShell ek bileşen veya kullanarak sqlps komut istemi yardımcı programı.

Yan yana dac Yükseltme Sihirbazı kullanarak

De Management Studio, sunucu düğümünde açarak veri katmanı uygulama Yükseltme Sihirbazı Başlat Object Explorer, seçim yönetimi düğümünü ve ardından seçerek veri-katmanlı uygulamaları düğüm.Bir veri katmanı uygulaması düğümünü sağ tıklatın Object Explorerve seçin Yükseltme veri katmanı Application…

Dikkat notuDikkat

dac Yükseltme Sihirbazı'nın geçerli sürüm desteklenmiyor bir yan yana yükseltme gerçekleştirir SQL Azure.

Ayrıntılar için gitmek için aşağıdaki listeden bir bağlantıyı tıklatın bir sayfa Sihirbazı'nda:

  • Giriş sayfası

  • Package sayfası seçin

  • Gözden geçirme İlkesi sayfası

  • Değiştirme sayfası algılamak

  • Özet sayfası

  • dac sayfasına yükseltme

Giriş sayfası

Bu sayfa bir veri katmanı uygulaması yükseltme adımları açıklar.

Bu sayfa daha gösterme. -Sayfa gelecekte görüntülenmesini durdurmak için onay kutusunu tıklatın.

Sonraki > -gerçekleştirir Paketini seçin sayfa.

İptal -dac yükseltme yapmadan Sihirbazı sona erer.

Package sayfası seçin

dac paket içeren yeni sürüm belirtmek için bu sayfa kullanın veri katmanı uygulaması.Sayfa geçişleri ile iki durumu.

dac paketi seçin

Başlangıç durumu sayfa dağıtmak için dac paket seçmek için kullanın.dac paket geçerli DAC paket dosyası olmalı ve .dacpac uzantılı olmalıdır.dac uygulama adı DAC paket geçerli dac uygulama adı ile aynı olmalıdır.

dac paket -belirtmek yol ve dac paketinin veri katmanı uygulamasının yeni sürüm içeren dosya adı.Seçebileceğiniz göz dac paket konumuna göz atmak için kutusunun sağ düğme.

Uygulama adı -dac yazılmış veya bir veritabanından açılan atanan dac uygulama adını görüntüleyen bir salt okunur kutu.

Sürüm -dac yazılmış veya bir veritabanından açılan atanmış sürümü gösterir salt okunur kutusunu.

Açıklama -dac yazılmış veya bir veritabanından açılan yazılı açıklamayı görüntüler salt okunur kutusunu.

<Önceki -döner Giriş sayfa.

Sonraki > - bir ilerleme çubuğu görüntüler gibi sihirbaz onaylar seçili dosya olduğundan geçerli bir dac paket.

İptal -dac yükseltme yapmadan Sihirbazı sona erer.

dac paketi doğrulama

Sihirbaz seçili dosya geçerli bir dac paket olduğunu onaylar gibi bir ilerleme çubuğu görüntüler.dac paket doğrulanırsa, için sihirbaz devam eder Gözden geçirme İlkesi sayfa.Dosya geçerli bir dac paket ise, sihirbaz kaldığını dac paketini seçin.Başka bir geçerli dac paketi seçin veya Sihirbazı iptal edin ve yeni bir dac paket oluşturmak.

dac içeriğini doğrulama -ilerleme çubuğu, doğrulama işlemi geçerli durumunu bildirir.

<Önceki -başlangıçtaki durumunu verir Paketini seçin sayfa.

Sonraki > -final için devam eder sürüm , Paketini seçin sayfa.

İptal -dac dağıtımı yapmadan Sihirbazı sona erer.

Gözden geçirme İlkesi sayfası

İncelemek için bu sayfa kullanın sonuçlar dac bir ilkesi varsa, dac sunucu seçimi ilkesi değerlendiriliyor.dac sunucu seçimi ilkesi isteğe bağlıdır ve Microsoft Visual Studio ile yazılmış bir dac atanır.İlke koşulları belirtmek için sunucu seçimi ilkesi özellikleri kullanır bir örnek , Veritabanı Altyapısı karşılamak için ana dac.

Değerlendirme sonuçlar ilke koşulu - dac sunucu seçimi ilkesi koşulların değerlendirmeleri başarılı olup olmadığını gösteren bir salt okunur rapor.sonuçlar Her koşulu değerlendirmek ayrı bir satıra bildirilir.

İlke ihlallerini göz ardı -başarısız bir veya daha çok ilke koşullarını, yükseltme işlemine devam etmek için bu onay kutusunu kullanın.Yalnızca başarısız olan koşulların tümü başarılı dac engellemez eminseniz, bu seçeneği seçin.

<Önceki -döner Paketini seçin sayfa.

Sonraki > -gerçekleştirir Değişikliği algılamak sayfa.

İptal -dac yükseltme yapmadan Sihirbazı sona erer.

Değiştirme sayfası algılamak

Bu Raporları sayfa Kullan sonuçlar kolaylaştıran veritabanında yapılan değişiklikler için Sihirbazlar onay, şema dac meta verilerde depolanan şema tanımı farklı msdb.Örneğin, create, alter veya drop deyimi eklemek için kullanılmış, değiştirmek veya dac ilk olarak dağıtıldığı sonra nesneleri veritabanından kaldırmak.Sayfa ilk kez bir ilerleme çubuğu görüntüler ve daha sonra raporlar sonuçlar çözümleme.

Algılama değişikliği, bu işlem birkaç dakika sürebilir -dac tanımında geçerli şemasını veritabanı nesneleri arasındaki farkları için sihirbaz bakar gibi bir ilerleme çubuğu görüntüler.

Algılama sonuçlar değiştirin: -Analiz tamamladı ve sonuçlar aşağıda bildirilen gösterir.

Veritabanı adı değişmemiştir veritabanı -Sihirbazı veritabanı ve karşılıkları dac tanımında tanımlanmış nesnelerin hiçbir farkı algıladı.

Veritabanı adı değişti veritabanı -sihirbaz dac tanımında veritabanındaki nesneleri karşılıkları arasındaki değişiklikler algıladı.

Olası değişikliklerin kaybına rağmen devam -bazı nesneleri anlamak veya verileri geçerli veritabanında yeni bir veritabanında mevcut olmayacak ve yükseltme işlemine devam etmek için belirtir.Bu düğme, yalnızca değişiklik raporu çözümledikten ve anlamak, el ile herhangi bir nesne veya yeni veritabanı gerekli veri aktarmak için gerçekleştirmeniz gereken adımları seçmeniz gerekir.Emin değilseniz,'ı Raporu Kaydet'i değişiklik raporu kaydetmek için düğmesini ve sonra tıklatın İptal.Analiz raporu, nasıl yükseltme işlemi tamamlandıktan sonra tüm gerekli nesneleri ve veri aktarımı ve sonra sihirbazı yeniden planlayın.Daha fazla bilgi için bkz: Veri katmanlı uygulamaları yükseltme.

Raporu Kaydet -veritabanındaki nesneleri dac tanımında karşılıkları arasındaki algılanan sihirbaz rapor değişiklikleri kaydetmek için düğmesini tıklatın.Daha sonra tüm nesneleri yeni bir veritabanına raporda listelenen veya bazı birleştirmek için yükseltme işlemi tamamlandıktan sonra eylemleri gerekip gerekmediğini belirlemek için raporu gözden geçirebilirsiniz.

<Önceki -döner dac paketini seçin sayfa.

Sonraki > -gerçekleştirir özeti sayfa.

İptal -dac dağıtımı yapmadan Sihirbazı sona erer.

Özet sayfası

Sihirbaz dac yükseltirken alacağı önlemleri gözden geçirmek için bu sayfa kullanın.

Sizin dac yükseltmek için aşağıdaki ayarlar kullanılır. -Gerçekleştirilen eylemleri doğru emin olmak için görüntülenen bilgileri gözden geçirin.Yükseltilmesi için seçtiğiniz dac ve DAC'ın yeni sürüm içeren dac paket penceresini görüntüler.Pencerenin geçerli sürüm veritabanının geçerli dac tanımı ile aynı olup olmadığını veya veritabanı değişmişse de görüntüler.

<Önceki -size gönderir Değişikliği algılamak sayfa.

Sonraki > - dac dağıtır ve sonuçlar görüntüler dac yükseltme sayfa.

İptal -dac dağıtımı yapmadan Sihirbazı sona erer.

dac sayfasına yükseltme

Bu sayfa, başarılı veya başarısız yükseltme işleminin bildirir.

dac yükseltme -başarı ya da başarısızlığın dac yükseltmek için yapılan her eylem bildirir.Başarı veya başarısızlık her belirlemek için bilgileri gözden eylem.Bir hata ile karşılaştı herhangi bir eylem bir bağlantı olacaktır sonucu sütun.Bu eylem için hata raporunu görüntülemek için bağlantıyı seçin.

Raporu Kaydet -yükseltme raporunu bir html dosyasına kaydetmek için bu düğmeyi seçin.Dosyayı her durum raporları eylem, herhangi biri tarafından oluşturulan tüm hatalar da dahil olmak üzere eylems.sql Server Management Studio\DAC paketleri klasör Windows hesabınızın Belgeler klasöründeki varsayılan klasördür.

Son -Sihirbaz sona erer.

PowerShell kullanarak yan yana dac yükseltmesi

Bu örnek kullanır dac Framework 1.0 Upgrade() yöntem yan yana dac yükseltme gerçekleştirmek için.The Upgrade() method will be removed in the next version of SQL Server, and does not support SQL Azure.dac Framework 1.1 kullanmak için tercih edilen yöntem olan IncrementalUpgrade() yöntemi (ele yukarıda) gerçekleştirilecek bir yerinde yükseltme.Aşağıdaki kodu içeren bir PowerShell komut dosyası (UpgradeDAC.ps1) dosyası oluşturun.

  1. smo sunucu nesnesi oluşturmak için kod ekleyin ve küme bir dac ayıklamak istediğiniz veritabanını içeren örneği için.Bu örnek bir sunucu nesnesi ayarlar varsayılan örnek yerel bilgisayarda:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. ServerConnection nesnesi açın ve bağlanmak için aynı kodu ekleyip örnek.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. dac yüklemek için kod ekleme paket dosyası.Bu örnek bir MyApplicationVNext.dacpac dosyası yükler.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. dac dağıtım olaylara abone olmak için kod ekleyin.

    ## Subscribe to the DAC deployment events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  5. dac yükseltmek ve dac kapatmak için gerekli kodu ekleyin paket dosyası:

    ## Upgrade the DAC and create the database.
    $dacName  = "MyApplication"
    $evaluateTSPolicy = $true
    $ignoreDriftOption = $true
    $upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions($evaluateTSPolicy, $ignoreDriftOption)
    $dacstore.Upgrade($dacName, $dacType, $upgradeProperties)
    $fileStream.Close()
    

UgradeDAC.ps1 ya da bir PowerShell çalıştırma oturum içinde size yüklü sql Server PowerShell ek bileşen veya kullanarak sqlps komut istemi yardımcı programı.

Ayrıca bkz.

Kavramlar

Değişiklik Geçmişi

Güncelleştirilmiş içerik

PowerShell kullanma bölümüne eklendi.

Yerinde yükseltme ve dac Framework 1.1 Feature Pack ile ilgili bilgiler eklendi.