Udostępnij za pośrednictwem


Jak Uaktualnianie aplikacji warstwie danych

Użyj albo uaktualnienia aplikacja warstwy danych kreatora lub skrypt środowiska Windows PowerShell zmiany schematu i właściwości aktualnie wdrożony aplikacja warstwy danych (DAC), aby dopasować schemat i właściwości zdefiniowane w nowej wersja DAC.

W miejscu i uaktualnień obok siebie

Istnieją dwa typy uaktualnień DAC:

  • Uaktualnienie side-by-side zachowuje kopię istniejącej bazy danych podczas tworzenia nowej bazy danych ma schemat, zdefiniowane w nowej wersja DAC.Następnie kopiuje dane ze starej bazy danych do nowej bazy danych.

  • Uaktualnienia w miejscu zmienia schemat istniejącej bazy danych, aby dopasować schemat zdefiniowany w nowej wersja DAC.

SQL Server 2008 R2 i Microsoft Visual Studio 2010 uwzględniane DAC Framework 1.0, które są obsługiwane tylko przez siebie uaktualnień.Nie obsługują uaktualnień przez siebie SQL Azure.Visual Studio 2010 SP1 zawiera nową DAC Framework 1.1, które użytkownicy programu SQL Server można pobrać z DAC Framework 1.1 Feature Pack strona.DAC Framework 1.1 wprowadza uaktualnienia w miejscu, które są obsługiwane w obu SQL Azure i wystąpienia Aparat baz danych.Aby uzyskać więcej informacji na temat DAC Framework 1.1 zobacz Obsługa DAC obiektów programu SQL Server i wersje

Bieżąca wersja kreatora uaktualnienia DAC używa DAC Framework 1.0 do wykonania uaktualnienia side-by-side.Bieżący plany są zmiany kreatora do wykonywania uaktualnienia w miejscu, w przyszłości SQL Server 2008 R2 Service Pack.

Przygotowanie do uaktualnienia

Właściwe jest ustalenie przejęcie pełnej bazy danych kopia zapasowa przed rozpoczęciem uaktualniania.Jeśli uaktualnienie napotka błąd i nie wycofać wszystkich aktualizacji, konieczne może być przywrócenie kopii zapasowej.

Istnieje kilka czynności, jakie należy podjąć, aby sprawdzić poprawność pakiet DAC i działania uaktualniania.Aby uzyskać więcej informacji dotyczących sposobu wykonywania tych kontroli, zobacz Jak Sprawdzanie poprawności pakietu DAC.

  • Zaleca się, aby nie można uaktualnić za pomocą 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 rozpakować DAC i sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika.

  • Jeśli po oryginalnej DAC został wdrożony zostały wprowadzone zmiany w bieżącej bazie danych, niektóre zmiany uniemożliwiają pomyślne zakończenie uaktualniania lub usunięta przez uaktualnienie.Przegląd powinien najpierw generować raport o wszelkich zmianach dokonanych w bazie danych.

  • Aby wygenerować listę zmian schematu, aktualizacja będzie wykonywać i ich weryfikację problemów rozsądne jest.

Wybierz opcje uaktualnienia DAC

Istnieją cztery opcje uaktualniania uaktualnienia w miejscu:

Ignoruj utraty danych — Jeśli True, uaktualnianie będzie kontynuowane, nawet jeśli niektóre operacje utratę danych.Jeśli False, działania te będą kończyć uaktualnienia.Na przykład jeśli tabela w bieżącej bazie danych nie jest obecny w schemacie nowe DAC, tabela będą opuszczane, jeśli określono wartość True.Ustawieniem domyślnym jest True.

Blok na zmiany — Jeśli True, uaktualnienia jest zakończony, jeśli schemat bazy danych jest inny niż określone w poprzednim DAC.Jeśli False, uaktualnienia nadal, nawet jeśli wykryto zmiany.Ustawieniem domyślnym jest False.

