Udostępnij za pośrednictwem


Jak Sprawdzanie poprawności pakietu DAC

Dobrze przejrzeć zawartość jest aplikacja warstwy danych (DAC) pakiet przed jego wdrożeniem w produkcji i sprawdzić uaktualnienia akcje przed użyciem pakiet DAC uaktualnienie istniejącego DAC.Jest to szczególnie ważne podczas wdrażania pakietów, które nie zostały opracowane w organizacji.

Przeglądanie zawartości DAC

Istnieją dwa mechanizmy służące do wyświetlania zawartości pakiet DAC.Można tworzyć projekt DAC w Microsoft Visual Studio 2010 i zaimportować pakiet DAC do projektu.Można rozpakować zawartość pakiet do folderu.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zaleca się, czy nie wdrożyć pakiet DAC z nieznanych lub niezaufanych źródeł.Takie DACs może zawierać złośliwy kod, który może wykonać niezamierzone Transact-SQL Kod lub przyczyny błędów przez zmodyfikowanie schematu.Przed użyciem DAC z nieznanych lub niezaufanych źródło należy wdrożyć go na izolowanych test wystąpienie Aparat baz danych, uruchom dbcc checkdb w bazie danych, a także sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

Jednym ze sposobów wyświetlenia zawartości pakiet DAC jest tworzenie projekt DAC w Microsoft Visual Studio 2010 i zaimportować pakiet do projektu.Następnie można użyć Solution Explorer otworzyć wszystkie pliki w DAC, takich jak zasady wyboru serwera i skrypty przed sprzedażą i powdrożeniowe ze strony działu.Można użyć Widok schematu do przeglądania wszystkich obiektów w schemacie, szczególnie przeglądając kod w obiektach takich jak procedury przechowywanej lub funkcji.

Jeśli nie masz dostępu do programu Visual Studio 2010, można rozpakować zawartość DAC do folderu.Skrypty języka Transact-SQL można otworzyć Edytor kwerendy aparat bazy danych w programie SQL Server Management Studio i plików w menu Narzędzia, takiego jak Notatnik.Aby uzyskać instrukcje, zobacz Jak Rozpakuj pakiet DAC.

Sprawdzanie poprawności za pomocą kreatora uaktualnienia

Przed uaktualnieniem DAC, jest dobrą praktyką najpierw sprawdzą zmian, które zostały wprowadzone do bazy danych po wdrożeniu wstępnym DAC i przejrzeć uaktualnienia skryptu zmian spowoduje, że.Kreator uaktualniania aplikacji poziomu danych służy do wyświetlania tych informacji; zmiany w bazie danych można przeglądać na Wykryć zmianę strona i uaktualniania akcje na Podsumowanie strona.Kliknij anulowanie na Podsumowanie strona, jeśli nie chcesz przeprowadzić uaktualnienie.Aby uzyskać więcej informacji, zobacz Jak Uaktualnianie aplikacji warstwie danych.

Wyświetlanie zmian bazy danych przy użyciu PowerShell

Przed użyciem nową wersja pakiet DAC uaktualnić DAC, który został wdrożony z wcześniejszych pakiet DAC, sprawdź, jeśli wprowadzono zmiany do bazy danych, która może wpłynąć na uaktualnienie.

Ostrzeżenie

W tym temacie Przykłady PowerShell metody wprowadzone DAC Framework 1.1 Feature Pack.Feature Pack można pobrać z tej strona sieci Web.

Utwórz plik skryptu (.ps1) PowerShell zawierający następujący kod:

  1. Dodawanie kodu do utworzenia obiektu SMO serwera i zestaw go do wystąpienia zawierające DAC uaktualnienia.W tym przykładzie ustawia obiekt serwera wystąpienie domyślne na komputerze lokalnym:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Dodaj kod, otwórz obiekt ServerConnection i podłączyć do tego samego wystąpienie.

    ## 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. Dodaj kod określ wcześniej wdrożonym DAC, a następnie utworzyć ChangeResults obiektu i rur do pliku tekstowego, aby wygenerować raport prosty z nowych, usunięty i zmienione obiekty.

    ## 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
    

Uruchom plik .ps1 z sesja PowerShell który załadowano SQL Server przystawki PowerShell lub za pomocą sqlps Narzędzie wiersz polecenia.

Generowanie skryptu uaktualniania, używając PowerShell

Przed użyciem nową wersja pakiet DAC uaktualnić DAC, który został wdrożony z wcześniejszych pakiet DAC, można wygenerować plik skryptu, który zawiera Transact-SQL sprawozdań, które będą uruchamiane podczas uaktualniania, a następnie przejrzyj script.Utwórz plik skryptu (.ps1) PowerShell zawierający następujący kod:

  1. Dodawanie kodu do utworzenia obiektu SMO serwera i zestaw go do wystąpienia zawierające DAC uaktualnienia.W tym przykładzie ustawia obiekt serwera wystąpienie domyślne na komputerze lokalnym:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Dodaj kod, otwórz obiekt ServerConnection i podłączyć do tego samego wystąpienie.

    ## 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. Dodaj kod załadować plik pakiet DAC.Ten przykład ładuje plik MyApplication.dacpac

    ## 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. Dodaj kod określ wcześniej wdrożonym DAC, utworzyć skrypt języka Transact-SQL i potoku go do pliku .sql.Zamknij filestream odczytane nowy pakiet DAC.

    ## 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()
    

Uruchom plik .ps1 z sesja PowerShell który załadowano SQL Server przystawki PowerShell lub za pomocą sqlps Narzędzie wiersz polecenia.

Porównywanie DACs

Przed uaktualnieniem DAC, można także przejrzeć różnice w bazie danych i wystąpienie-poziom obiektów między DACs bieżące oraz nowe.Jeśli nie masz kopii pakietu bieżącego DAC, można wyodrębnić pakiet z bieżącej bazy danych.

Oba pakiety DAC importować do projektów DAC w Visual Studio 2010, można za pomocą narzędzie Porównanie schematu analizę różnic między dwoma DACs.

Jeśli nie masz dostępu do programu Visual Studio 2010, rozpakowywanie DACs w osobnych folderach.Narzędzie różnicy, takie jak narzędzie WinDiff można następnie analizować różnice.