Udostępnij przez


Tworzenie plików skryptów (AccessToSQL)

Przed uruchomieniem aplikacji konsolowej programu SQL Server Migration Assistant (SSMA) utwórz plik skryptu. W razie potrzeby utwórz plik wartości zmiennej i plik połączenia serwera.

Plik skryptu zawiera trzy sekcje:

  1. config: ustaw parametry konfiguracji dla aplikacji konsolowej.

  2. servers: Ustaw definicje serwera źródłowego i docelowego. Te definicje można również umieścić w osobnym pliku połączenia serwera.

  3. script-commands: Wykonaj polecenia przepływu pracy SSMA.

Każda sekcja została szczegółowo opisana w następujących sekcjach:

Konfigurowanie ustawień konsoli dostępu

Plik skryptu konsoli wyświetla konfiguracje skryptu.

Jeśli określisz dowolne elementy w węźle konfiguracji, ustawisz ustawienie globalne dla wszystkich poleceń skryptu. Aby zastąpić ustawienie globalne, ustaw te elementy konfiguracji w ramach każdego polecenia w script-command sekcji .

Można skonfigurować następujące opcje:

  1. Dostawca okna danych wyjściowych: jeśli ustawisz suppress-messages atrybut na true, konsola nie wyświetli komunikatów specyficznych dla polecenia. Atrybuty są:

    • destination: określa, czy dane wyjściowe są drukowane w pliku, czy stdout. Ten atrybut jest false domyślnie.

    • file-name: ścieżka pliku (opcjonalnie).

    • suppress-messages: Pomija komunikaty w konsoli. Ten atrybut jest false domyślnie.

    Przykład:

    <output-providers>
      <output-window
        suppress-messages="<true/false>"   (optional)
        destination="<file/stdout>"        (optional)
        file-name="<file-name>"            (optional)
       />
    </output-providers>
    

    lub

    <...All commands...>
      <output-window
         suppress-messages="<true/false>"   (optional)
         destination="<file/stdout>"        (optional)
         file-name="<file-name>"            (optional)
       />
    </...All commands...>
    
  2. Dostawca połączenia migracji danych: określa, który źródłowy lub docelowy serwer ma być używany do migracji danych. source-use-last-used wskazuje, że ostatni używany serwer źródłowy jest używany do migracji danych. Podobnie wskazuje, target-use-last-used że ostatni używany serwer docelowy jest używany do migracji danych. Użyj atrybutów source-server lub target-server, aby określić serwer.

    Można użyć tylko jednego z następujących atrybutów:

    • source-use-last-used="true" (wartość domyślna) lub source-server="source_servername"
    • target-use-last-used="true" (wartość domyślna) lub target-server="target_servername"

    Przykład:

    <output-providers>
      <data-migration-connection   source-use-last-used="true"
                                   target-server="target_1"/>
    </output-providers>
    

    lub

    <migrate-data>
      <data-migration-connection   source-server="source_1"
                                   target-use-last-used="true"/>
    </migrate-data>
    
  3. Wyskakujące okno danych wejściowych użytkownika: obsługuje błędy podczas ładowania obiektów z bazy danych przez konsolę. Użytkownik dostarcza tryby wprowadzania, a jeśli wystąpi błąd, konsola postępuje zgodnie z określeniem użytkownika.

    Tryby obejmują:

    • ask-user: prosi użytkownika o kontynuowanie (yes) lub zakończenie z błędem (no).
    • error: konsola wyświetla błąd i zatrzymuje wykonywanie.
    • continue: Konsola kontynuuje wykonywanie poleceń.

    Domyślnym trybem jest error.

    Przykład:

    <output-providers>
      <user-input-popup mode="<ask-user/continue/error>"/>
    </output-providers>
    

    lub

    <!-- Connect to target database -->
    <connect-target-database server="target_0">
      <user-input-popup mode="<ask-user/continue/error>"/>
    </connect-target-database>
    
  4. Ponownie połącz dostawcę: ustawia ustawienia ponownego nawiązywania połączenia, jeśli występują błędy połączenia. Ustaw tę opcję zarówno dla serwerów źródłowych, jak i docelowych.

    Tryby ponownego nawiązywania połączenia to:

    • reconnect-to-last-used-server: Jeśli połączenie nie jest aktywne, próbuje ponownie nawiązać połączenie z ostatnim serwerem używanym co najwyżej pięć razy.
    • generate-an-error: Jeśli połączenie nie jest aktywne, system generuje błąd.

    Domyślnym trybem jest generate-an-error.

    Przykład:

    <output-providers>
      <reconnect-manager on-source-reconnect="<reconnect-to-last-used-server/generate-an-error>"
                         on-target-reconnect="<reconnect-to-last-used-server/generate-an-error>"/>
    </output-providers>
    

    lub

    <!--synchronization-->
    <synchronize-target>
      <reconnect-manager on-target-reconnect="reconnect-to-last-used-server"/>
    </synchronize-target>
    

    lub

    <!--data migration-->
    <migrate-data server="target_0">
      <reconnect-manager
        on-source-reconnect="reconnect-to-last-used-server"
        on-target-reconnect="generate-an-error"/>
    </migrate-data>
    
  5. Dostawca nadpisywania konwertera: To ustawienie służy do zarządzania obiektami, które są już obecne w metabasie docelowej. Możliwe działania obejmują:

    • error: konsola wyświetla błąd i zatrzymuje wykonywanie.
    • overwrite: zastępuje istniejące wartości obiektów. Ta akcja jest domyślna.
    • skip: konsola pomija obiekty, które już istnieją w bazie danych.
    • ask-user: monituje użytkownika o podanie danych wejściowych (yes lub no).

    Przykład:

    <output-providers>
      <object-overwrite action="<error|skip|overwrite|ask-user>"/>
    </output-providers>
    

    lub

    <convert-schema object-name="ssma.TT1">
      <object-overwrite action="<error|skip|overwrite|ask-user>"/>
    </convert-schema>
    
  6. Dostawca wymagań wstępnych, które nie powiodły się: użyj tego ustawienia, aby obsłużyć wszelkie wymagania wstępne wymagane do przetworzenia polecenia. Domyślnie strict-mode jest false. Jeśli ustawisz go na truewartość , system wygeneruje wyjątek z powodu niepowodzenia spełnienia wymagań wstępnych.

    Przykład:

    <output-providers>
      <prerequisites strict-mode="<true|false>"/>
    </output-providers>
    
  7. Zatrzymaj operację: Aby zatrzymać operację podczas operacji środkowej, użyj skrótu klawiaturowego Ctrl+C . Konsola SSMA czeka na zakończenie operacji i zakończa pracę konsoli.

    Jeśli chcesz natychmiast zatrzymać wykonywanie, naciśnij ponownie skrót klawiaturowy Ctrl+C , aby nagle zakończyć działanie aplikacji konsolowej SSMA.

  8. Dostawca postępu: informuje o postępie każdego polecenia konsoli. To ustawienie jest domyślnie wyłączone. Atrybuty raportowania postępu obejmują:

    • off
    • every-1%
    • every-2%
    • every-5%
    • every-10%
    • every-20%

    Przykład:

    <output-providers>
      <progress-reporting enable="<true|false>"           (optional)
                          report-messages="<true|false>"  (optional)
                          report-progress="every-1%|every-2%|every-5%|every-10%|every-20%|off" (optional)/>
    </output-providers>
    

    lub

    <...All commands...>
      <progress-reporting
        enable="<true|false>"              (optional)
        report-messages="<true|false>"     (optional)
        report-progress="every-1%|every-2%|every-5%|every-10%|every-20%|off"     (optional)/>
    </...All commands...>
    
  9. Poziom szczegółowości rejestratora: ustawia poziom szczegółowości dziennika. To ustawienie odpowiada opcji Wszystkie kategorie w interfejsie użytkownika. Domyślnie poziom szczegółowości dziennika to error.

    Opcje na poziomie rejestratora obejmują:

    • fatal-error: Rejestruje tylko komunikaty o błędach krytycznych.
    • error: rejestruje tylko komunikaty o błędach i błędach krytycznych.
    • warning: rejestruje wszystkie poziomy z wyjątkiem komunikatów debugowania i informacji.
    • info: rejestruje wszystkie poziomy z wyjątkiem komunikatów debugowania.
    • debug: rejestruje wszystkie poziomy komunikatów.

    Uwaga / Notatka

    Program SSMA rejestruje obowiązkowe komunikaty na dowolnym poziomie.

    Przykład:

    <output-providers>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </output-providers>
    

    lub

    <...All commands...>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </...All commands...>
    
  10. Zamień zaszyfrowane hasło: jeśli true sekcja definicji serwera w pliku połączenia serwera lub pliku skryptu używa hasła w formacie tekstu jawnego, aby zamienić zaszyfrowane hasło przechowywane w chronionym magazynie, jeśli istnieje. Jeśli nie określono hasła w postaci zwykłego tekstu, użytkownik zostanie poproszony o wprowadzenie hasła.

    Pojawiają się dwa przypadki:

    1. Jeśli opcja przesłonięcia to false, kolejność wyszukiwania to Chronione przechowywanie > Plik skryptu > Plik połączenia serwera > Poproś użytkownika.

    2. Jeśli opcja zastąpienia to true, kolejność wyszukiwania to plik skryptu > plik połączenia z serwerem > zapytaj użytkownika.

    Przykład:

    <output-providers>
      <encrypted-password override="<true/false>"/>
    </output-providers>
    