Wycofywanie po awarii — Jeśli True, uaktualnienia są ujęte w transakcjach, i jeśli wystąpią błędy wycofywania będą wypróbowywane.Jeśli False, wszystkie zmiany są zobowiązane są one wprowadzane i jeśli wystąpi błąd, konieczne może być przywracanie poprzedniej kopia zapasowa bazy danych.Ustawieniem domyślnym jest False.

Pomiń sprawdzanie zasad — Jeśli True, zasadę wyboru DAC serwera nie jest oceniany.Jeśli False, oceniane zasad i uaktualnienia kończy, jeśli występuje błąd sprawdzania poprawności.Ustawieniem domyślnym jest False.

Istnieją dwie opcje uaktualnienia uaktualnień obok siebie:

  • Dryf Ingore — Jeśli True, uaktualnienia nadal, nawet jeśli wykryto zmiany.Jeśli False, uaktualnienia jest zakończony, jeśli schemat bazy danych jest inny niż określone w poprzednim DAC.

  • Wywołać zasady usług terminalowych — Jeśli True, oceniane zasadę wyboru DAC serwera i uaktualnienia kończy, jeśli występuje błąd sprawdzania poprawności.Jeśli False, zasada nie jest oceniany.

Wymagania

DAC można uaktualnić tylko przez członków sysadmin lub serveradmin stała rola serweras, lub logowania, które są w dbcreator stała rola serwera i mieć uprawnienia logowania dowolnego ALTER.Identyfikator logowania musi być właścicielem istniejącej bazy danych.Wbudowane SQL Server administrator systemu konto o nazwie sa można także uruchomić kreatora.

Nazwa aplikacji w pakiet DAC musi odpowiadać nazwie aplikacji bieżącej rozmieszczonej DAC.Na przykład, jeśli bieżącym DAC ma nazwę aplikacji z GeneralLedger, możesz uaktualnić tylko za pomocą pakiet DAC, zawierający nazwę aplikacji GeneralLedger.

Hasła logowania

Aby zwiększyć bezpieczeństwo, SQL Server uwierzytelniania logowania są przechowywane w pakiecie DAC bez każde hasło.Po wdrożeniu lub uaktualniony pakiet logowania jest tworzona jako wyłączone logowania z wygenerowane hasło.Aby włączyć logowania, zaloguj się przy użyciu identyfikatora logowania, który ma uprawnienia logowania dowolnego ALTER i włączyć logowania i przypisać użytkownikowi nowe hasło, które mogą być przekazywane za pomocą zmiany logowania.Nie jest to potrzebne dla logowania do uwierzytelniania systemu Windows, jak ich hasła nie są zarządzane przez program SQL Server.

Zagadnienia dotyczące miejsca

W przypadku uaktualnienia w miejscu badaniem podstawowym miejsca jest można rejestrować wszystkie zmiany miejsca dziennika transakcji.

Uaktualnienie side-by-side zachowuje bieżącej bazy danych na wdrożonym DAC oprócz tworzenia nowej bazy danych i kopiowanie istniejących danych do nowej bazy danych.Należy udostępnić wystarczającą ilość wolnego miejsca na dysku do przechowania nowej bazy danych jest tak duży jak istniejącej bazy danych.Przed uruchomieniem uaktualnienia side-by-side, zapewnienia ilość danych w bieżącej bazie danych nie jest zbyt duży, aby dopasowanie w nowej bazie danych.Baza danych utworzona przez uaktualnienie ma domyślne ustawienia rozmiaru instrukcja CREATE DATABASE.Wartością domyślną jest jeden plik danych z rozmiarem początkowym 3 MB i nieograniczoną liczbę przyrostów 1 MB i jeden plik dziennika, początkowy rozmiar 1 MB i limitu maksymalnego rozmiaru 2 GB.

Opcje bazy danych obok siebie

Uaktualnianie side-by-side baza danych utworzona podczas fazy wdrożenia mają wszystkie ustawienia domyślne z instrukcja CREATE DATABASE, z wyjątkiem:

  • Poziom zgodności i sortowanie bazy danych są zestaw wartości zdefiniowanych w pakiecie DAC.Wbudowane z projektu programu Visual Studio DAC używa wartości zestaw w projekt DAC.Pakiet z istniejącej bazy danych używa wartości pierwotnej bazy danych.

  • Można dostosować niektóre ustawienia bazy danych, takie jak nazwa i ścieżki bazy danych, w Aktualizacja konfiguracji strona.

