Erstellen von Skriptdateien (Db2ToSQL)

Bevor Sie die SQL Server Migration Assistant (SSMA)-Konsolenanwendung starten können, müssen Sie die Skriptdatei erstellen. Bei Bedarf können Sie auch die Variablenwertdatei und die Serververbindungsdatei erstellen.

Die Skriptdatei kann in drei Abschnitte unterteilt werden:

Abschnitt Beschreibung
config Legen Sie die Konfigurationsparameter für die Konsolenanwendung fest.
servers Legen Sie die Quell-/Zielserverdefinitionen fest. Kann sich auch in einer separaten Serververbindungsdatei befinden.
script-commands Führen Sie SSMA-Workflowbefehle aus.

Jeder Abschnitt wird in diesem Artikel ausführlich beschrieben.

Konfigurieren von SSMA-Konsolenanwendungseinstellungen

Die Konfigurationen eines Skripts werden in der Konsolenskriptdatei angezeigt.

Wenn eines der Elemente im Konfigurationsknoten angegeben ist, werden sie als globale Einstellung festgelegt. Mit anderen Worten, sie gelten für alle Skriptbefehle. Diese Konfigurationselemente können auch innerhalb der einzelnen Befehle im Skriptbefehlsbereich festgelegt werden, wenn Sie die globale Einstellung außer Kraft setzen möchten.

Zu den vom Benutzer konfigurierbaren Optionen gehören:

  1. Ausgabefensteranbieter: Wenn das Attribut suppress-messages auf true festgelegt ist, werden die befehlsspezifischen Nachrichten nicht auf der Konsole angezeigt.

    Attribut Beschreibung
    destination Gibt an, ob die Ausgabe in eine Datei oder an stdout ausgegeben werden soll false standardmäßig.
    file-name (wahlweise) Der Pfad der Datei.
    suppress-messages Unterdrückt Nachrichten auf der Konsole. false standardmäßig.

    Beispiel:

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

    oder

    <...All commands...>
      <output-window
         suppress-messages="<true/false>"   (optional)
         destination="<file/stdout>"        (optional)
         file-name="<file-name>"            (optional)
       />
    </...All commands...>
    
  2. Datenmigrationsverbindungsanbieter: Gibt an, welcher Quell-/Zielserver für die Datenmigration berücksichtigt werden soll. Source-use-last-used gibt an, dass der zuletzt verwendete Quellserver für die Datenmigration verwendet wird. Ebenso bedeutet target-use-last-used, dass der zuletzt verwendete Zielserver für die Datenmigration verwendet wird. Sie können den Server (Quelle oder Ziel) auch mithilfe der Attribute source-server oder target-server angeben.

    Es kann jeweils nur eins dieser Attribute festgelegt werden:

    • source-use-last-used="true" (Standard) oder source-server="<source-server-unique-name>"
    • target-use-last-used="true" (Standard) oder target-server="<target-server-unique-name>"

    Beispiel:

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

    oder

    <migrate-data>
      <data-migration-connection   source-server="<source-server-unique-name>"
                                   target-use-last-used="true"/>
    </migrate-data>
    
  3. Benutzereingabe-Popup: Ermöglicht die Behandlung von Fehlern, wenn die Objekte aus der Datenbank geladen werden. Sie geben die Eingabemodi an, und wenn ein Fehler auftritt, fährt die Konsole wie angegeben fort.

    Modus Beschreibung
    ask-user Fordert Sie auf, den Vorgang fortzusetzen (yes) oder mit einem Fehler abzubrechen (no).
    error (Standard) Die Konsole zeigt einen Fehler an und hält die Ausführung an.
    continue Die Konsole fährt mit der Ausführung fort.

    Beispiel:

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

    oder

    <!-- Connect to target database -->
    <connect-target-database server="<target-server-unique-name>">
      <user-input-popup mode="<ask-user/continue/error>"/>
    </connect-target-database>
    
  4. Anbieter für Wiederverbindungen: Hier können Sie die Wiederverbindungseinstellungen bei einem Verbindungsfehler festlegen. Dies kann sowohl für Quell- als auch für Zielserver festgelegt werden.

    Wiederverbindungsmodus Beschreibung
    reconnect-to-last-used-server Wenn die Verbindung nicht aktiv ist, versucht sie, die Verbindung mit dem letzten Server erneut herzustellen, der höchstens fünf Mal verwendet wurde.
    generate-an-error (Standard) Wenn die Verbindung nicht aktiv ist, wird ein Fehler generiert.

    Beispiel:

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

    oder

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

    oder

    <!--data migration-->
    <migrate-data server="<target-server-unique-name>">
      <reconnect-manager
        on-source-reconnect="reconnect-to-last-used-server"
        on-target-reconnect="generate-an-error"/>
    </migrate-data>
    
  5. Converter Overwrite Provider: Ermöglicht es Ihnen, Objekte zu behandeln, die bereits auf der Zielmetabasis vorhanden sind.

    Aktion Beschreibung
    error Die Konsole zeigt einen Fehler an und hält die Ausführung an.
    overwrite (Standard) Überschreibt vorhandene Objektwerte.
    skip Die Konsole überspringt die Objekte, die bereits in der Datenbank vorhanden sind.
    ask-user Fordert Sie zur Eingabe auf (yes / no).

    Beispiel:

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

    oder

    <convert-schema object-name="<object-name>">
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>
    </convert-schema>
    
  6. Anbieter für fehlende Voraussetzungen: Sie können sämtliche Voraussetzungen für die Verarbeitung eines Befehls behandeln. strict-mode ist standardmäßig false. Wenn true, dann wird eine Ausnahme generiert, weil die Voraussetzungen nicht erfüllt sind.

    Beispiel:

    <output-providers>
      <prerequisites strict-mode="<true/false>"/>
    </output-providers>
    
  7. Stop-Operation: Wenn Sie den Vorgang beenden möchten, kann der Strg+C-Hotkey während des Mittleren Vorgangs verwendet werden. SSMA für SSMA-Konsolenanwendung wartet auf den Abschluss des Vorgangs und beendet die Konsolenausführung.

    Wenn Sie die Ausführung sofort beenden möchten, kann die STRG+C-Hotkey zum Beenden der SSMA-Konsolenanwendung erneut gedrückt werden.

  8. Fortschrittsanbieter: Informiert über den Fortschritt jedes Konsolenbefehls. Standardmäßig deaktiviert. Die Statusberichtsattribute umfassen:

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

    Beispiel:

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

    oder

    <...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. Protokollausführlichkeit: legt den Ausführlichkeitsgrad des Protokolls fest. Dies entspricht der Option "Alle Kategorien" auf der Benutzeroberfläche.

    Protokollierungsebene Beschreibung
    fatal-error Es werden nur schwerwiegende Fehlermeldungen protokolliert.
    error (Standard) Es werden nur Fehler- und Schwerwiegende Fehlermeldungen protokolliert.
    warning Alle Ebenen mit Ausnahme von Debug- und Infomeldungen werden protokolliert.
    info Alle Ebenen mit Ausnahme von Debugmeldungen werden protokolliert.
    debug Alle protokollierten Nachrichtenebenen.

    Obligatorische Nachrichten werden auf jeder Ebene protokolliert.

    Beispiel:

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

    oder

    <...All commands...>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </...All commands...>
    
  10. Verschlüsseltes Kennwort überschreiben: Wenn true, überschreibt das im Serverdefinitionsbereich der Serververbindungsdatei oder in der Skriptdatei angegebene Klartextkennwort das im geschützten Speicher gespeicherte verschlüsselte Kennwort, sofern es vorhanden ist. Wenn kein Kennwort im Klartext angegeben ist, werden Sie aufgefordert, das Kennwort einzugeben.

    Hier ergeben sich zwei Fälle:

    1. Wenn die Überschreibungsoption auf false gesetzt ist, ist die Suchreihenfolge wie folgt: Geschützter Speicher > Skriptdatei > Serververbindungsdatei > Benutzer auffordern.

    2. Wenn die Option zur Außerkraftsetzung auf TRUE festgelegt ist, lautet die Reihenfolge für die Suche Skriptdatei > Serververbindungsdatei > Benutzeraufforderung.

    Beispiel:

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

