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


Выполнение консоли SSMA (AccessToSQL)

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

Команды файла скрипта проекта

Команды Project обрабатывают создание проектов, открытие, сохранение и выход из проектов.

create-new-project

Создает новый проект SSMA.

Атрибут Значение по умолчанию Описание Тип
project-folder нет Указывает папку создаваемого проекта. Строка
project-name нет Указывает имя проекта. Строка
overwrite-if-exists false Необязательный атрибут, указывающий, следует ли перезаписывать существующий проект. Логический
project-type sql-server-2008 Необязательный атрибут элемента . Для следующих вариантов доступны project-typeследующие варианты:

sql-server-2005
sql-server-2008
sql-server-2012
sql-server-2014
sql-server-2016
sql-azure
Строка

Пример синтаксиса

<create-new-project
  project-folder="<project-folder>"
  project-name="<project-name>"
  overwrite-if-exists="<true | false>"
  project-type="<project-type>"
/>

open-project

Открывает существующий проект.

Атрибут Значение по умолчанию Описание Тип
project-folder нет Указывает папку создаваемого проекта. Команда завершается ошибкой, если указанная папка не существует. Строка
project-name нет Указывает имя проекта. Команда завершается ошибкой, если указанный проект не существует. Строка

Пример синтаксиса

<open-project
  project-folder="<project-folder>"
  project-name="<project-name>"
/>

Примечание.

Приложение SSMA for Access Console поддерживает обратную совместимость. Вы можете открывать проекты, созданные предыдущей версией SSMA.

save-project

Сохраняет проект миграции.

Пример синтаксиса

<save-project/>

close-project

Закрывает проект миграции.

Атрибут Значение по умолчанию Описание Тип
if-modified ignore Необязательный атрибут для указания поведения. Возможные значения: save, errorи ignore. Строка

Пример синтаксиса

<close-project
  if-modified="<save/error/ignore>"   (optional)
/>

Атрибут if-modified является необязательным, игнорируется по умолчанию.

Команды файла скрипта подключения к базе данных

Команды подключения к базе данных помогают подключиться к базе данных.

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

Параметры проверки подлинности Windows и порта не применимы при подключении к SQL Azure.

Дополнительные сведения см. в разделе "Создание файлов скриптов " (AccessToSQL)".

connect-source-database

Выполняет подключение к исходной базе данных и загружает высокоуровневые метаданные исходной базы данных, но не все метаданные.

Если подключение к источнику не удается установить, создается ошибка, и консольное приложение останавливает дальнейшее выполнение.

Определение server извлекается из атрибута имени, определенного для каждого подключения в server разделе файла подключения сервера или файла скрипта.

Пример синтаксиса

<connect-source-database server="<server-unique-name>"/>

load-access-database

Используется для загрузки файлов базы данных доступа.

Атрибут Значение по умолчанию Описание Тип
database-file нет Указывает путь к базе данных Access. Строка

Пример синтаксиса

<load-access-database  database-file="<Access-database>"/>

-или-

<load-access-database>
  <access-database database-file="<Access-database1>"/>
  <access-database database-file="<Access-database2>"/>
</load-access-database>

force-load исходная или целевая база данных

Загружает исходные метаданные. Полезно для работы с проектом миграции в автономном режиме.

Если не удается установить подключение к источнику или целевому объекту, создается ошибка, и консольное приложение останавливает дальнейшее выполнение.

Требуется один или несколько metabase узлов в качестве параметра командной строки.

Атрибут Значение по умолчанию Описание Тип
object-name нет Указывает имя объекта. Строка
metabase нет Указывает путь к базе данных Access. Возможные значения: sourcetarget Строка

Пример синтаксиса

<force-load
  object-name="<object-name>"
  metabase="<source/target>"/>

-или-

<force-load>
  <metabase-object object-name="<object-name>"/>
</force-load>

reconnect-source-database

Повторно подключается к базе данных-источнику, но не загружает метаданные в отличие от команды connect-source-database.

Если не удается установить подключение (re)к источнику, создается ошибка, а консольное приложение останавливает дальнейшее выполнение.

Определение server извлекается из атрибута имени, определенного для каждого подключения в server разделе файла подключения сервера или файла скрипта.

Пример синтаксиса