Niektóre opcje bazy danych, takich jak TRUSTWORTHY, DB_CHAINING i HONOR_BROKER_PRIORITY, nie może zostać skorygowana jako część procesu wdrażania.Nie można zmodyfikować właściwości fizycznych, takich jak liczba aplikacjami, lub numery i rozmiary plików jako część procesu wdrażania.Po zakończeniu rozmieszczania, można użyć instrukcja ALTER DATABASE SQL Server Management Studio, lub SQL Server PowerShell, aby dostosować bazy danych.Aby uzyskać więcej informacji, zobacz Modyfikowanie bazy danych.

Uaktualnienia DAC za pomocą PowerShell w miejscu

W tym przykładzie użyto DAC Framework 1.1 IncrementalUpgrade() metoda, aby wykonać uaktualnienie DAC w miejscu.Ta metoda uaktualni DACs albo SQL Server lub SQL Azure.Aby pobrać nowe ramy, zobacz dac Framework 1.1 Feature Pack.

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

  1. Dodawanie kodu do utworzenia obiektu SMO serwera i zestaw go do wystąpienia zawierającego bazę danych, z którego chcesz wyodrębnić DAC.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 MyApplicationVNext.dacpac

    ## 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. Dodawanie kodu do subskrybować zdarzenia wdrażania DAC.

    ## 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. Dodać kod DAC uaktualnienia i opcje uaktualnienia uaktualnienie DAC i zamknąć plik pakiet DAC:

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

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

Uaktualnienie DAC obok siebie za pomocą Kreatora

W Management Studio, można uruchomić Kreatora uaktualniania aplikacji warstwie danych otwierając węzeł serwera w Object Explorer, wybieranie Management węzeł, a następnie wybierając aplikacje w warstwie danych węzła.Kliknij prawym przyciskiem myszy aplikacja warstwy danych węzeł w Object Explorer, a następnie wybierz uaktualnienia aplikacja warstwy danych…

PrzestrogaPrzestroga

Bieżąca wersja kreatora uaktualnienia DAC wykonuje uaktualnienie side-by-side, który nie jest obsługiwany w SQL Azure.

Do przechodzenia do szczegółów dla strona w kreatorze, kliknij łącze na liście poniżej:

  • Wprowadzenie strony

  • Wybierz stronę pakietu

  • Przejrzyj zasady strony

  • Wykrycie zmiany strony

  • Strony Podsumowanie

  • Uaktualnij strony DAC

Wprowadzenie strony

Ta strona opisuje kroki uaktualniania aplikacja warstwy danych.

Nie pokazuj ponownie tej strona. -Kliknij pole wyboru, aby zatrzymać strona są wyświetlane w przyszłości.

Dalej > -przechodzi do Zaznacz pakiet strona.

Anulowanie -zamyka kreatora bez uaktualniania DAC.

Wybierz stronę pakietu

Ta strona służy do określania pakiet DAC, który zawiera nową wersja aplikacja warstwy danych.strona Przejścia przez dwa Państwa.

Wybierz pakiet DAC

Wybierz pakiet DAC wdrożyć za pomocą stan początkowy strona.Pakiet DAC musi być prawidłową plik pakietu DAC i musi mieć rozszerzenie .dacpac.Nazwa aplikacji DAC w pakiet DAC musi być taka sama jak nazwa aplikacji bieżącej DAC.

Pakiet DAC - określ ścieżka i nazwę pakietu DAC, zawierający nową wersja pliku aplikacja warstwy danych.Można wybrać Przeglądaj przycisk po prawej stronie pola i przejdź do lokalizacji pakiet DAC.

Nazwa aplikacji -pola tylko do odczytu, która wyświetla nazwę aplikacji DAC przypisany podczas DAC został utworzony lub wyodrębnionym z bazy danych.

