Aracılığıyla paylaş


Nasıl yapılır: dac paketi doğrula

İçeriğini gözden geçirmek iyi bir fikir olabilir bir veri katmanı uygulaması , üretim ve varolan bir dac yükseltmek için dac paketini kullanmadan önce yükseltme işlemleri doğrulamak için dağıtmadan önce (dac) paket.Kuruluşunuzda geliştirilen paketler dağıtırken bu özellikle doğrudur.

Bir dac içeriğini görüntüleme

İçeriğini görüntülemek için iki mekanizma vardır bir DAC paket.Microsoft Visual Studio 2010 DAC projesi oluşturmak ve proje için dac paket içe aktarabilirsiniz.Paket içeriği, bir klasöre ayıklayın.

Güvenlik notuGüvenlik Notu

Aksi halde, öneririz dağıtmak bilinmeyen veya güvenilmeyen kaynaklardan gelen dac paket.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, yalıtılmış bir sınama örneğinde dağıtmak Veritabanı Altyapısı, çalıştırmak dbcc checkdb veritabanında ve ayrıca saklı yordamlar veya başka bir kullanıcı tarafından tanımlanan kod, veritabanı gibi bir kodu inceleyin.

İçeriğini görüntülemek için tek yönlü bir DAC paket Microsoft Visual Studio 2010 dac projesi oluþturup projeye paket almak için.Daha sonra Solution Explorer sunucu seçimi ilkesi ve öncesi ve Dağıtım sonrası kodları gibi dac tüm dosyaları açmak için.Kullanabileceğiniz Şema görünüm özellikle işlevler veya saklı yordamlar gibi nesnelerde kod gözden geçirme şemadaki tüm nesneleri gözden geçirmek için.

Visual Studio 2010 erişiminiz varsa, dac bir klasörün içeriğini ayıklayın.Transact-sql komut dosyaları, sql Server Management Studio'da Database Engine Query Editor ve Not Defteri gibi araçlar dosyaları daha sonra açabilirsiniz.Yönergeler için bkz: Nasıl yapılır: dac paketini.

Yükseltme Sihirbazı kullanarak doğrulama

Bir dac yükseltme öncesinde, iyi bir başlangıç dac dağıtımdan sonra veritabanında yapılan değişiklikler için ilk onay için uygulamadır ve yükseltme komut dosyası değişiklikleri gözden geçirmek için yapacaktır.Bu bilgileri görüntülemek için veri katmanı uygulama Yükseltme Sihirbazı'nı kullanabilirsiniz; Veritabanı değişiklikleri görüntülemek Değişikliği algılamak sayfa ve yükseltme işlemleri üzerinde özeti sayfa.' I İptal üzerinde özeti yükseltme gerçekleştirmek istiyorsanız, sayfa.Daha fazla bilgi için bkz: Nasıl yapılır: Bir veri katmanı uygulama yükseltme.

PowerShell kullanarak veritabanı değişiklikleri görüntüleme

dac paket yeni bir sürüm, bir önceki dac paketinden dağıtıldığı bir dac yükseltmek için kullanmadan önce veritabanına yükseltmeyi etkileyebilecek değişiklikler yapılıp yapılmadığını denetleyin.

Not

Bu konudaki PowerShell örnekler dac Framework 1.1 Feature Pack içinde sunulan yöntemleri kullanın.Buradan Feature Pack'i karşıdan yükleyebileceğiniz Web sayfa.

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

  1. smo sunucu nesnesi oluşturmak için kod ekleyin ve küme yükseltilmesi dac 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. Daha önce daıtılan dac belirtin ve ardından oluşturmak için kod ekleyin bir ChangeResults nesne ve kanal için yeni, basit bir rapor oluşturmak için bir metin dosyası silinmiş ve değişen nesneler.

    ## Specify the DAC instance name.
    $dacName  = "MyApplication"
    
    ## Generate the change list and save to file.
    $dacChanges = $dacstore.GetDatabaseChanges($dacName) | Out-File -Filepath C:\DACScripts\MyApplicationChanges.txt
    

.Ps1 dosya 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ı.

PowerShell kullanarak yükseltme bir komut dosyasını üret

dac paket yeni bir sürüm, bir önceki dac paketinden dağıtıldığı bir dac yükseltmek için kullanmadan önce içeren bir komut dosyası oluşturabileceğiniz Transact-SQL ifadeleri, yükseltme sırasında çalıştırılır ve Query gözden geçirinAşağıdaki kodu içeren bir PowerShell komut dosyası (.ps1) dosyası oluşturun:

  1. smo sunucu nesnesi oluşturmak için kod ekleyin ve küme yükseltilmesi dac 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 MyApplication.dacpac dosyası yükler.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. Daha önce daıtılan dac belirtin, sonra bir Transact-sql komut dosyası oluşturabilir ve bir .sql dosyasına yöneltmenize kodu ekleyin.Yeni DAC paket okumak için kullanılan filestream kapatın.

    ## Specify the DAC instance name.
    $dacName  = "MyApplication"
    
    ## Generate the upgrade script and save to file.
    $dacstore.GetIncrementalUpgradeScript($dacName, $dacType) | Out-File -Filepath C:\DACScripts\MyApplicationUpgrade.sql
    
    ## Close the filestream to the new DAC package.
    $fileStream.Close()
    

.Ps1 dosya 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ı.

DACs karşılaştırma

Bir dac yükseltmeden önce veritabanı ve örnek düzey nesneleri geçerli ve yeni DACs arasındaki farklar da inceleyebilirsiniz.İçin geçerli dac paketinin bir kopyasını yoksa yapabilirsiniz ayıklamak geçerli veritabanından bir paket.

Visual Studio 2010 dac projelerde hem dac paketleri almak, şema karşılaştırmak kullanabilirsiniz araç iki DACs arasındaki farkları çözümlemek için.

Visual Studio 2010 erişiminiz varsa, DACs ayrı klasöre ayıklayın.Farkları çözümlemek için Windiff.exe yardımcı programını gibi bir fark araç daha sonra kullanabilirsiniz.