<reconnect-source-database server="<server-unique-name>"/>

connect-target-database

Подключается к целевой базе данных SQL Server или Базе данных SQL Azure и загружает высокоуровневые метаданные целевой базы данных, но не полностью метаданные.

Если подключение к целевому объекту не удается установить, создается ошибка, и консольное приложение останавливает дальнейшее выполнение.

Определение server извлекается из атрибута имени, определенного для каждого подключения в server разделе файла подключения сервера или файла скрипта.

Пример синтаксиса

<connect-target-database  server="<server-unique-name>"/>

reconnect-target-database

Повторно подключается к целевой базе данных, но не загружает метаданные, в отличие от команды connect-target-database.

Если не удается установить подключение (re)к целевому объекту, создается ошибка, а консольное приложение останавливает дальнейшее выполнение.

Определение server извлекается из атрибута имени, определенного для каждого подключения в server разделе файла подключения сервера или файла скрипта.

Пример синтаксиса

<reconnect-target-database server="<server-unique-name>"/>

Команды файла скрипта отчета

Команды отчета создают отчеты о производительности различных действий консоли SSMA

generate-assessment-report

Создает отчеты об оценке в исходной базе данных.

Если подключение к базе данных-источнику не выполняется перед выполнением этой команды, создается ошибка и консольное приложение завершает работу.

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

Скрипт

  • assessment-report-folder: указывает папку, в которой можно хранить отчет об оценке. (необязательный атрибут)

  • object-name: указывает объекты, которые рассматриваются для создания отчета об оценке (у него могут быть отдельные имена объектов или имя объекта группы).

  • object-type: указывает тип объекта, указанного в атрибуте имени объекта (если указана категория объекта, то тип объекта будет "category").

  • assessment-report-overwrite: указывает, следует ли перезаписать папку отчета оценки, если она уже существует.

    Значение по умолчанию: false. (необязательный атрибут)

  • write-summary-report-to: указывает путь, по которому будет создан отчет.

    Если упоминается только путь к папке, создается файл по имени AssessmentReport<n>.XML . (необязательный атрибут)

    Создание отчета имеет две дополнительные подкатегории:

    • report-errors (="true/false", с значением по умолчанию "false" (необязательные атрибуты))
    • verbose (="true/false", с значением по умолчанию "false" (необязательные атрибуты))

Пример синтаксиса

<generate-assessment-report
  object-name="ssma.Procedures"
  object-type="category"
  write-summary-report-to="<file>"             (optional)
  verbose="<true/false>"                       (optional)
  report-errors="<true/false>"                 (optional)
  conversion-report-folder="<folder>"          (optional)
  conversion-report-overwrite="<true/false>"   (optional)
/>

-или-

<generate-assessment-report
  conversion-report-folder="<folder>"            (optional)
  conversion-report-overwrite="<true/false>"     (optional)
>
    <metabase-object object-name="ssma.Procedures"
        object-type="category"/>
</generate-assessment-report>

Команды файла скрипта миграции

Команды миграции преобразуют схему целевой базы данных в исходную схему и переносятся данные на целевой сервер.

Параметр выходных данных консоли по умолчанию для команд миграции — "Полный" выходной отчет без подробных отчетов об ошибках: только сводка по корневому узлу дерева исходного объекта.

convert-schema

Выполняет преобразование схемы из источника в целевую схему.

Если подключение к исходной или целевой базе данных не выполняется перед выполнением этой команды или подключение к исходному или целевому серверу базы данных завершается сбоем во время выполнения команды, создается ошибка и консольное приложение завершает работу.

Скрипт

  • conversion-report-folder: указывает папку, в которой можно хранить отчет об оценке. (необязательный атрибут)

  • object-name: указывает исходные объекты, которые рассматриваются для преобразования схемы (у него могут быть отдельные имена объектов или имя объекта группы).

  • object-type: указывает тип объекта, указанного в атрибуте имени объекта (если указана категория объекта, то тип объекта будет "category").

  • conversion-report-overwrite: указывает, следует ли перезаписать папку отчета оценки, если она уже существует.

    Значение по умолчанию: false. (необязательный атрибут)

  • write-summary-report-to: указывает путь, по которому будет создан отчет.

    Если упоминается только путь к папке, создается файл по имени SchemaConversionReport<n>.XML . (необязательный атрибут)

    Создание отчета имеет две дополнительные подкатегории:

    • report-errors (="true/false", с значением по умолчанию "false" (необязательные атрибуты))
    • verbose (="true/false", с значением по умолчанию "false" (необязательные атрибуты))