Wersja -pole tylko do odczytu, które wyświetla wersję przypisany podczas DAC został utworzony lub wyodrębnionym z bazy danych.

Opis -pola tylko do odczytu, który wyświetla opis napisane DAC został utworzony lub wyodrębnionym z bazy danych.

<Poprzednie -zwraca wprowadzenie strona.

Dalej > - Wyświetla pasek postępu, jak Kreator potwierdza, że wybrany plik jest prawidłowym pakiet DAC.

Anulowanie -zamyka kreatora bez uaktualniania DAC.

Sprawdzanie poprawności pakietu DAC

Wyświetla pasek postępu Kreator potwierdza, że wybrany plik jest prawidłowy pakiet DAC.Jeżeli pakiet DAC jest sprawdzana, Kreator przechodzą do Przeglądu zasad strona.Jeśli plik nie jest prawidłowy pakiet DAC, Kreator pozostaje na Zaznacz pakiet DAC.Wybierz inny nieprawidłowy pakiet DAC lub anulować kreatora i wygenerować nowy pakiet DAC.

Sprawdzanie poprawności zawartości DAC -pasek postępu, który raportuje stan bieżącego procesu sprawdzania poprawności.

<Poprzednie -zwraca do początkowego stanu Zaznacz pakiet strona.

Dalej > -przechodzi do ostatecznej wersja Zaznacz pakiet strona.

Anulowanie -zamyka kreatora bez wdrażania DAC.

Przejrzyj zasady strony

Użyj tej strona do przeglądu wyniki oceny zasad DAC serwera zaznaczenia, jeśli DAC zasadę.Zasadę wyboru DAC serwera jest opcjonalny i przypisany do DAC utworzony w programie Microsoft Visual Studio.Zasady używa aspekty zasad wyboru serwera w celu określenia warunków wystąpienie Aparat baz danych należy spełnić, aby obsługiwać DAC.

Wyniki oceny warunków — raport pokazujący czy oceny warunków zasady wyboru DAC serwera powiodło się tylko do odczytu.Wyniki oceny każdego warunku są raportowane w osobnym wierszu.

Ignoruj naruszenia zasad -służy to pole wyboru, aby kontynuować uaktualnianie, jeśli jeden lub więcej warunków polis nie powiodło się.Zaznacz tę opcję tylko, jeśli masz pewność, że wszystkie warunki, które nie będą uniemożliwiać udana DAC.

<Poprzednie -zwraca Zaznacz pakiet strona.

Dalej > -przechodzi do Wykryć zmianę strona.

Anulowanie -zamyka kreatora bez uaktualniania DAC.

Wykrycie zmiany strony

Użyj tej strona przedstawia wyniki wyboru Kreatorzy do zmian wprowadzonych w bazie danych dla schematu inny niż definicji schematu przechowywane metadane DAC w msdb.Na przykład jeśli instrukcji CREATE, ALTER lub UPUSZCZANIA były używane do dodawania, zmienianie lub usuwanie obiektów z bazy danych po DAC pierwotnie został wdrożony.strona najpierw Wyświetla pasek postępu, a następnie przedstawia wyniki analizy.

Wykrywanie zmian, może to potrwać kilka minut -Wyświetla pasek postępu, jak Kreator sprawdza, czy różnice między bieżącego schematu bazy danych i obiektów w definicji DAC.

Zmienić wyniki wykrywania: -Wskazuje, że analiza została ukończona, a wyniki przedstawione są poniżej.

Baza danych nie zmienił DatabaseName -Kreator nie wykrył żadnych różnic w obiektów zdefiniowanych w bazie danych i ich odpowiednikami w definicji DAC.

Baza danych zmieniła DatabaseName -Kreator wykrył zmiany między obiektami w bazie danych i ich odpowiednikami w definicji DAC.

