Поделиться через


Создание файлов скриптов (Db2ToSQL)

Прежде чем запустить консольное приложение Помощник по миграции SQL Server (SSMA), необходимо создать файл скрипта. При необходимости можно также создать файл значения переменной и файл подключения сервера.

Файл скрипта можно разделить на три раздела:

Раздел Описание
config Задайте параметры конфигурации для консольного приложения.
servers Задайте определения исходного или целевого сервера. Также может находиться в отдельном файле подключения к серверу.
script-commands Выполните команды рабочего процесса SSMA.

Каждый раздел подробно описан в этой статье.

Настройка параметров консольного приложения SSMA

Конфигурации скрипта отображаются в файле скрипта консоли.

Если любой из элементов указан в узле конфигурации, они задаются в качестве глобального параметра. Другими словами, они применяются ко всем командам скрипта. Эти элементы конфигурации также можно задать в каждой команде в разделе "Скрипт-команда", если вы хотите переопределить глобальный параметр.

Параметры, настраиваемые пользователем, включают:

  1. Поставщик окна вывода: если атрибут suppress-messages установлен как true, сообщения, связанные с командой true, не отображаются в консоли.

    Атрибут Описание
    destination Указывает, нужно ли выводить данные в файл или stdout. По умолчанию: false.
    file-name (необязательно) Путь к файлу.
    suppress-messages Подавляет сообщения в консоли. По умолчанию: false.

    Пример:

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

    или

    <...All commands...>
      <output-window
         suppress-messages="<true/false>"   (optional)
         destination="<file/stdout>"        (optional)
         file-name="<file-name>"            (optional)
       />
    </...All commands...>
    
  2. Поставщик подключения для миграции данных: указывает, какой исходный или целевой сервер следует учитывать для миграции данных. Последнее использование источника указывает, что последний используемый исходный сервер используется для миграции данных. Аналогичным образом, целевой сервер, который использовался последним, указывает, что именно он используется для миграции данных. Вы также можете указать сервер (источник или назначение), используя атрибуты source-server или target-server.

    Одновременно можно задать только один из этих атрибутов:

    • source-use-last-used="true" (по умолчанию) или source-server="<source-server-unique-name>"
    • target-use-last-used="true" (по умолчанию) или target-server="<target-server-unique-name>"

    Пример:

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

    или

    <migrate-data>
      <data-migration-connection   source-server="<source-server-unique-name>"
                                   target-use-last-used="true"/>
    </migrate-data>
    
  3. Всплывающее окно ввода пользователя: позволяет обрабатывать ошибки при загрузке объектов из базы данных. Вы предоставляете режимы ввода и при возникновении ошибки консоль продолжается, как указано.

    Режим Описание
    ask-user Запрашивает продолжение (yes) или завершает с ошибкой (no).
    error (по умолчанию) Консоль отображает ошибку и останавливает выполнение.
    continue Консоль продолжает выполнение.

    Пример:

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

    или

    <!-- Connect to target database -->
    <connect-target-database server="<target-server-unique-name>">
      <user-input-popup mode="<ask-user/continue/error>"/>
    </connect-target-database>
    
  4. Функция повторного подключения: Позволяет задать параметры при сбое связи. Это можно задать как для исходных, так и для целевых серверов.

    Режим повторного подключения Описание
    reconnect-to-last-used-server Если подключение не активно, он пытается повторно подключиться к последнему серверу, используемому в течение пяти раз.
    generate-an-error (по умолчанию) Если подключение не активно, создается ошибка.

    Пример:

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

    или

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

    или

    <!--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. Поставщик перезаписи конвертера: позволяет обрабатывать объекты, которые уже присутствуют в целевой метабазе.

    Действие Описание
    error Консоль отображает ошибку и останавливает выполнение.
    overwrite (по умолчанию) Перезаписывает существующие значения объектов.
    skip Консоль пропускает объекты, которые уже существуют в базе данных.
    ask-user Запрашивает входные данные (yes / no).

    Пример:

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

    или

    <convert-schema object-name="<object-name>">
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>
    </convert-schema>
    
  6. Поставщик ошибок предпосылок: вы можете обработать все предпосылки, необходимые для выполнения команды. По умолчанию strict-mode имеет значение false. Если true, генерируется исключение в случае несоответствия предварительным требованиям.

    Пример:

    <output-providers>
      <prerequisites strict-mode="<true/false>"/>
    </output-providers>
    
  7. Остановить операцию: во время средней операции, если вы хотите остановить операцию, можно использовать клавиши CTRL+C . SSMA для консольного приложения SSMA ожидает завершения операции и завершает выполнение консоли.

    Если вы хотите немедленно остановить выполнение, можно снова нажать клавиши CTRL+C для завершения консольного приложения SSMA.

  8. Информатор прогресса: сообщает о ходе выполнения каждой команды консоли. Выключено по умолчанию. Атрибуты отчетов о ходе выполнения состоят из следующих элементов:

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

    Пример:

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

    или

    <...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. Подробность средства ведения журнала. Устанавливает уровень подробности журнала. Это соответствует параметру "Все категории " в пользовательском интерфейсе.

    Уровень логгера Описание
    fatal-error Регистрируются только сообщения о фатальной ошибке.
    error (по умолчанию) Регистрируются только сообщения об ошибках и неустранимых ошибках.
    warning Регистрируются все уровни, кроме отладочных и информационных сообщений.
    info Регистрируются все уровни, кроме отладочных сообщений.
    debug Записаны все уровни сообщений.

    Обязательные сообщения регистрируются на любом уровне.

    Пример:

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

    или

    <...All commands...>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </...All commands...>
    
  10. Переопределение зашифрованного пароля: если true в разделе определения сервера файла подключения сервера или в файле скрипта указан открытый текстовый пароль, он переопределяет зашифрованный пароль, хранящийся в защищенном хранилище, если он существует. Если пароль не указан в виде ясного текста, вам будет предложено ввести пароль.

    Здесь возникают два случая:

    1. Если параметр переопределения имеет значение false, порядок поиска: "Защищенное хранилище" > "Сценарийный файл" > "Файл подключения к серверу" > "Запрос пользователя".

    2. Если параметр переопределения имеет значение true, порядок поиска — это файл скрипта > файл подключения к серверу > запрос пользователя.

    Пример:

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

