Ошибка при создании плана обслуживания sql

  • Remove From My Forums
  • Question

  • Received an error in SQL Server 2016  in setting-up a maintenance plan.

    SSMS version is 16.5

    Cannot create a task from XML for task «», type «» due to error 0x80070057 «The parameter is incorrect.».
     (OnPreExecute)

    ——————————
    ADDITIONAL INFORMATION:

    Cannot create a task from XML for task «», type «» due to error 0x80070057 «The parameter is incorrect.».
     (OnPreExecute)

    more on the error :

    ===================================

    Cannot create a task from XML for task «», type «» due to error 0x80070057 «The parameter is incorrect.».
     (OnPreExecute)

    ——————————
    Program Location:

       at Microsoft.SqlServer.Dts.Runtime.Executables.Add(String moniker)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.MaintenancePlanSubPlan.AddPreExecuteTask(Sequence subplanSeq)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.MaintenancePlanSubPlan..ctor(Package package, DtsContainer container, ServerConnection localConnObj)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.MaintenancePlan.SubPlansCollection.Add(DtsContainer container)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.MaintenancePlanData.AddSubPlan(String name)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.MaintenancePlanData..ctor(Package source, ServerConnection localServerConnection, Boolean isNewPlan)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.DbMaintView.LoadMaintenancePlan(String connectionString, IManagedConnection connection, String objectUrn)
       at Microsoft.DataTransformationServices.VsIntegration.DtsDesignerService.OpenDesigner(String connectionString, Object connection, String objectUrn)
       at Microsoft.SqlServer.Management.DatabaseMaintenance.MaintDesignerMenuHandler.Invoke()

    ===================================

    Cannot create a task from XML for task «», type «» due to error 0x80070057 «The parameter is incorrect.».
     (OnPreExecute)

    ——————————
    Program Location:

       at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSExecutables100.Add(String bstrMoniker)
       at Microsoft.SqlServer.Dts.Runtime.Executables.Add(String moniker)

    • Edited by

      Tuesday, November 29, 2016 10:06 PM

Answers

  • Hi wfg1234,

    I wasn’t able to reproduce this issue yet, could you please provide more information such as SQL Server version/edition/patch level and Windows version so we can have a better understanding about the issue? According to a

    similar thread, the issue goes away after SSDT has been installed, could you please try it and see how it goes?

    If you have any other questions, please let me know.

    Regards,
    Lin


    MSDN Community Support
    Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
    MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Marked as answer by
      wfg1234
      Friday, December 2, 2016 5:02 PM

  • No issue after SSDT was installed

    • Marked as answer by
      wfg1234
      Friday, December 2, 2016 5:03 PM

SQL Server 2012 Business Intelligence SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core SQL Server 2012 Developer Еще…Меньше

Корпорация Майкрософт распространяет Microsoft SQL Server 2008 R2 с пакетом обновления 1 (SP1) и предоставляет один загружаемый файл. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в более ранний выпуск SQL Server 2008 R2 с пакетом обновления 1 (SP1).

Проблемы

Предположим, что вы используете учетную запись, чтобы подключиться к серверу Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2012. Пароль для входа в учетную запись имеет по крайней мере одну точку с запятой. При попытке создать новый план обслуживания для сервера SQL Server 2008 R2 или SQL Server 2012 в SQL Server Management Studio появляется следующее сообщение об ошибке:

Недопустимый формат строки подключения. Оно должно состоять из одного или нескольких компонентов вида X = Y, разделенных точкой с запятой. Эта ошибка возникает в том случае, если в диспетчере соединений базы данных задана строка подключения, в которой нулевые компоненты установлены.