Пример синтаксиса

<convert-schema
  object-name="ssma.Procedures"
  object-type="category"
  write-summary-report-to="<filepath/folder>"     (optional)
  verbose="<true/false>"                          (optional)
  report-errors="<true/false>"                    (optional)
  conversion-report-folder="<folder>"             (optional)
  conversion-report-overwrite="<true/false>"      (optional)
/>

-или-

<convert-schema
  conversion-report-folder="<folder>"         (optional)
  conversion-report-overwrite="<true/false>"  (optional)
>
  <metabase-object object-name="ssma.Procedures"
    object-type="category"/>
</convert-schema>

migrate-data

Переносит исходные данные в целевой объект.

Скрипт

  • object-name: указывает исходные объекты, которые рассматриваются для переноса данных (у него могут быть отдельные имена объектов или имя объекта группы).

  • object-type: указывает тип объекта, указанного в атрибуте имени объекта (если указана категория объекта, то тип объекта будет "category").

  • write-summary-report-to: указывает путь, по которому будет создан отчет.

    Если упоминается только путь к папке, создается файл по имени DataMigrationReport<n>.XML . (необязательный атрибут)

    Создание отчета имеет две дополнительные подкатегории:

    • report-errors (="true/false", с значением по умолчанию "false" (необязательные атрибуты))

    • verbose (="true/false", с значением по умолчанию "false" (необязательные атрибуты))

Пример синтаксиса

<migrate-data
  write-summary-report-to="<filepath/folder>"
  report-errors="true" verbose="true">
    <metabase-object object-name="ssma.TT1"/>
    <metabase-object object-name="ssma.TT2"/>
    <metabase-object object-name="ssma.TT3"/>
    <data-migration-connection
      source-use-last-used="true"/source-server="<server-unique-name>"
      target-use-last-used="true"/target-server="<server-unique-name>"/>
</migrate-data>

-или-

<migrate-data
  object-name="ssma.Tables"
  object-type="category"
  write-summary-report-to="<filepath/folder>"
  report-errors="true" verbose="true"/>

Эта команда связывает исходную таблицу (Access) с целевой таблицей.

Скрипт

Пример синтаксиса

<link-tables>
  <metabase-object object-name="AccessDatabase.table1" object-type="Tables"/>
  <metabase-object object-name="AccessDatabase.table2" object-type="Tables"/>
</link-tables>

-или-

<link-tables>
  <metabase-object object-name="AccessDatabase.Tables" object-type="category"/>
</link-tables>

Эта команда отменяет связь исходной таблицы (Access) из целевой таблицы.

Скрипт

Примеры синтаксиса:

<unlink-tables>
  <metabase-object object-name="AccessDatabase.table1" object-type="Tables"/>
  <metabase-object object-name="AccessDatabase.table2" object-type="Tables"/>
</unlink-tables>

-или-

<unlink-tables>
  <metabase-object object-name="AccessDatabase.Tables" object-type="category"/>
</unlink-tables>

Команды файла скрипта подготовки миграции

Команда подготовки миграции запускает сопоставление схем между исходными и целевыми базами данных.

map-schema

Сопоставление схемы исходной базы данных с целевой схемой.

Скрипт

  • source-schema указывает исходную схему, которую планируется перенести.
  • sql-server-schema указывает целевую схему, в которой мы хотим перенести ее.

Пример синтаксиса

<map-schema source-schema="source-schema"
            sql-server-schema="target-schema"/>

Команды управляемости

Команды управляемости помогают синхронизировать целевые объекты базы данных с исходной базой данных.

Параметр выходных данных консоли по умолчанию для команд миграции — "Полный" выходной отчет без подробных отчетов об ошибках: только сводка по корневому узлу дерева исходного объекта.

synchronize-target

Синхронизирует целевые объекты с целевой базой данных. Если эта команда выполняется в исходной базе данных, возникает ошибка.