Неконфигурируемый параметр:

  • Максимальное количество попыток повторного подключения: когда установленное соединение теряется или прерывается из-за сбоя сети, необходимо повторно подключить сервер. Попытки повторного подключения разрешены максимум 5 повторных попыток, после чего консоль автоматически выполняет повторное подключение. Средство автоматического повторного подключения сокращает усилия при повторном запуске скрипта.

Параметры подключения сервера

Параметры подключения к серверу можно определить в файле скрипта или в файле подключения сервера. Дополнительные сведения см. в разделе "Создание файлов подключения к серверу".

Команды скрипта

Файл скрипта содержит последовательность команд рабочего процесса миграции в формате XML. Консольное приложение SSMA обрабатывает миграцию в порядке команд, отображаемых в файле скрипта.

Например, типичный перенос данных определенной таблицы в базе данных Db2 следует иерархии схемы>таблицы.

После успешного выполнения всех команд в файле скрипта консольное приложение SSMA завершает работу. Содержимое файла скрипта является более или менее статическим с сведениями о переменных, содержащихся либо в файле значения переменной, либо в отдельном разделе в файле скрипта для значений переменных.

Пример:

Ниже приведен пример команд файла скрипта:

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

Шаблоны, состоящие из трех файлов скриптов (для выполнения различных сценариев), файла значения переменной и файла подключения к серверу предоставляются в папке примеров скриптов консоли каталога продукта:

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

Вы можете выполнить шаблоны (файлы) после изменения параметров, отображаемых там для релевантности.

Полный список команд скриптов можно найти, выполнив консоль SSMA

Проверка файла скрипта

Вы можете проверить файл скрипта на соответствие файлу определения схемы O2SSConsoleScriptSchema.xsd, который находится в папке Schemas.