Программа dtexec

Применимо к: даSQL Server (все поддерживаемые версии) да Azure-SSIS Integration Runtime в Фабрике данных Azure

Программа командной строки dtexec используется для настройки и выполнения пакетов служб SQL Server Службы Integration Services. Служебная программа dtexec обеспечивает доступ ко всем функциям настройки и выполнения пакетов, таким как параметры, подключения, свойства, переменные, средства ведения журналов и индикаторы выполнения. Служебная программа dtexec позволяет загружать пакеты из следующих источников: сервер Службы Integration Services, ISPAC-файл проекта, база данных Microsoft SQL Server, хранилище пакетов Integration Services и файловая система.

ПРИМЕЧАНИЕ. При использовании текущей версии служебной программы dtexec для выполнения пакета, созданного в более ранней версии Службы Integration Services, программа временно обновляет пакет до текущего формата. Однако программа dtexec не позволяет сохранить обновленный пакет. Дополнительные сведения об окончательном обновлении пакета до текущей версии см. в разделе Upgrade Integration Services Packages.

Этот раздел включает следующие подразделы:

Сервер служб Integration Services и файл проекта

При использовании dtexec для запуска пакетов на сервере Службы Integration Services программа dtexec вызывает хранимые процедуры catalog.create_execution (база данных SSISDB), catalog.set_execution_parameter_value (база данных SSISDB) и catalog.start_execution (база данных SSISDB) для создания выполнения, задания значения параметров и запуска выполнения. Все журналы выполнения можно просматривать на сервере в соответствующих представлениях или с помощью стандартных отчетов, доступных в среде SQL Server Management Studio. Дополнительные сведения об отчетах см. в разделе Отчеты для сервера служб Integration Services.

Ниже приводится пример выполнения пакета на сервере служб Службы Integration Services .

DTExec /ISSERVER "\SSISDB\folderB\Integration Services Project17\Package.dtsx" /SERVER "." /Envreference 2 /Par "$Project::ProjectParameter(Int32)";1 /Par "Parameter(Int32)";21 /Par "CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb /Par "$ServerOption::SYNCHRONIZED(Boolean)";True  

При использовании dtexec для запуска пакета из ISPAC-файла проекта применяются параметры /Proj[ect] и /Pack[age] для указания пути к проекту и имени потока проекта. При преобразовании проекта в модель развертывания пакета путем запуска Мастера преобразования проекта служб Integration Services в среде SQL Server Management Studio, мастер создает файл проекта ISPAC. Дополнительные сведения см. в разделе Развертывание проектов и пакетов служб Integration Services (SSIS).

Вместе с программой dtexec можно использовать сторонние средства для планирования времени запуска пакетов, развернутых на сервере служб Службы Integration Services .

Вопросы установки на 64-разрядные компьютеры

На 64-разрядном компьютере службы Службы Integration Services устанавливают 64-разрядную версию программы dtexec (dtexec.exe). Если какие-либо пакеты нужно запустить в 32-разрядном режиме, следует установить 32-разрядную версию программы dtexec . Чтобы установить 32-разрядную версию программы dtexec , во время установки необходимо выбрать клиентские средства или среду SQL Server Data Tools (SSDT) .

По умолчанию на 64-разрядном компьютере, на котором установлены и 64-разрядная, и 32-разрядная версия программы командной строки служб Службы Integration Services , будет запущена 32-разрядная версия командной строки. 32-разрядная версия запускается, потому что путь к каталогу для 32-разрядной версии появляется в переменной среды PATH перед путем к каталогу для 64-разрядной версии. (Обычно путь к каталогу 32-разрядной версии имеет вид <drive> :\Program Files(x86)\Microsoft SQL Server\110\DTS\Binn, а путь к каталогу 64-разрядной версии — <drive> :\Program Files\Microsoft SQL Server\110\DTS\Binn.)

ПРИМЕЧАНИЕ. Если для запуска программы используется агент SQL Server, то он автоматически использует 64-разрядную версию программы. Чтобы определить точное расположение исполняемого файла программы, агент SQL Server использует реестр, а не переменную среды PATH.

Чтобы убедиться, что в командной строке запущена 64-разрядная версия программы, выполните одно из следующих действий.

  • Откройте окно командной строки, измените путь к каталогу, содержащему 64-разрядную версию программы ( <drive> :\Program Files\Microsoft SQL Server\110\DTS\Binn), а затем запустите программу из указанного расположения.

  • В командной строке запустите программу, введя полный путь ( <drive> :\Program Files\Microsoft SQL Server\110\DTS\Binn) к ее 64-разрядной версии.

  • Окончательно измените порядок путей в переменной среды PATH, поместив в переменной путь к 64-разрядной версии ( <drive> :\Program Files\Microsoft SQL Server\110\DTS\Binn) перед путем к 32-разрядной версии ( <drive> :\ Program Files(x86)\Microsoft SQL Server\110\DTS\Binn).

Рекомендации для компьютеров, где проведены параллельные установки

