Sql-server – How to configure data collection in SQL Server 2012

debuggingsql serversql-server-2012troubleshooting

In SSMS of SQL Server 2012 Enterprise on Windows Server R2 Standard, each time I am trying to set sub-option "On demand" of option "Non-cached – Collect and upload data on the same schedule" of Data Collection Set, I am getting the error:

A collection set cannot start without a schedule. Specify a schedule for the collection set

enter image description here

TITLE: Microsoft SQL Server Management Studio

Operation 'Alter' on object 'Disk Usage' failed during execution.
(Microsoft.SqlServer.Management.Sdk.Sfc)

An exception occurred while executing a Transact-SQL statement or
batch. (Microsoft.SqlServer.ConnectionInfo)

Caught error#: 14684, Level: 16, State: 1, in Procedure:
sp_syscollector_start_collection_set, Line: 203, with Message: Caught
error#: 14693, Level: 16, State: 1, in Procedure:
sp_syscollector_start_collection_set, Line: 108, with Message: A
collection set cannot start without a schedule. Specify a schedule for
the collection set. (Microsoft SQL Server, Error: 14684)

Now, I do not see how to re-setup or reconfigure the Data Collection in any way other than to enable and disable already existing malfunctioning one.

Any ideas how to make it working?

First of all, I'd like to understand whether it is me who screwed it (though I tried on different machines) or it is someone else ?

Update:
Microsoft SQL Server 2012 (SP1) – 11.0.3128.0 (X64)
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)

Best Answer

It's a bug. This Connect ticket has a workaround for it from Kendra Little:

I was able to work around this issue by temporarily adding a scheduled to the Utility Information collection (@collection_set_id=4) with the SQL command below. After doing this I was able to complete the data collection configuration via the GUI successfully. Afterwards I went back and set the Utility Information collection to manual start, thereby removing the schedule.

declare @schedule_uid uniqueidentifier
select @schedule_uid = schedule_uid from dbo.syscollector_collection_sets where collection_set_id=3

exec dbo.sp_syscollector_update_collection_set
@collection_set_id=4
, @schedule_uid=@schedule_uid