Программа dtexec
Изменения: 17 ноября 2008 г.
Программа командной строки dtexec используется для настройки и выполнения пакетов SQL Server 2005 Integration Services (SSIS). Программа dtexec обеспечивает доступ ко всем функциям настройки и выполнения пакетов, таким как соединения, свойства, переменные, ведение журналов, а также индикаторы выполнения. Программа dtexec позволяет загружать пакеты из трех источников: база данных Microsoft SQL Server, службы SSIS и файловая система.
Примечание. |
---|
На 64-разрядном компьютере службы Integration Services устанавливают и 32-разрядную версию, и 64-разрядную версию программы dtexec (файл dtexec.exe). |
Программа во время выполнения проходит четыре стадии. Они перечислены далее.
- Стадия разбора команды: командная строка производит чтение списка указанных параметров и аргументов. В случае обнаружения параметров /? или /HELP все последующие стадии пропускаются.
- Стадия загрузки пакета: происходит загрузка пакета, указанного параметрами /SQL, /FILE или /DTS.
- Стадия настройки: параметры обрабатываются в следующем порядке:
- параметры, устанавливающие флаги, переменные и свойства пакета;
- параметры, проверяющие номера версии и сборки пакета;
- параметры, задающие поведение программы во время выполнения, например вывод отчетов.
- Стадия проверки и выполнения: пакет выполняется или проверяется без запуска, если был указан параметр /VALIDATE.
Коды завершения, возвращаемые программой dtexec
При выполнении пакета dtexec может вернуть код завершения. Код завершения используется для заполнения переменной ERRORLEVEL, значение которой впоследствии можно будет проверить в условных инструкциях или логике ветвления в пакетном файле. В следующей таблице перечисляются значения, которые программа dtexec может вернуть при завершении.
Значение | Описание |
---|---|
0 |
Пакет успешно выполнен. |
1 |
Ошибка выполнения пакета. |
3 |
Выполнение пакета было отменено пользователем. |
4 |
Программе не удалось найти запрошенный пакет. Не удалось найти пакет. |
5 |
Программе не удалось загрузить запрошенный пакет. Не удалось загрузить пакет. |
6 |
Программа обнаружила внутреннюю ошибку синтаксиса или семантики в командной строке. |
Синтаксические правила программы
Все параметры должны начинаться со знака косой черты (/) или знака минуса (-). Показанные здесь параметры начинаются с косой черты (/), которую, однако, можно заменить на знак минуса (-).
Аргумент должен быть заключен в кавычки, если он содержит пробел. Если аргумент не заключен в кавычки, он не может содержать пробелы.
Двойные кавычки в пределах строк, заключенных в кавычки, преобразуются в одиночные кавычки.
Для параметров и аргументов, кроме паролей, регистр символов не учитывается.
Использование программы dtexec из процедуры xp_cmdshell
Можно запустить программу dtexec из командной строки xp_cmdshell. В следующем примере показан вызов пакета UpsertData.dtsx и пропуск кода возврата:
EXEC xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'
В следующем примере показан вызов этого же пакета и считывание кода возврата:
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'
Важно! |
---|
В Microsoft SQL Server 2005 режим xp_cmdshell на новых установках по умолчанию отключен. Этот режим можно включить при помощи средства настройки контактной зоны или системной хранимой процедуры sp_configure. Дополнительные сведения см. в разделе Параметр xp_cmdshell. |
Синтаксис
dtexec /option [value] [/option [value]]...
Параметры
Для понимания того, как параметры командной строки, используемые в программе SQL Server 2000 dtsrun, соответствуют параметрам командной строки, используемым с программой SQL Server 2005 dtexec, ознакомьтесь с разделом Сопоставление параметров команд программ dtsrun и dtexec. Предложения по обновлению этих программ см. в разделе Обновление командных строк dtsrun.
Параметр
Описание
/? [option_name]
(Не обязательно). Отображает параметры командной строки или справку по указанному option_name и завершает выполнение программы.
При указании аргумента option_namedtexec запускает электронную документацию по SQL Server и отображает раздел Программа dtexec.
**/CheckF[ile]**filespec
(Не обязательно). Задает в качестве значения свойства пакета CheckpointFileName путь и файл, указанные в filespec. Этот файл используется при перезапуске пакета. Если указан этот параметр, но не указано значение для имени файла, то в качестве значения для свойства пакета CheckpointFileName задается пустая строка. Если этот параметр не указан, то значения пакета сохраняются.
/CheckP[ointing]{on\off}
(Не обязательно). Устанавливает значение, определяющее, будет ли пакет использовать контрольные точки во время выполнения. Значение «on» указывает, что при неудачном выполнении пакета он будет перезапущен. При повторном запуске пакета после его неудачного выполнения ядро времени выполнения использует файл контрольных точек для повторного запуска пакета с момента возникновения ошибки.
Если параметр объявляется без указания значения, по умолчанию принимается значение «on». Выполнение пакета будет завершено с ошибкой, если значение равно «on», а файл контрольных точек не найден. Если этот параметр не указан, то сохраняется значение, установленное в пакете. Дополнительные сведения см. в разделе Использование контрольных точек в пакетах.
Параметр /CheckPointing on программы dtexec аналогичен свойству пакета SaveCheckpoints в значении True и свойству CheckpointUsage в значении Always.
**/Com[mandFile]**filespec
(Не обязательно). Указывает, что на стадии считывания команд открывается файл, указанный в параметре filespec, после чего параметры считываются из этого файла до обнаружения его конца. filespec — это текстовый файл, который содержит дополнительные параметры команды dtexec. Аргумент filespec указывает имя и путь к командному файлу, который связывается с выполнением пакета.
**/Conf[igFile]**filespec
(Не обязательно). Указывает файл конфигурации, из которого происходит извлечение значений. Использование этого параметра позволяет установить конфигурацию времени выполнения, отличную от конфигурации, указанной во время создания пакета. Можно сохранять различные настройки конфигурации в XML-файле конфигурации, а затем загружать установки с использованием параметра /ConfigFile перед выполнением пакета.
Примечание.
Если в параметре /ConfigFile задано расположение файла конфигурации, которое отличается от расположения, заданного в пакете, то программа dtexec может вывести предупреждение. На это предупреждение можно не обращать внимания. Программа dtexec будет искать и использовать файл конфигурации, заданный в параметре /ConfigFile, при условии, что этот параметр представляет собой допустимый путь к файлу.
**/Conn[ection]**id_or_name;connection_string [[;id_or_name;connection_string]…]
(Необязательно). Указывает, что диспетчер соединений с указанным именем или идентификатором GUID находится в данном пакете и задает строку соединения.
Этот параметр требует указания обоих параметров: имени или идентификатора GUID диспетчера соединений в аргументе id_or_name и допустимой строки соединения в аргументе connection_string. Дополнительные сведения см. в разделе Диспетчеры соединений.
/Cons[oleLog] [[displayoptions];[list_options;src_name_or_guid]...]
(Не обязательно). Показывает в консоли во время выполнения пакета указанные записи журнала. При отсутствии этого параметра записи журнала в консоли не показываются. Если этот параметр указан без задания максимального числа записей, то будут показаны все записи журнала. Для ограничения отображаемых в консоли записей можно указать отображаемые столбцы с помощью параметра displayoptions и ограничить типы записей журнала с помощью параметра list_options.
Параметр 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. Аргумент package_path указывает относительный путь к пакету SSIS, начиная с корневой папки хранилища пакетов служб SSIS, а также содержит имя пакета SSIS. Если путь или имя файла, указанные в аргументе package_path, содержат пробел, то аргумент package_path необходимо заключить в кавычки.
Параметр /DTS не может использоваться одновременно с параметрами /File или /SQL. Если указано несколько параметров, то выполнение dtexec завершится с ошибкой.
/De[crypt] password
(Не обязательно). Задает пароль для расшифровки, используемый при загрузке пакета с шифрованием пароля.
**/F[ile]**filespec
(Не обязательно). Производит загрузку пакета, сохраненного в файловой системе. Аргумент filespec определяет путь и имя файла пакета. Можно указывать либо путь в формате UNC, либо локальный путь. Если путь или имя файла, указанные в аргументе filespec, содержат пробел, то аргумент filespec необходимо заключить в кавычки.
Параметр /File не может использоваться одновременно с параметрами /DTS или /SQL. Если указано несколько параметров, то выполнение dtexec завершится с ошибкой.
/H[elp] [option_name]
(Не обязательно). Отображает справку по параметрам командной строки или справку по указанному параметру option_name и завершает выполнение программы.
При указании аргумента option_namedtexec запускает электронную документацию по SQL Server и отображает раздел Программа dtexec.
**/L[ogger]**classid_orprogid;configstring
(Не обязательно). Связывает один или более регистраторов с выполнением пакета служб SSIS. Параметр 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, указывает, что службы SSIS устанавливают максимальное количество одновременно запускаемых пакетом исполняемых файлов, равное общему количеству процессоров компьютера, на котором выполняется пакет плюс два.
**/P[assword]**password
(Не обязательно). Позволяет получить пакет, защищенный проверкой подлинности SQL Server. Этот параметр используется совместно с параметром /User. Если параметр /Password отсутствует, но используется параметр /User, то применяется пустой пароль. Значение password может быть заключено в кавычки.
Примечание безопасности.
При возможности используйте проверку подлинности Windows.
/Remcomment
(Не обязательно). Содержит примечания о командной строке или командных файлах. Аргумент не обязателен. Значение 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».
/SetpropertyPath;value
(Не обязательно). Переопределяет конфигурацию переменной, свойства, контейнера, регистратора, перечислителя Foreach или соединения в пакете. При использовании этого параметра /SET изменяет аргумент propertyPath на указанное значение. Возможно определение нескольких параметров /SET.
Можно определить значение propertyPath, запустив мастер настройки пакета. Пути для выбираемых элементов отображаются на последней странице Завершение работы мастера и могут быть скопированы в буфер обмена, а затем вставлены из него. Если мастер использовался только для этого, то его действия можно отменить после копирования путей в буфер.
Далее приводится пример выполнения пакета и ввода нового значения переменной:
dtexec /f mypackage.dtsx /set \package.variables[myvariable].Value;myvalue
**/Ser[ver]**server
(Не обязательно). Используется при указании параметров /SQL или /DTS. Этот параметр задает имя сервера, с которого происходит получение пакета. В случае отсутствия параметра /Server и указания параметров /SQL или /DTS производится попытка выполнения пакета на локальном сервере. Значение server_instance может быть заключено в кавычки.
**/SQ[L]**package_path
Производит загрузку пакета, хранимого в SQL Server. Аргумент 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]
(Не обязательно). При указании этого параметра выполнение пакета завершается с ошибкой, если пакет не подписан.
**/VerifyV[ersionID]**versionID
(Не обязательно). Проверяет версию идентификатора GUID выполняемого пакета, сравнивая его со значением, указанным в аргументе version_id на стадии проверки пакета.
/W[arnAsError]
(Не обязательно). Приводит к тому, что пакет рассматривает предупреждения в качестве ошибок, поэтому при наличии предупреждения в ходе проверки выполнение пакета завершается с ошибкой. В случае отсутствия предупреждений во время проверки подлинности и при отсутствии параметра /Validate происходит выполнение пакета.
Замечания
Порядок указания параметров в командной строке может повлиять на способ выполнения пакета.
- Параметры обрабатываются в порядке их обнаружения в командной строке. Командные файлы считываются, если они обнаружены в командной строке. Команды в этих файлах также обрабатываются в порядке их следования.
- Если в одной и той же инструкции командной строки один и тот же параметр или переменная указаны более одного раза, то преимущество имеет последний из параметров.
- Параметры /Set и /ConfigFile обрабатываются в порядке, в котором они встречаются.
Примеры
Запуск пакетов
Чтобы выполнить пакет служб SSIS, сохраненный в SQL Server с использованием проверки подлинности Windows, используйте следующий код:
dtexec /sq pkgOne /ser productionServer
Пакет служб SSIS, сохраненный в папке файловой системы SSIS, выполняется с помощью следующего кода:
dtexec /dts "\File System\MyPackage"
Чтобы проверить правильность пакета, использующего проверку подлинности Windows и хранимого в SQL Server, не запуская сам пакет, используйте следующий код:
dtexec /sq pkgOne /ser productionServer /va
Чтобы выполнить пакет служб SSIS, сохраненного в файловой системе, используйте следующий код:
dtexec /f "c:\pkgOne.dtsx"
Чтобы выполнить пакет служб SSIS, сохраненный в файловой системе, и указать параметры ведения журнала, используйте следующий код:
dtexec /f "c:\pkgOne.dtsx" /l "DTS.LogProviderTextFile;c:\log.txt"
Чтобы выполнить пакет, использующий проверку подлинности Windows и хранимый в локальном экземпляре SQL Server по умолчанию, и проверить версию пакета перед его выполнением, используйте следующий код:
dtexec /sq pkgOne /verifyv {c200e360-38c5-11c5-11ce-ae62-08002b2b79ef}
Чтобы выполнить пакет служб SSIS, хранимый в файловой системе и настроенный извне, используйте следующий код:
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
В следующем примере отображаются все записи в журнале, за исключением записей типа А: то есть отображаются записи журнала типа В и С:
/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
См. также
Основные понятия
Сопоставление параметров команд программ dtsrun и dtexec
Другие ресурсы
Как запустить пакет в среде Business Intelligence Development Studio
Использование служб Integration Services на 64-разрядных компьютерах
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
17 ноября 2008 г. |
|
17 июля 2006 г. |
|
14 апреля 2006 г. |
|
5 декабря 2005 г. |
|