Die nicht konfigurierte Option lautet:

  • Maximale Wiederholungsversuche: Wenn eine etablierte Verbindung aufgrund eines Netzwerkfehlers ausfällt oder unterbrochen wird, muss der Server erneut verbunden werden. Es sind maximal 5 Wiederverbindungsversuche zulässig; danach führt die Konsole die Wiederverbindung automatisch durch. Die Funktion der automatischen Wiederverbindung verringert den Aufwand, das Skript erneut auszuführen.

Serververbindungsparameter

Serververbindungsparameter können in der Skriptdatei oder in der Serververbindungsdatei definiert werden. Weitere Informationen finden Sie unter Erstellen der Serververbindungsdateien.

Skriptbefehle

Die Skriptdatei enthält eine Sequenz von Migrationsworkflowbefehlen im XML-Format. Die SSMA-Konsolenanwendung verarbeitet die Migration in der Reihenfolge der Befehle, die in der Skriptdatei angezeigt werden.

Beispielsweise folgt eine typische Datenmigration einer bestimmten Tabelle in einer Db2-Datenbank der Hierarchie der Schematabelle>.

Wenn alle Befehle in der Skriptdatei erfolgreich ausgeführt werden, wird die SSMA-Konsolenanwendung beendet. Der Inhalt einer Skriptdatei ist mehr oder weniger statisch mit Variableninformationen, die entweder in einer Variablenwertdatei enthalten sind, oder in einem separaten Abschnitt in der Skriptdatei für Variablenwerte.

Beispiel:

Hier ist ein Beispiel für die Skriptdateibefehle:

<ssma-script-file>
  <script-commands>
    <create-new-project project-folder="<project-folder>"
                        project-name="<project-name>"
                        overwrite-if-exists="<true/false>"/>
    <connect-source-database server="<source-server-unique-name>"/>
    <save-project/>
    <close-project/>
  </script-commands>
</ssma-script-file>

Vorlagen, die aus drei Skriptdateien (für die Ausführung verschiedener Szenarien), variabler Wertdatei und einer Serververbindungsdatei bestehen, werden im Ordner "Sample Console Scripts" des Produktverzeichnisses bereitgestellt:

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

Sie können die Vorlagen (Dateien) nach dem Ändern der dort angezeigten Parameter zur Relevanz ausführen.

Vollständige Liste der Skriptbefehle finden Sie in der SSMA-Konsole ausführen

Skriptdateiüberprüfung

Sie können die Skriptdatei anhand der Schemadefinitionsdatei O2SSConsoleScriptSchema.xsdüberprüfen, die Schemas im Ordner verfügbar ist.