Если подключение к целевой базе данных не выполняется перед выполнением этой команды или подключение к целевому серверу базы данных завершается сбоем во время выполнения команды, создается ошибка, и консольное приложение завершает работу.

Скрипт

  • object-name: указывает целевые объекты, которые рассматриваются для синхронизации с целевой базой данных (это может иметь отдельные имена объектов или имя объекта группы).

  • object-type: указывает тип объекта, указанного в атрибуте имени объекта (если указана категория объекта, то тип объекта ).category

  • on-error: указывает, следует ли указывать ошибки синхронизации в качестве предупреждений или ошибок. Доступные варианты для ошибки:

    • предупреждение от общего числа отчетов
    • report-each-as-warning
    • скрипт fail-script
  • report-errors-to: указывает расположение отчета об ошибке для операции синхронизации (необязательный атрибут), если задан только путь к папке, создается файл по имени TargetSynchronizationReport.XML .

Пример синтаксиса

<synchronize-target
  object-name="ots_triggers.dbo"
  on-error="<report-total-as-warning|
             report-each-as-warning|
             fail-script>"              (optional)
  report-errors-to="<file-name>"        (optional)
/>

-или-

<synchronize-target
  object-name="ssma.dbo.Procedures"
  object-type="category"/>

-или-

<synchronize-target>
  <metabase-object object-name="ssma.dbo.TT1"/>
  <metabase-object object-name="ssma.dbo.TT2"/>
  <metabase-object object-name="ssma.dbo.TT3"/>
</synchronize-target>

refresh-from-database

Обновляет исходные объекты из базы данных. Если эта команда выполняется в целевой базе данных, создается ошибка.

Скрипт

Требуется один или несколько узлов метабазы в качестве параметра командной строки.

  • object-name: указывает исходные объекты, которые рассматриваются для обновления из исходной базы данных (это может иметь отдельные имена объектов или имя объекта группы).

  • object-type: указывает тип объекта, указанного в атрибуте имени объекта (если указана категория объекта, то тип объекта ).category

  • on-error: указывает, следует ли указывать ошибки обновления в качестве предупреждений или ошибок. Доступные варианты для ошибки:

    • report-total-as-warning
    • report-each-as-warning
    • fail-script
  • report-errors-to: указывает расположение отчета об ошибке для операции обновления (необязательный атрибут), если задан только путь к папке, создается файл по имени SourceDBRefreshReport.XML .

Пример синтаксиса

<refresh-from-database
  object-name="ssma.TT1"
  on-error="<report-total-as-warning|
             report-each-as-warning|
             fail-script>"              (optional)
  report-errors-to="<file-name>"        (optional)
/>

-или-

<refresh-from-database
  object-name="ssma.Procedures"
  object-type="category"/>

-или-

<refresh-from-database>
  <metabase-object object-name="ssma.TT_1"/>
</refresh-from-database>

Команды файла скрипта создания скриптов

Команды создания скриптов помогают сохранить выходные данные консоли в файле скрипта.

save-as-script

Используется для сохранения скриптов объектов в файл, упомянутый при метабазе=target, это альтернатива команде синхронизации, в которой мы получаем скрипты и выполняем то же самое в целевой базе данных.

Скрипт

Требуется один или несколько узлов метабазы в качестве параметра командной строки.

  • object-name: указывает объекты, скрипты которых необходимо сохранить. (У него могут быть отдельные имена объектов или имя объекта группы).

  • object-type: указывает тип объекта, указанного в атрибуте object-name . Если указана категория объектов, то тип объекта — category.

  • metabase: указывает, является ли это исходной или целевой метабазой.

  • destination: указывает путь или папку, в которой должен быть сохранен скрипт. Если имя файла не задано, то имя файла в формате (object_name attribute value).

  • overwrite: если true он перезаписывается, если существуют те же имена файлов. Он может иметь значения (true/false).

Пример синтаксиса

<save-as-script
  metabase="<source/target>"
  object-name="ssma.dbo.Procedures"
  object-type="category"
  destination="<file/folder>"
  overwrite="<true/false>"             (optional)
/>

-или-

<save-as-script
  metabase="<source/target>"
  destination="<file/folder>"
>
    <metabase-object object-name="ssma.dbo.Procedures"
                     object-type="category"/>
</save-as-script>