Если Службы SQL Server 2019 Integration Services (SSIS) установлено на компьютере, где установлено Службы SQL Server 2005 Integration Services (SSIS) или Службы SQL Server 2008 Integration Services (SSIS) , устанавливаются несколько версий программы dtexec .

Чтобы убедиться в том, что запускается правильная версия программы, в командной строке запустите программу, введя полный путь ( <drive> :\Program Files\Microsoft SQL Server\<версия>\DTS\Binn).

Этапы выполнения

Программа во время выполнения проходит четыре стадии. Они перечислены далее.

  1. Стадия обработки команды: командная строка считывает список указанных параметров и аргументов. В случае обнаружения параметра /? все последующие стадии пропускаются. Или обнаруживается параметр /HELP .

  2. Стадия загрузки пакета: происходит загрузка пакета, указанного параметрами /SQL, /FILE или /DTS.

  3. Стадия настройки: параметры обрабатываются в следующем порядке:

    • параметры, устанавливающие флаги, переменные и свойства пакета;

    • параметры, проверяющие номера версии и сборки пакета;

    • параметры, задающие поведение программы во время выполнения, например вывод отчетов.

  4. Стадия проверки и выполнения: пакет выполняется или проверяется без запуска, если был указан параметр /VALIDATE.

Возвращаемые коды завершения

Коды завершения, возвращаемые программой dtexec

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

Значение Описание
0 Пакет успешно выполнен.
1 Ошибка выполнения пакета.
3 Выполнение пакета было отменено пользователем.
4 Программе не удалось найти запрошенный пакет. Не удалось найти пакет.
5 Программе не удалось загрузить запрошенный пакет. Не удалось загрузить пакет.
6 Программа обнаружила внутреннюю ошибку синтаксиса или семантики в командной строке.

Правила синтаксиса

Синтаксические правила программы

Все параметры должны начинаться со знака косой черты (/) или знака минуса (-). Показанные здесь параметры начинаются с косой черты (/), которую, однако, можно заменить на знак минуса (-).

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

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

Для параметров и аргументов, кроме паролей, регистр символов не учитывается.

Использование программы dtexec из процедуры xp_cmdshell

Использование программы dtexec из процедуры xp_cmdshell

Программу dtexec можно запустить из командной строки xp_cmdshel . В следующем примере показан вызов пакета UpsertData.dtsx и пропуск кода возврата:

EXEC xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'  

В следующем примере показан вызов этого же пакета и считывание кода возврата:

DECLARE @returncode int  
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'  

ВАЖНО! В MicrosoftSQL Serverпараметр xp_cmdshell на новых установках по умолчанию отключен. Этот режим можно включить с помощью системной хранимой процедуры sp_configure . Дополнительные сведения см. в разделе Параметр конфигурации сервера xp_cmdshell.

Использование программы dtexec из Bash

Bash — это популярная оболочка для Linux. Ее также можно использовать в Windows. Программу dtexec можно запустить из командной строки Bash. Обратите внимание на то, что точка с запятой (;) в Bash — это оператор разделения команд. Это особенно важно учитывать при передаче значений в пакет с помощью параметра /Conn[ection], /Par[arameter] или /Set, так как в этом случае точка с запятой используется для разделения имени и значения элемента. В следующем примере показано, как правильно экранировать точку с запятой и другие элементы при использовании Bash и передаче значений в пакет:

dtexec /F MyPackage.dtsx /CONN "MyConnection"\;"\"MyConnectionString\""

Синтаксис

dtexec /option [value] [/option [value]]...  