Kontynuować pomimo utracie zmian -Określa, że niektóre obiekty zrozumieć lub w bieżącej bazie danych nie będzie obecny w nowej bazie danych i że zamierzamy kontynuować uaktualnianie.Ten przycisk należy wybrać tylko wtedy, gdy zostały przeanalizowane raport zmian i zrozumienie kroki należy wykonać, aby ręcznie przenieść dane wymagane do nowej bazy danych ani obiektów.Jeśli nie masz pewności, kliknij Zapisz raport przycisk, aby zapisać raport zmiany, a następnie kliknij anulowanie.Raport analizy, planowania, jak przenieść wszystkie obiekty wymagane i dane po zakończeniu uaktualniania, a następnie uruchom ponownie kreatora.Aby uzyskać więcej informacji, zobacz Uaktualnianie danych warstwa aplikacji.

Zapisz raport -kliknij przycisk Zapisz raport zmian Kreator wykrył między obiektami w bazie danych i ich odpowiednikami w definicji DAC.Następnie można przejrzeć raport, aby określić, czy konieczne jest podjęcie działań po zakończeniu uaktualniania niektóre lub wszystkie obiekty wyświetlane w raporcie do nowej bazy danych.

<Poprzednie -zwraca Zaznacz pakiet DAC strona.

Dalej > -przechodzi do Podsumowanie strona.

Anulowanie -zamyka kreatora bez wdrażania DAC.

Strony Podsumowanie

Użyj tej strona do recenzji akcje, kreator podejmie podczas uaktualniania DAC.

Następujące ustawienia będą używane do uaktualnienia swojego DAC. -Przegląd informacji wyświetlanych w celu zapewnienia działania podejmowane będą poprawne.Zostanie wyświetlone okno DAC wybranych do uaktualnienia i pakiet DAC, zawierające nową wersja DAC.Zostanie również wyświetlone okno bieżącą wersja bazy danych jest taka sama jak bieżąca definicja DAC, czy baza danych została zmieniona.

<Poprzednie -powrót do Wykryć zmianę strona.

Dalej > - wdraża DAC i wyświetla wyniki w Uaktualnienia DAC strona.

Anulowanie -zamyka kreatora bez wdrażania DAC.

Uaktualnij strony DAC

Ta strona zgłasza sukces lub niepowodzenie operacji uaktualniania.

Uaktualnianie DAC -zgłasza sukces lub niepowodzenie każdego akcja podjęte w celu uaktualnienia DAC.Przegląd informacji do ustalenia Powodzenie lub niepowodzenie każdej akcja.Wszelkie akcja, które napotkał błąd będą mieli łącze w wynik kolumna.Wybierz łącze, aby wyświetlić raport o błędzie dla tej akcja.

Zapisz raport -należy wybrać ten przycisk, aby zapisać raport o uaktualnieniu pliku HTML.Plik raportuje stan każdego akcja, w tym wszystkie błędy generowane przez akcje.Folderem domyślnym jest program SQL Server Management Studio\DAC pakietów folder w folderze dokumenty konta systemu Windows.

Zakończ -zamyka kreatora.

Uaktualnienie DAC obok siebie za pomocą PowerShell

W tym przykładzie użyto DAC Framework 1.0 Upgrade() metoda, aby wykonać uaktualnienie DAC obok siebie.Upgrade() metoda zostaną usunięte w następnej wersja SQL Server, a nie obsługuje SQL Azure.Preferowaną metodą jest użycie DAC Framework 1.1 IncrementalUpgrade() metoda (objęte powyżej) do wykonywania uaktualnienia w miejscu.Utwórz plik skryptu (np. UpgradeDAC.ps1) PowerShell zawierający następujący kod.

  1. Dodawanie kodu do utworzenia obiektu SMO serwera i zestaw go do wystąpienia zawierającego bazę danych, z którego chcesz wyodrębnić DAC.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 MyApplicationVNext.dacpac

    ## 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. Dodawanie kodu do subskrybować zdarzenia wdrażania DAC.

    ## 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. Dodaj kod, aby uaktualnić DAC i zamknąć plik pakiet DAC:

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

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

Zobacz także

Koncepcje

Historia zmian

Zaktualizowana zawartość

Dodano sekcji przy użyciu PowerShell.

Dodano informacje o uaktualnienie w miejscu i DAC Framework 1.1 Feature Pack.