Кроме того, при нажатии кнопки Показать технические подробности в диалоговом окне, в котором отображается сообщение об ошибке, появляется следующее сообщение об ошибке в диалоговом окне » Дополнительные сведения «.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = » Оно должно состоять из одного или нескольких компонентов вида X = Y, разделенных точкой с запятой. Эта ошибка возникает в том случае, если в диспетчере соединений базы данных задана строка подключения, в которой нулевые компоненты установлены. (MaintenancePlan)——————————расположение программы: Microsoft.SqlServer.Dts.Runtime.ConnectionManager.set_ConnectionString (строковое значение) в Microsoft. SqlServer. Management. DatabaseMaintenance. MaintenancePlan. AddDefaultConnection (ServerConnection Connection) в Microsoft. SqlServer. Management. DatabaseMaintenance. MaintenancePlan. InitializeNewPlanForDesigner () на веб-странице Microsoft. SqlServer. Management.. ctor (источник пакетов, ServerConnection localServerConnection, Boolean isNewPlan) на веб-странице Microsoft. SqlServer. Management. DatabaseMaintenance. DbMaintView. LoadMaintenancePlan (строка connectionString, IManagedConnection соединение, String objectUrn) в Microsoft. DataTransformationServices. VsIntegration. DtsDesignerService. OpenDesigner (строка connectionString, подключение к объекту, String objectUrn) в Microsoft. SqlServer. Management. DatabaseMaintenance. MaintDesignerMenuHandler. Invoke () = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Оно должно состоять из одного или нескольких компонентов вида X = Y, разделенных точкой с запятой. Эта ошибка возникает в том случае, если в диспетчере соединений базы данных задана строка подключения, в которой нулевые компоненты установлены. (MaintenancePlan)——————————расположение программы: Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.set_ConnectionString (String pbstrConnectionString) на Microsoft.SqlServer.Dts.Runtime.ConnectionManager.set_ConnectionString (строковое значение)

Причина

Эта проблема возникает из-за того, что для синтаксического анализа строки соединения в SQL Server используются точки с запятой. В этом случае также используется точка с запятой, которая указана в пароле. Следовательно, строка подключения анализируется неправильно.

Решение

Сведения о накопительном пакете обновления

Накопительный пакет обновления 1 (SP1) для SQL Server 2012 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1. За дополнительными сведениями о том, как получить этот накопительный пакет обновления для SQL Server 2012 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:

2765331 Накопительный пакет обновления 1 (SP1) для SQL Server 2012 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2012. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2772858 Сборки SQL Server 2012, выпущенные после выпуска пакета обновления 1 (SP1) для SQL Server 2012

SQL Server 2012

Исправление для этой проблемы впервые выпущено в накопительном обновлении 3 для SQL Server 2012. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2723749 Накопительный пакет обновления 3 для SQL Server 2012Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2012. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2692828 Сборки SQL Server 2012, выпущенные после выпуска SQL Server 2012 Вы должны применить исправление SQL Server 2012 к установке SQL Server 2012.

SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2008 R2 с пакетом обновления 2. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2720425 Накопительный пакет обновления 1 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)

SQL Server 2008 R2 SP1

Исправление для этой проблемы впервые выпущено в накопительном обновлении 7. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:

2703282 Накопительный пакет обновления 7 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска сервера SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Статус

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

Дополнительная информация

Дополнительные сведения о том, как создать план обслуживания в SQL Server 2012, можно найти на веб-сайте MSDN по следующему адресу:

Создание плана обслуживания

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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


Прочитано:
1 347

Иногда даже самые неочевидные настройки могут затормозить настройку чего-то более нужного, а все обычно происходит из-за не понимания что за что отвечает. Иногда документация двояка, а иногда у Вас просто нет того человека который уже хоть раз с этим сталкивался и может избавить Вас от прохождения ошибок методом проб. Но я считаю, уж лучше столкнуться самим, чем ориентировать на фразу — «Лучше учиться на чужих ошибках, чем на своих», конечно это только мое мнением, решать Вам. Ведь когда то и дело что спрашиваешь по каждому поводу в итоге, это как с решебником задача в школе — на контрольной ты ничего не знаешь, т. к. все время списывал. Ну да ладно, перейду к ошибке с которой столкнулся при создании плана обслуживания баз данных?

При создании плана: — ошибка

Exception has been thrown by the target of an invocation

An OLE DB error 0x80004005 (Login timeout expired) occurred while enumerating packages. A SQL statement was issued and failed.

An OLE DB error 0x80004005 (Login timeout expired) occurred while enumerating packages. A SQL statement was issued and failed.

При создании плана появляется ошибка

может из-за того, что у меня для SQL сервера выделено всего 2048Mb оперативной памяти, а нет, внимательный анализ показал, что кто-то имеющий доступ к административным настройкам пошутил изменив их (или же я сам это сделал по не вдумчивому изменению), было все ниже указанное за исключение TCP/IP с настройкой Disable, а так не должно быть, ниже как должно и работает:

Start — All Programs — Microsoft SQL Server 2008 R2 — Configuration Tools — SQL Server Configuration Manager:

  • Shared Memory = Enabled
  • TCP/IP = Enabled
  • Named Pipes = Enabled
  • VIA = Disabled

Настройки которые должны быть

После разлогиниваюсь оснасткой SQL Management Studio и подключаюсь заново.

Пробую создать план обслуживания:

Management — Maintenance Plans через правый клик New Maintenance Plan…(или Maintenance Plan Wizard (с помощью мастера) и вуаля он запускается,

План обслуживания создается

Дальше следую за мастером и работа уже не преследует меня ошибками. В последующих заметках я покажу, как создать вот этот самый план обслуживания применительно к базам данных чтобы работа с базами и завязанными на них сервисами не превратилась в один как всегда самый не подходящий момент в мучение и не понимание. На этом всё, с уважением aka ekzorchik.

  • Remove From My Forums

 none

Не могу создать/отредактировать план обслуживания базы

  • Вопрос

  • Здравствуйте!
    Вопрос, конечно, пару раз поднимался здесь, но ответ на него все-таки не нашел….
    Windows 2008 Enterprise Server x64 + Microsoft SQL Server Standard Edition (64-bit) SP3 (10.0.5500.0)
    В SQL Server Management Studio пытаюсь добавить новый план обслуживания:
    нажимаю «Создать план обслуживания» — никакой ответной реакции: ничего не открывается,

    ни ошибки, ни в логах записей, вообще никакого ответа….
    Через мастер планов обслуживания получается создать, но в итоге не могу его отредактировать:
    так же щелкаю два раза по созданному плану, а в ответ — тишина.

    Пробовал переустановить через восстановление установленного SQL,
    также  пробовал установить SQL Server Management Studio на другую машину и с неё

    попробовать открыть план — такой же нулевой эффект (хотя одному из соратников помогло)

    В чем дело? Может кто сталкивался?!

Ответы

  • А попробуйте посмотреть, стоят ли у вас компоненты BIDS и Integration Services на вашей машине. Но это я так, чисто догадка, т.к. по сути дела план обслуживание — это SSIS пакет. Может как раз вашему товарищу и помогла переустановка, при которой что-то установили,
    чего раньше не было.


    http://olontsev.ru/

    • Изменено

      9 июня 2012 г. 6:24
      орфографическая ошибка

    • Помечено в качестве ответа
      Dmitry Davydov
      6 июля 2012 г. 9:05

Добрый день, коллеги.

В сегодняшней статье мы бы хотели рассмотреть достаточно востребованную и популярную тему, как настройка планов обслуживания MS SQL Server. В результате проведения аудитов мы достаточно часто (более чем в 60 % случаев) обнаруживаем некорректности в настройке СУБД MS SQL Server, используемой для работы с продуктами фирмы «1С». Практика показывает, что эта СУБД является наиболее распространенной, поэтому в данной статье рассмотрим основные нюансы работы именно с ней.

Итак, с чего начинается настройка плана обслуживания? Конечно же с бэкапа! Первое правило DBA гласит: «Ничего не начинай делать без бэкапа». Ну и мы не будем. Давайте рассмотрим два основных варианта создания бэкапов, а точнее две модели резервного копирования, или модели восстановления (https://msdn.microsoft.com/ru-ru/library/ms189275(v=sql.120).aspx)

Восстановление по модели simple

Ваша база данных находится в SIMPLE режиме восстановления. Что это означает? Это означает, что бэкапы бывают только полные, журналы транзакций бэкапировать не нужно, производительность в этом смысле максимальная, но восстановиться можно только на точку бэкапа. Восстановление базы «на указанный момент времени» невозможно.

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

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

Кроме того, затрону сразу вопрос работы с журналом транзакций. Так как нам журнал тразакций в этом режиме восстановления не очень‑то и помощник, нет необходимости в его резервном копировании — вся информация из журнала уже ушла в бэкап. Обычно журналы в такой модели восстановления почти не растут, но иногда полезно его усекать. Например, после массового изменения данных эта операция может быть крайне полезна с точки зрения места, занимаемого журналом транзакций. Если диск с журналом переполнится — проблемы функционирования базы данных вам обеспечены.

Усечение данных может быть проведено, как стандартным мастером настройки плана обслуживания, так и с помощью несложно скрипта на T‑SQL:

DBCC SHRINKFILE (DatabaseName, 1);

GO

Этот скрипт уменьшит размер лог‑файла базы данных до начального размера (по умолчанию, чаще всего это будет 1 Мб). Однако, не стоит выполнять эту операцию постоянно. В идеале, ваши файлы не должны изменяться в размере в ходе планомерной работы, но об этом мы поговорим как‑нибудь в другой раз.

Восстановление по модели full

Давайте рассмотрим основные принципы настройки резервного копирования и управления размером журнала лога транзакций с точки зрения самого массового варианта — полной модели восстановления БД.

Восстановление данных

Полная модель восстановления отличается от простой тем, что в течение всей работы базы данных мы можем (а еще точнее — ДОЛЖНЫ!) делать бэкапы лога транзакций, тем самым обеспечивая возможность восстановления БД между точками основных бэкапов или откаты на конкретные промежутки времени функционирования базы, а также обеспечивая освобождение места в файле журнала (усечение). Если этого не делать, он будет расти постоянно до тех пор, пока однажды не заполнит все доступное ему место (либо на диске, либо до ограничения, заданного в СУБД). Последствия кажутся очевидными, и не самыми приятными.

С точки зрения наличия полных бэкапов — безусловно, минимальная граница — это как правило те же одни сутки. Разностные бэкапы базы данных — это возможность сохранить только изменения, произошедшие с момента последнего бэкапа. Это позволяет достаточно быстро и оперативно проводить резервное копирование базы данных, при этом использовать достаточно быстрое восстановление БД до нужного состояния.

Резервные копии журнала транзакций могут выполняться с нужной вам периодичностью в течение дня, подробнее чем разностное копирование БД. Мы рекомендуем, обычно, выбирать степень подробности копий около ¼ от времени создания разностных копий БД.

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

Пересчет статистики и работа с индексами

Достаточно ошибочной является сложившаяся практика работы с индексами и статистикой у наших клиентов. Очень часто мы сталкиваемся вообще с полным отсутствием этих процедур в планах обслуживания баз данных. Часто они выполняются в неправильном порядке. Часто просто неоптимально (например, одновременно!).


Правильная последовательность действий выглядит так:

  1. Определяем степень фрагментированности индекса
    1. Если индекс маленький или мало фрагментирован, запускаем процедуру реорганизации индекса и пересчета статистики.

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

  2. Пересчитываем всю остальную статистику, где это требуется.

Если рассмотреть мини‑скрипт для пересчета статистики и перестроения индексов (не претендуем на супер полноту и универсальность), то выглядеть он будет примерно так (с перебором индексов через курсор):

DECLARE @SQL NVARCHAR(MAX)

DECLARE @MIN_IND_SIZE integer = 128

DECLARE @MIN_FRAGMENTATION_LEVEL integer = 10

DECLARE @CRITICAL_FRAGMENTATION_LEVEL integer = 30

DECLARE currentIndex CURSOR LOCAL READ_ONLY FORWARD_ONLY FOR

   SELECT ‘ALTER INDEX [‘ + ind.name + N’] ON [‘ +

SCHEMA_NAME(obj.[schema_id]) + ‘].[‘ + obj.name + ‘] ‘ +

       CASE WHEN stat.avg_fragmentation_in_percent > @CRITICAL_FRAGMENTATION_LEVEL

           THEN ‘REBUILD WITH (SORT_IN_TEMPDB = ON, ONLINE = ON)’

           ELSE ‘REORGANIZE’

       END + ‘;’

   FROM (

       SELECT stat.[object_id], stat.index_id,

avg_fragmentation_in_percent = MAX(stat.avg_fragmentation_in_percent)

       FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, ‘DETAILED’) stat

       WHERE stat.page_count > @MIN_IND_SIZE AND stat.index_id > 0

AND stat.avg_fragmentation_in_percent > @MIN_FRAGMENTATION_LEVEL

       GROUP BY stat.[object_id], stat.index_id

   ) stat

   JOIN sys.indexes ind WITH(NOLOCK) ON stat.[object_id] = ind.[object_id]

AND stat.index_id = ind.index_id

   JOIN sys.objects obj WITH(NOLOCK) ON obj.[object_id] = stat.[object_id]

OPEN currentIndex

FETCH NEXT FROM currentIndex INTO @SQL

WHILE @@FETCH_STATUS = 0 BEGIN

print @sql

   EXEC sys.sp_executesql @SQL

   FETCH NEXT FROM cur INTO @SQL

END

CLOSE currentIndex

DEALLOCATE currentIndex

Обратите внимание на использование tempdb, а также на сохранение индекса доступным во время перестроения — в зависимости от редакции вашей СУБД последняя функция может быть недоступна.

Уведомления

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

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

Понравилась статья? Поделить с друзьями:
  • Ошибка при создании персонажа в wow
  • Ошибка при создании номенклатуры 1с
  • Ошибка при создании параметра в реестре windows 10
  • Ошибка при создании нового тома недопустимое имя пакета
  • Ошибка при создании папки установки windows bt 0x80070005