Параметры

  • /? [имя_параметра]: (необязательно). Отображает параметры командной строки или справку по указанному параметру option_name и завершает выполнение программы.

    При указании аргумента option_name программа dtexec запускает электронную документацию по SQL Server и отображает раздел "Служебная программа dtexec".

  • /Ca[llerInfo] : (необязательно). Задает дополнительные сведения для выполнения пакета. При запуске пакета при помощи агента SQL Server агент устанавливает этот аргумент, чтобы он указывал, что выполнение пакета вызывается агентом SQL Server. Этот параметр не учитывается, если служебная программа dtexec запускается из командной строки.

  • /CheckF[ile] filespec: (необязательно). Задает в качестве значения свойства пакета CheckpointFileName путь и файл, указанные в filespec. Этот файл используется при перезапуске пакета. Если указан этот параметр, но не указано значение для имени файла, в качестве значения для свойства пакета CheckpointFileName используется пустая строка. Если этот параметр не указан, то значения пакета сохраняются.

  • /CheckP[ointing] {on\off} : (необязательно). Устанавливает значение, определяющее, будет ли пакет использовать контрольные точки во время выполнения. Значение on указывает, что при неудачном выполнении пакета он будет перезапущен. При повторном запуске пакета после его неудачного выполнения ядро времени выполнения использует файл контрольных точек для повторного запуска пакета с момента возникновения ошибки.

    Если параметр объявляется без указания значения, по умолчанию принимается значение «on». Выполнение пакета будет завершено с ошибкой, если значение равно «on», а файл контрольных точек не найден. Если этот параметр не указан, то сохраняется значение, установленное в пакете. Дополнительные сведения см. в разделе Restart Packages by Using Checkpoints.

    Указание параметра /CheckPointing on команды dtexec эквивалентно заданию для свойства SaveCheckpoints пакета значения True, а для свойства CheckpointUsage — значения Always.

  • /Com[mandFile] filespec: (необязательно). Задает параметры команд, выполняемых с программой dtexec. Файл, указанный в filespec , открыт, и параметры файла считываются из этого файла до обнаружения EOF. filespec является текстовым файлом. Аргумент filespec указывает имя и путь к командному файлу, который связывается с выполнением пакета.

  • /Conf[igFile] filespec: (необязательно). Указывает файл конфигурации, из которого происходит извлечение значений. Использование этого параметра позволяет установить конфигурацию времени выполнения, отличную от конфигурации, указанной во время разработки пакета. Различные настройки конфигурации можно сохранять в XML-файле конфигурации, а затем загружать их с использованием параметра /ConfigFile перед выполнением пакета.

    С помощью параметра /ConfigFile можно загрузить во время выполнения дополнительные параметры конфигурации, не указанные во время разработки. Однако с помощью параметра /ConfigFile нельзя изменить параметры настройки, которые были заданы во время разработки. Сведения о применении параметров конфигурации пакета см. в разделе Package Configurations.

  • /Conn[ection] id_or_name;connection_string [[;id_or_name;connection_string]...] : (необязательно). Указывает, что диспетчер соединений с указанным именем или идентификатором GUID находится в данном пакете и задает строку соединения.

    Должны быть указаны оба параметра: имя или идентификатор GUID диспетчера соединений в аргументе id_or_name и допустимая строка соединения — в аргументе connection_string. Дополнительные сведения см. в разделе Соединения в службах Integration Services (SSIS).

    Во время выполнения можно использовать параметр /Connection для загрузки параметров конфигурации пакета из расположения, отличного от указанного во время разработки. Затем значения этих параметров конфигурации заменяют первоначально указанные значения. При этом параметр /Connection можно применять только для параметров конфигурации, использующих диспетчер соединений, например параметров конфигурации SQL Server . Сведения о применении конфигурации пакета см. в разделах Конфигурации пакета и Изменения в работе служб Integration Services в SQL Server 2016.

  • /Cons[oleLog] [[параметры_отображения];[параметры_списка;имя_или_GUID_источника]...]: (необязательно). Показывает в консоли во время выполнения пакета указанные записи журнала. При отсутствии этого параметра записи журнала в консоли не показываются. Если этот параметр указан без задания максимального числа записей, то будут показаны все записи журнала. Для ограничения отображаемых в консоли записей можно указать отображаемые столбцы с помощью параметра displayoptions и ограничить типы записей журнала с помощью параметра list_options .

    ПРИМЕЧАНИЕ. При запуске пакета на сервере Службы Integration Services с помощью параметра /ISSERVER объем выходных данных консоли ограничен и большинство параметров /Cons[oleLog] не применяется. Все журналы выполнения можно просматривать на сервере в соответствующих представлениях или с помощью стандартных отчетов, доступных в среде SQL Server Management Studio. Дополнительные сведения об отчетах см. в разделе Отчеты для сервера служб Integration Services.

    Параметр displayoptions имеет следующие значения.

    • N (Имя);

    • C (Компьютер);

    • O (Оператор);

    • S (Имя источника);

    • G (Идентификатор GUID источника);

    • X (Идентификатор GUID процесса выполнения);

    • M (Сообщение);

    • T (Время запуска и окончания).

    Параметр list_options имеет следующие значения.

    • I . Определяет содержание списка включений. Регистрируются только указанные имена или идентификаторы GUID источников.

    • E . Определяет содержание списка исключений. Указанные имена или идентификаторы GUID источников не регистрируются.

    • Параметр src_name_or_guid , указанный для включения или исключения, является именем события, именем источника либо идентификатором GUID источника.

    При использовании нескольких параметров /ConsoleLog в одной командной строке они взаимодействуют следующим образом:

    • порядок их появления не имеет значения;

    • если в командной строке нет списка включений, то списки исключений применяются ко всем типам записей журнала;

    • если в командной строке есть список включений, то списки исключений применяются к объединению всех списков включения.

    Некоторые примеры использования параметра /ConsoleLog см. в разделе Примечания .

  • /D[ts] package_path: (необязательно). Загружает пакет из хранилища пакетов служб SSIS. Пакеты, которые хранятся в хранилище пакетов служб SSIS, развертываются с помощью устаревшей модели развертывания пакетов. Чтобы запустить пакеты, развернутые на сервере служб Службы Integration Services с помощью модели развертывания проекта, используйте параметр /ISServer. Дополнительные сведения о моделях развертывания пакетов и проектов см. в разделе Deployment of Projects and Packages.

    Аргумент package_path указывает относительный путь к пакету служб Integration Services , начиная с корневой папки хранилища пакетов служб SSIS, а также содержит имя пакета Integration Services . Если путь или имя файла, указанные в аргументе package_path , содержат пробел, то аргумент package_path необходимо заключить в кавычки.

    Параметр /DTS не может использоваться одновременно с параметром /File или /SQL . Если указано несколько параметров, то выполнение программы dtexec завершится с ошибкой.

  • /De[crypt] password: (необязательно). Задает пароль для расшифровки, используемый при загрузке пакета с шифрованием пароля.

  • (Необязательно) Создает отладочные файлы дампа MDMP и TMP, если во время работы пакета происходит одно или несколько указанных событий. Аргумент error code указывает тип кода события (ошибка, предупреждение или информация), при наступлении которого система создаст отладочные файлы дампа. Чтобы задать несколько кодов событий, отделите каждый аргумент error code точкой с запятой (;). Не используйте кавычки с аргументом error code .

    В следующем примере формируются отладочные файлы при возникновении ошибки DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.

    /Dump 0xC020801C  
    

    /Dump error code: По умолчанию службы Службы Integration Services сохраняют файлы дампа отладки в папке <drive> :\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps.

    ПРИМЕЧАНИЕ. Отладочные файлы дампа могут содержать конфиденциальные сведения. Скопируйте файлы в папку с ограниченным доступом или ограничьте доступ к ним при помощи списка управления доступом (ACL). В частности, перед отправкой отладочных файлов в службу технической поддержки Майкрософт рекомендуется удалить из них все конфиденциальные сведения.

    Чтобы применить этот параметр ко всем пакетам, запускаемым с помощью программы dtexec , добавьте значение DumpOnCodes типа REG_SZ в раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\SSIS\Setup\DtsPath. Значение данных DumpOnCodes содержит код (или коды) ошибки, которые активируют в системе создание отладочных файлов дампа. Если кодов ошибки несколько, их разделяют точкой с запятой (;).

    Если добавить значение DumpOnCodes в раздел реестра и использовать параметр /Dump , система будет создавать отладочные файлы дампа с учетом обоих параметров.

    Дополнительные сведения об отладочных файлах дампа см. в разделе Generating Dump Files for Package Execution.

  • /DumpOnError: (Необязательно.) Создаются отладочные файлы дампа MDMP и TMP, если во время работы пакета происходит ошибка.

    По умолчанию службы Службы Integration Services сохраняют файлы дампа отладки в папке <drive> :\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps.

    ПРИМЕЧАНИЕ. Отладочные файлы дампа могут содержать конфиденциальные сведения. Скопируйте файлы в папку с ограниченным доступом или ограничьте доступ к ним при помощи списка управления доступом (ACL). В частности, перед отправкой отладочных файлов в службу технической поддержки Майкрософт рекомендуется удалить из них все конфиденциальные сведения.

    Чтобы применить этот параметр ко всем пакетам, запускаемым с помощью программы dtexec , добавьте значение DumpOnError типа REG_DWORD в раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\SSIS\Setup\DtsPath. Значение DumpOnError типа REG_DWORD указывает, нужно ли использовать параметр /DumpOnError с программой dtexec .

    • Ненулевое значение означает, что система будет создавать отладочные файлы дампа при возникновении любой ошибки независимо от того, используется ли параметр /DumpOnError с программой dtexec .

    • Нулевое значение указывает, что система будет создавать отладочные файлы дампа при возникновении ошибки только при использовании параметра /DumpOnError с программой dtexec .

    Дополнительные сведения об отладке файлов дампа см. в разделе Generating Dump Files for Package Execution.

  • /Env[Reference] environment reference ID: (необязательно). Указывает ссылку на среду (идентификатор), которая используется при выполнении пакета, развернутого на сервере служб Службы Integration Services . Параметры, настроенные для привязки переменных, будут использовать значения переменных, которые содержатся в среде.

    Используйте параметр /Env[Reference] вместе с параметрами /ISServer и /Server .

    Этот параметр используется агентом SQL Server.
    -- /F[ile] filespec: (необязательно). Производит загрузку пакета, сохраненного в файловой системе. Пакеты, которые сохраняются в файловой системе, развертываются с помощью устаревшей модели развертывания пакетов. Чтобы запустить пакеты, развернутые на сервере служб Службы Integration Services с помощью модели развертывания проекта, используйте параметр /ISServer. Дополнительные сведения о моделях развертывания пакетов и проектов см. в разделе Deployment of Projects and Packages.