Opcja niekonfigurowalna to:

  • Maksymalna liczba ponownych prób nawiązania połączenia: gdy upłynie limit czasu połączenia lub przerwie się z powodu awarii sieci, serwer musi ponownie nawiązać połączenie. Konsola umożliwia maksymalnie pięć ponownych prób połączenia (5). Po tych ponownych próbach konsola automatycznie wykonuje ponowne połączenie. Funkcja automatycznego ponownego łączenia zmniejsza nakład pracy podczas ponownego uruchamiania skryptu.

Parametry połączenia serwera

Parametry połączenia serwera można zdefiniować w pliku skryptu lub w pliku połączenia serwera. Aby uzyskać więcej informacji, zobacz Tworzenie plików połączenia serwera.

Polecenia skryptu

Plik skryptu zawiera sekwencję komend przepływu migracji w formacie XML. Aplikacja konsolowa SSMA przetwarza migrację w kolejności poleceń wyświetlanych w pliku skryptu.

Na przykład typowa migracja danych określonej tabeli w bazie danych programu Access jest zgodna z hierarchią: Tabela bazy danych > .

Po pomyślnym wykonaniu wszystkich poleceń w pliku skryptu aplikacja konsolowa SSMA kończy działanie i zwraca kontrolę użytkownikowi. Zawartość pliku skryptu jest mniej lub bardziej statyczna, a informacje o zmiennych zawarte są w plikach wartości zmiennych lub w oddzielnej sekcji w pliku skryptu dla wartości zmiennych.

Przykład:

<!--Sample of script file commands -->
<ssma-script-file>
  <script-commands>
    <create-new-project project-folder="$project_folder$"
                        project-name="$project_name$"
                        overwrite-if-exists="true"/>
    <connect-source-database server="source_2"/>
    <save-project/>
    <close-project/>
  </script-commands>
</ssma-script-file>

Folder Przykładowe skrypty konsolowe w katalogu produktu zawiera szablony, które składają się z trzech plików skryptów (do wykonywania różnych scenariuszy), pliku zawierającego wartości zmiennych oraz pliku połączeń do serwera.

  • AssessmentReportGenerationSample.xml
  • ConversionAndDataMigrationSample.xml
  • VariableValueFileSample.xml
  • ServersConnectionFileSample.xml

Szablony można wykonać po zmianie parametrów w celu uzyskania trafności.

Aby uzyskać pełną listę poleceń skryptu, zobacz Wykonywanie konsoli SSMA.

Walidacja pliku skryptu

Można zweryfikować plik skryptu względem pliku definicji schematu w folderze Schemas.