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

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

Файл скрипта состоит из трех разделов:

  1. config: задайте параметры конфигурации для консольного приложения.

  2. servers: задайте определения исходного и целевого сервера. Эти определения также можно поместить в отдельный файл подключения к серверу.

  3. script-commands: выполните команды рабочего процесса SSMA.

Каждый раздел подробно описан в следующих разделах:

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

Файл скрипта консоли отображает конфигурации скрипта.

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

Вы можете настроить следующие параметры:

  1. Поставщик окна вывода: если атрибут suppress-messages установлен на 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-use-last-used указывает, что последний используемый исходный сервер используется для миграции данных. Аналогичным образом, target-use-last-used указывает, что для миграции данных используется последний применявшийся целевой сервер. Используйте атрибуты source-server или target-server атрибуты, чтобы указать сервер.

    Можно использовать только один из следующих атрибутов:

    • source-use-last-used="true" (по умолчанию) или source-server="source_servername"
    • target-use-last-used="true" (по умолчанию) или target-server="target_servername"

    Пример:

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

    или

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

    К ним относятся следующие режимы:

    • ask-user: запрашивает у пользователя продолжение (yes) или завершение из-за ошибки (no).
    • error: консоль отображает ошибку и останавливает выполнение.
    • continue: консоль продолжает выполнение.

    Режим по умолчанию — error.

    Пример:

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

    или

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

    Режимы повторного подключения:

    • reconnect-to-last-used-server: если подключение не активно, он пытается повторно подключиться к последнему серверу, используемому не более пяти раз.
    • generate-an-error: если подключение не активно, система создает ошибку.

    Режим по умолчанию — 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_0">
      <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="ssma.TT1">
      <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 ожидает завершения операции и завершает выполнение консоли.

    Если вы хотите немедленно остановить выполнение, нажмите клавиши 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. Подробность ведения журнала: Задает уровень детализации журнала. Этот параметр соответствует параметру "Все категории " в пользовательском интерфейсе. По умолчанию уровень детализации журнала равен error.

    Параметры уровня ведения журнала включают:

    • fatal-error: регистрирует только неустранимые сообщения об ошибках.
    • error: записывает только сообщения об ошибках и сообщения о критических ошибках.
    • warning: регистрирует все уровни, кроме отладочных и информационных сообщений.
    • info: регистрирует все уровни, кроме отладочных сообщений.
    • debug: регистрирует все уровни сообщений.

    Замечание

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

    Пример:

    <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 обрабатывает миграцию в порядке команд, отображаемых в файле скрипта.

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

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

Пример:

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

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

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

Вы можете выполнить шаблоны после изменения параметров для релевантности.

Полный список команд скриптов см. в разделе "Выполнение консоли SSMA".

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

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