Аргумент filespec определяет путь и имя файла пакета. Можно указывать либо путь в формате UNC, либо локальный путь. Если путь или имя файла, указанные в аргументе filespec , содержат пробел, то аргумент filespec необходимо заключить в кавычки.

  • Параметр /File не может использоваться одновременно с параметром /DTS или /SQL . Если указано несколько параметров, то выполнение программы dtexec завершится с ошибкой.

  • /H[elp] [параметр]: (необязательно). Отображает справку по параметрам командной строки или справку по указанному параметру option_name и завершает выполнение программы.

    При указании аргумента option_name программа dtexec запускает электронную документацию по SQL Server и отображает раздел "Служебная программа dtexec".

  • /ISServer packagepath: (необязательно). Запускает пакет, развернутый на сервере служб Службы Integration Services . Аргумент PackagePath указывает имя и полный путь файла пакета, развернутого на сервере служб Службы Integration Services . Если путь или имя файла, указанные в аргументе PackagePath , содержат пробел, то аргумент PackagePath необходимо заключить в кавычки.

    Формат пакета следующий:

    \<catalog name>\<folder name>\<project name>\package file name  
    

    Параметр /Server используется вместе с параметром /ISSERVER . Выполнение пакета на сервере служб SSIS возможно только при использовании проверки подлинности Windows. Текущий пользователь Windows используется для доступа к пакету. При отсутствии параметра /Server подразумевается использование локального экземпляра SQL Server по умолчанию.

    Параметр /ISSERVER не может использоваться одновременно с параметрами /DTS, /SQL или /File . Если указано несколько параметров, то выполнение dtexec завершится с ошибкой.

    Этот параметр используется агентом SQL Server.

  • /L[ogger] classid_orprogid;configstring: (необязательно). Связывает один или более регистраторов с выполнением пакета служб Integration Services . Параметр classid_orprogid определяет регистратор и может быть указан в виде идентификатора GUID класса. configstring представляет собой строку, применяемую при настройке регистратора.

    Следующий список содержит доступные типы регистраторов.

    • Текстовый файл:

      • ProgID: DTS.LogProviderTextFile.1;

      • ClassID: {59B2C6A5-663F-4C20-8863-C83F9B72E2EB}

    • Приложение SQL Server Profiler:

      • ProgID: DTS.LogProviderSQLProfiler.1;

      • ClassID: {5C0B8D21-E9AA-462E-BA34-30FF5F7A42A1}

    • SQL Server:

      • ProgID: DTS.LogProviderSQLServer.1

      • ClassID: {6AA833A1-E4B2-4431-831B-DE695049DC61}

    • Журнал событий Windows:

      • ProgID: DTS.LogProviderEventLog.1;

      • ClassID: {97634F75-1DC7-4F1F-8A4C-DAF0E13AAA22}

    • XML-файл:

      • ProgID: DTS.LogProviderXMLFile.1

      • ClassID: {AFED6884-619C-484F-9A09-F42D56E1A7EA}

  • /M[axConcurrent] concurrent_executables: (необязательно). Указывает количество исполняемых файлов, которые пакет может запускать одновременно. Указанное значение должно быть положительным целым числом или значением –1. Значение –1 указывает, что службы Integration Services устанавливают максимальное количество одновременно запускаемых пакетом исполняемых файлов, равное общему количеству процессоров компьютера, на котором выполняется пакет, плюс два.

  • /Pack[age] PackageName: (необязательно). Указывает пакет, который выполняется. Этот параметр используется главным образом при выполнении пакета из среды Visual Studio.

  • /P[assword] password: (необязательно). Позволяет получить пакет, защищенный проверкой подлинности SQL Server . Этот параметр используется совместно с параметром /User . Если параметр /Password отсутствует, но указан параметр /User , используется пустой пароль. Значение password может быть заключено в кавычки.

    ВАЖНО! По возможности используйте аутентификацию Windows.

  • /Par[ameter] [$Package:: | $Project:: | $ServerOption::] имя_параметра [(тип_данных)]; литеральное_значение : (необязательно). Задает значения параметра. Можно указать несколько параметров /Parameter . Типы данных — это коды CLR TypeCodes, представленные в виде строк. В случае с нестроковыми параметрами тип данных указывается в скобках, после чего следует имя параметра.

    Параметр /Parameter может указываться только с параметром /ISServer .

    С помощью префиксов $Package, $Project и $ServerOption можно указывать на параметры пакета, проекта и сервера соответственно. Параметр пакета по умолчанию.

    Ниже представлен пример выполнения пакета и предоставления значения myvalue параметру проекта (myparam) и целочисленного значения 12 для другого параметра пакета (anotherparam).

    Dtexec /isserver "SSISDB\MyFolder\MyProject\MyPackage.dtsx" /server "." /parameter $Project::myparam;myvalue /parameter anotherparam(int32);12

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

    В следующем примере свойство InitialCatalog диспетчера соединений SourceServer установлено в значение ssisdb.

    /parameter CM.SourceServer.InitialCatalog;ssisdb  
    

    В следующем примере в качестве значения свойства ServerName диспетчера соединений SourceServer задана точка (.), чтобы указать локальный сервер.

    /parameter CM.SourceServer.ServerName;.  
    
  • /Proj[ect] ProjectFile: (необязательно). Указывает проект, из которого необходимо извлечь выполняемый пакет. Аргумент ProjectFile указывает имя файла ISPAC. Этот параметр используется главным образом при выполнении пакета из среды Visual Studio.

  • /Rem comment: (необязательно). Содержит примечания о командной строке или командных файлах. Аргумент не обязателен. Значение comment является строкой, которая должна либо быть заключена в кавычки, либо не содержать пробелов. Если аргумент не указан, вставляется пустая строка. Значения comment удаляются на стадии считывания команд.

  • /Rep[orting] level [ ;event_guid_or_name[ ;event_guid_or_name[...]]: (необязательно). Определяет, какие типы сообщений включаются в отчет. Ниже приводятся доступные параметры отчета для level .

    N — отчет не выводится.

    E — выводятся сообщения об ошибках.

    W — выводятся предупреждения.

    I — выводятся информационные сообщения.

    C — выводятся сообщения о пользовательских событиях.

    D — выводятся сообщения о событиях задачи потока данных.

    P — отображается ход процесса выполнения.

    V — отображаются подробные сообщения.

    Аргументы V и N являются взаимоисключающими по отношению ко всем остальным аргументам, их следует указывать отдельно. Если параметр /Reporting не указан, то по умолчанию используются значения E (ошибки), W (предупреждения) и P (ход выполнения).

    В начале всех событий ставится отметка времени в формате «ГГ/ММ/ДД ЧЧ:ММ:СС», а также идентификатор GUID или понятное имя, если такое имеется.

    Необязательный параметр event_guid_or_name является списком исключений для регистраторов. Это исключение указывает события, которые не регистрируются, но могут быть зарегистрированы иным образом.

    Не нужно исключать событие, если обычно оно не регистрируется по умолчанию.

  • /Res[tart] {deny | force | ifPossible}: (необязательно). Определяет новое значение свойства CheckpointUsage пакета. Параметры имеют следующие значения.

    Deny . Задает для свойства CheckpointUsage значение DTSCU_NEVER.

    Force . Задает для свойства CheckpointUsage значение DTSCU_ALWAYS.

    ifPossible . Задает для свойства CheckpointUsage значение DTSCU_IFEXISTS.

    Если значение не указано, используется значение по умолчанию force .

  • /Set [$Sensitive::]путь_свойства;значение: (необязательно). Переопределяет конфигурацию параметра, переменной, свойства, контейнера, регистратора, перечислителя Foreach или соединения в пакете. При использовании этот параметра /Set заменяет значение аргумента propertyPath на указанное значение. Можно указать несколько параметров /Set .

    Параметр /Set можно использовать не только с параметром /F[ile] . Параметр /Set можно также использовать с параметром /ISServer или /Project. При использовании /Set с /Project, /Set задает значения параметров. При использовании /Set с /ISServer, /Set устанавливает переопределения свойств. Кроме того, при использовании параметра /Set с параметром /ISServer можно применить префикс $Sensitive, чтобы указать, что свойство необходимо обрабатывать на сервере служб Службы Integration Services как конфиденциальное.

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

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

    dtexec /f mypackage.dtsx /set \package.variables[myvariable].Value;myvalue

    Ниже приведен пример запуска пакета из файла проекта ISPAC и установки параметров пакета и проекта.

    /Project c:\project.ispac /Package Package1.dtsx /SET \Package.Variables[$Package::Parameter];1 /SET \Package.Variables[$Project::Parameter];1

    С помощью параметра /Set можно изменить расположение, из которого загружаются конфигурации пакетов. Однако параметр /Set нельзя использовать для переопределения значения, указанного в конфигурации во время разработки. Сведения о применении конфигурации пакета см. в разделах Конфигурации пакета и Изменения в работе служб Integration Services в SQL Server 2016.

  • /Ser[ver] server: (необязательно). Используется при указании параметра /SQL или /DTS . Этот параметр задает имя сервера, с которого происходит получение пакета. В случае отсутствия параметра /Server и указания параметра /SQL или /DTS производится попытка выполнения пакета на локальном сервере. Значение server_instance может быть заключено в кавычки.

    Параметр /Ser[ver] необходим при указании параметра /ISServer .

  • /SQ[L] package_path: Загружает пакет, хранящийся на SQL Server в базе данных msdb. Пакеты, которые хранятся в базе данных msdb , развертываются с помощью модели развертывания пакетов. Чтобы запустить пакеты, развернутые на сервере служб Службы Integration Services с помощью модели развертывания проекта, используйте параметр /ISServer. Дополнительные сведения о моделях развертывания пакетов и проектов см. в разделе Deployment of Projects and Packages.

  • Аргумент package_path задает имя извлекаемого пакета. В случае наличия в пути папок их имена должны завершаться обратной косой чертой ("\"). Значение package_path может быть заключено в кавычки. Если путь или имя файла, указанные в аргументе package_path , содержат пробел, то аргумент package_path необходимо заключить в кавычки.

    Параметры /User, /Password и /Server можно использовать совместно с параметром /SQL .

    В случае отсутствия параметра /User для доступа к пакету используется проверка подлинности Windows. При использовании параметра /User указанное имя входа /User рассматривается как относящееся к проверке подлинности SQL Server .

    Параметр /Password используется только совместно с параметром /User . В случае использования параметра /Password доступ к пакету осуществляется с применением указанных имени пользователя и пароля. При отсутствии параметра /Password будет использоваться пустой пароль.

    ВАЖНО! По возможности используйте аутентификацию Windows.

  • При отсутствии параметра /Server подразумевается использование локального экземпляра SQL Server по умолчанию.

    Параметр /SQL не может использоваться одновременно с параметром /DTS или /File . Если указано несколько параметров, то выполнение программы dtexec завершится с ошибкой.

  • /Su[m] : (необязательно). Выводит добавочный счетчик, содержащий количество строк, которые будут получены следующим компонентом.

  • /U[ser] user_name: (необязательно). Позволяет получить пакет, защищенный проверкой подлинности SQL Server . Этот параметр используется только в случае указания параметра /SQL . Значение user_name может быть заключено в кавычки.

    ВАЖНО! По возможности используйте аутентификацию Windows.

  • /Va[lidate] : (необязательно). Останавливает выполнение пакета по завершении стадии проверки без фактического запуска пакета. В режиме проверки указание параметра /WarnAsError приводит к тому, что программа dtexec рассматривает предупреждения как ошибки, поэтому выполнение пакета завершается с ошибкой в случае появления предупреждения в ходе проверки.

  • /VerifyB[uild] major[ ;minor[ ;build]]: (необязательно). Проверяет соответствие номера сборки пакета номерам сборки, указанным на стадии проверки в аргументах major, minor и build . В случае несоответствия пакет выполняться не будет.

    Тип значений — long integer. Аргумент может иметь одну из трех форм, причем значение major требуется всегда:

    • major

    • major;minor

    • major; minor; build

  • /VerifyP[ackageID] packageID: (необязательно). Проверяет идентификатор GUID выполняемого пакета, сравнивая его со значением, указанным в аргументе package_id .

  • /VerifyS[igned] : (необязательно). При указании этого параметра службы Службы Integration Services будут проверять цифровую подпись пакета. Если пакет не подписан или подпись недопустима, работа пакета завершается ошибкой. Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.

    ВАЖНО! Если конфигурация предусматривает проверку подписи пакета, службы Службы Integration Services проверяют только наличие цифровой подписи, ее правильность и надежность источника. Службы Integration Services не проверяют, был ли изменен пакет.

    ПРИМЕЧАНИЕ. Дополнительный раздел реестра BlockedSignatureStates может задавать значение, накладывающее более строгое ограничение, чем параметр цифровой подписи, задаваемый в среде SQL Server Data Tools (SSDT) или программе командной строки dtexec . В этом случае значение в реестре переопределяет другие параметры.

  • /VerifyV[ersionID] versionID: (необязательно). Проверяет версию идентификатора GUID выполняемого пакета, сравнивая его со значением, указанным в аргументе version_id на стадии проверки пакета.

  • /VLog [Filespec] : (необязательно). Все события пакета служб Integration Services записываются в регистраторы, включенные при разработке пакета. Чтобы службы Integration Services включили регистратор для текстовых файлов, и чтобы записывать события журнала в указанный текстовый файл, укажите путь и имя файла в качестве параметра Filespec .

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

  • /W[arnAsError] : (необязательно). Приводит к тому, что пакет рассматривает предупреждения в качестве ошибок, поэтому при наличии предупреждения в ходе проверки выполнение пакета завершается с ошибкой. В случае отсутствия предупреждений во время проверки подлинности и при отсутствии параметра /Validate происходит выполнение пакета.

  • /X86: (необязательно). В результате агент SQL Server запускает пакет на 64-разрядном компьютере в 32-разрядном режиме. Этот параметр устанавливается агентом SQL Server , когда выполняются следующие условия.

    • Тип шага задания — Пакет служб SQL Server Integration Services.

    • Выбран параметр Использовать 32-разрядную среду выполнения на вкладке Параметры выполнения диалогового окна Создание шага задания .

    Этот параметр также можно установить для шага задания агента SQL Server , используя хранимые процедуры управляющих объектов SQL Server (SMO) для программного создания задания.

    Этот параметр используется агентом SQL Server . При запуске программы dtexec из командной строки этот параметр игнорируется.

Замечания

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

  • Параметры обрабатываются в порядке их обнаружения в командной строке. Командные файлы считываются, если они обнаружены в командной строке. Команды в этих файлах также обрабатываются в порядке их следования.

  • Если в одной и той же инструкции командной строки один и тот же параметр или переменная указаны более одного раза, то преимущество имеет последний из параметров.

  • Параметры /Set и /ConfigFile обрабатываются в том порядке, в котором они указаны.

Примеры

В следующем примере демонстрируется использование программы командной строки dtexec для настройки и выполнения пакетов служб SQL Server Службы Integration Services.

Запуск пакетов

Чтобы выполнить пакет служб Integration Services , сохраненный в SQL Server с использованием проверки подлинности Windows, используйте следующий код:

dtexec /sq pkgOne /ser productionServer  

Пакет служб Integration Services , сохраненный в папке «SSIS Package Store» файловой системы, выполняется с помощью следующего кода:

dtexec /dts "\File System\MyPackage"  

Чтобы проверить правильность пакета, использующего проверку подлинности Windows и хранимого в SQL Server , не запуская сам пакет, используйте следующий код:

dtexec /sq pkgOne /ser productionServer /va  

Чтобы выполнить пакет служб Integration Services , сохраненного в файловой системе, используйте следующий код:

dtexec /f "c:\pkgOne.dtsx"   

Чтобы выполнить пакет служб Integration Services , сохраненный в файловой системе, и указать параметры ведения журнала, используйте следующий код:

dtexec /f "c:\pkgOne.dtsx" /l "DTS.LogProviderTextFile;c:\log.txt"  

Чтобы выполнить пакет, использующий проверку подлинности Windows и хранимый в локальном экземпляре SQL Serverпо умолчанию, и проверить версию пакета перед его выполнением, используйте следующий код:

dtexec /sq pkgOne /verifyv {c200e360-38c5-11c5-11ce-ae62-08002b2b79ef}  

Чтобы выполнить пакет служб Integration Services , хранимый в файловой системе и настроенный извне, используйте следующий код:

dtexec /f "c:\pkgOne.dtsx" /conf "c:\pkgOneConfig.cfg"  

ПРИМЕЧАНИЕ. Аргументы package_path и filespec параметров /SQL, /DTS и /FILE должны быть заключены в кавычки, если путь или имя файла содержит пробел. Если аргумент не заключен в кавычки, он не может содержать пробелы.

Параметр ведения журнала

Предположим, что существуют три типа входных записей журнала: A, B и C. При указании следующего параметра ConsoleLog без параметров будут отображаться все три типа записей со всеми полями:

/CONSOLELOG  

Следующий параметр отображает все типы журналов, но только со столбцами «Имя» и «Сообщение»:

/CONSOLELOG NM  

Следующий параметр отображает все столбцы, но только для записей журнала типа A:

/CONSOLELOG I;LogEntryTypeA  

Следующий параметр отображает записи журнала только типа А со столбцами «Имя» и «Сообщение»:

/CONSOLELOG NM;I;LogEntryTypeA  

Следующий параметр отображает записи журнала типов А и B:

/CONSOLELOG I;LogEntryTypeA;LogEntryTypeB  

Те же результаты можно получить с использованием нескольких параметров ConsoleLog :

/CONSOLELOG I;LogEntryTypeA /CONSOLELOG I;LogEntryTypeB  

Если параметр ConsoleLog используется без параметров, отображаются все поля. Включение параметра list_options приводит к отображению только записей журнала типа A со всеми полями:

/CONSOLELOG NM;I;LogEntryTypeA /CONSOLELOG  

В следующем примере отображаются все записи журнала за исключением записей типа А. Т. е. отображаются записи журнала типов B и C:

/CONSOLELOG E;LogEntryTypeA  

В следующем примере те же результаты достигаются с использованием нескольких параметров ConsoleLog и единственного исключения:

/CONSOLELOG E;LogEntryTypeA /CONSOLELOG  
/CONSOLELOG E;LogEntryTypeA /CONSOLELOG E;LogEntryTypeA  
/CONSOLELOG E;LogEntryTypeA;LogEntryTypeA  

Следующий пример не отображает сообщения журнала, поскольку если тип файла журнала присутствует одновременно в списке исключения и списке включения, то этот тип файлов исключается.

/CONSOLELOG E;LogEntryTypeA /CONSOLELOG I;LogEntryTypeA  

Параметр SET

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

/SET \package\DataFlowTask.Variables[User::MyVariable].Value;newValue  

Параметр проекта

В следующем примере показано, как использовать параметры /Project и /Package .

/Project c:\project.ispac /Package Package1.dtsx  

В следующем примере показано, как использовать параметры /Project и /Package для установки параметров пакета и проекта.

/Project c:\project.ispac /Package Package1.dtsx /SET \Package.Variables[$Package::Parameter];1 /SET \Package.Variables[$Project::Parameter];1  
  

Параметр ISServer

В следующем примере показано, как использовать параметр /ISServer .

dtexec /isserver "\SSISDB\MyFolder\MyProject\MyPackage.dtsx" /server "."  

В следующем примере показано, как использовать параметр /ISServer и устанавливать параметры пакета и диспетчера соединений.

/Server localhost /ISServer "\SSISDB\MyFolder\Integration Services Project1\Package.dtsx" /Par "$Project::ProjectParameter(Int32)";1 /Par "CM.SourceServer.InitialCatalog";SourceDB  
  

См. запись в блоге Коды завершения, DTEXEC и каталог служб SSISна сайте www.mattmasson.com.