CREATECollectionJob.sql 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. USE [msdb]
  2. GO
  3. EXEC msdb.dbo.sp_set_sqlagent_properties @email_save_in_sent_folder=1,
  4. @alert_replace_runtime_tokens=1,
  5. @use_databasemail=1
  6. GO
  7. /****** Object: Job [DBA - Performance Statistics] Script Date: 12/10/2014 2:15:35 PM ******/
  8. BEGIN TRANSACTION
  9. DECLARE @ReturnCode INT
  10. SELECT @ReturnCode = 0
  11. /****** Object: JobCategory [Database Maintenance] Script Date: 12/10/2014 2:15:35 PM ******/
  12. IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'PerfMon Collection' AND category_class=1)
  13. BEGIN
  14. EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'PerfMon Collection'
  15. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  16. END
  17. DECLARE @jobId BINARY(16)
  18. EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DBA - PerfMon Counter Collection',
  19. @enabled=1,
  20. @notify_level_eventlog=2,
  21. @notify_level_email=0,
  22. @notify_level_netsend=0,
  23. @notify_level_page=0,
  24. @delete_level=0,
  25. @description=N'Collect performance counters for SQL Server baselining',
  26. @category_name=N'PerfMon Collection',
  27. @owner_login_name=N'sa', @job_id = @jobId OUTPUT
  28. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  29. /****** Object: Step [Get PerfMon data] Script Date: 12/10/2014 2:15:35 PM ******/
  30. EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Get PerfMon data',
  31. @step_id=1,
  32. @cmdexec_success_code=0,
  33. @on_success_action=1,
  34. @on_success_step_id=0,
  35. @on_fail_action=2,
  36. @on_fail_step_id=0,
  37. @retry_attempts=0,
  38. @retry_interval=0,
  39. @os_run_priority=0, @subsystem=N'CmdExec',
  40. @command=N'C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\Get-SQLPerfCounters.ps1 -S $(ESCAPE_NONE(SRVR))',
  41. @flags=32
  42. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  43. EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
  44. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  45. EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Every 5 Minutes',
  46. @enabled=1,
  47. @freq_type=4,
  48. @freq_interval=1,
  49. @freq_subday_type=4,
  50. @freq_subday_interval=5,
  51. @freq_relative_interval=0,
  52. @freq_recurrence_factor=0,
  53. @active_start_date=20140903,
  54. @active_end_date=99991231,
  55. @active_start_time=0,
  56. @active_end_time=235959,
  57. @schedule_uid=N'c469be3f-e33b-4a9e-a02f-4a70db2012bd'
  58. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  59. EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
  60. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  61. COMMIT TRANSACTION
  62. GOTO EndSave
  63. QuitWithRollback:
  64. IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
  65. EndSave:
  66. GO
  67. USE [msdb]
  68. GO
  69. /****** Object: Job [DBA - Load Session Status per minute] Script Date: 2/1/2016 11:08:14 AM ******/
  70. BEGIN TRANSACTION
  71. DECLARE @ReturnCode INT
  72. SELECT @ReturnCode = 0
  73. /****** Object: JobCategory [DBA] Script Date: 2/1/2016 11:08:14 AM ******/
  74. IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA' AND category_class=1)
  75. BEGIN
  76. EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA'
  77. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  78. END
  79. DECLARE @jobId BINARY(16)
  80. EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DBA - Load Session Status per minute',
  81. @enabled=1,
  82. @notify_level_eventlog=0,
  83. @notify_level_email=0,
  84. @notify_level_netsend=0,
  85. @notify_level_page=0,
  86. @delete_level=0,
  87. @description=N'This job runs every minutes to capture the status of all the sessions running on the instance and loads it in the dbo.Sessionstatus table in dba_local',
  88. @category_name=N'DBA',
  89. @owner_login_name=N'sa', @job_id = @jobId OUTPUT
  90. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  91. /****** Object: Step [Load Session Status] Script Date: 2/1/2016 11:08:15 AM ******/
  92. EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Load Session Status',
  93. @step_id=1,
  94. @cmdexec_success_code=0,
  95. @on_success_action=1,
  96. @on_success_step_id=0,
  97. @on_fail_action=2,
  98. @on_fail_step_id=0,
  99. @retry_attempts=0,
  100. @retry_interval=0,
  101. @os_run_priority=0, @subsystem=N'TSQL',
  102. @command=N'exec dbo.spLoadSessionStatus',
  103. @database_name=N'dba_local',
  104. @flags=0
  105. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  106. EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
  107. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  108. EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Load Session status per min',
  109. @enabled=1,
  110. @freq_type=4,
  111. @freq_interval=1,
  112. @freq_subday_type=4,
  113. @freq_subday_interval=1,
  114. @freq_relative_interval=0,
  115. @freq_recurrence_factor=0,
  116. @active_start_date=20150817,
  117. @active_end_date=99991231,
  118. @active_start_time=0,
  119. @active_end_time=235959,
  120. @schedule_uid=N'9b226349-52b8-4e4a-8219-ef062a524757'
  121. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  122. EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
  123. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  124. COMMIT TRANSACTION
  125. GOTO EndSave
  126. QuitWithRollback:
  127. IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
  128. EndSave:
  129. GO
  130. /****** Object: Job [Load SystemHealthSession] Script Date: 7/26/2016 12:26:37 PM ******/
  131. BEGIN TRANSACTION
  132. DECLARE @ReturnCode INT
  133. SELECT @ReturnCode = 0
  134. /****** Object: JobCategory [DBA] Script Date: 7/26/2016 12:26:37 PM ******/
  135. IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA' AND category_class=1)
  136. BEGIN
  137. EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA'
  138. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  139. END
  140. DECLARE @jobId BINARY(16)
  141. EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Load SystemHealthSession',
  142. @enabled=1,
  143. @notify_level_eventlog=0,
  144. @notify_level_email=0,
  145. @notify_level_netsend=0,
  146. @notify_level_page=0,
  147. @delete_level=0,
  148. @description=N'This job load the system health session xel trace files to tables in dba_local every morning at 2AM',
  149. @category_name=N'DBA',
  150. @owner_login_name=N'sa', @job_id = @jobId OUTPUT
  151. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  152. /****** Object: Step [Load SystemHealthSession] Script Date: 7/26/2016 12:26:38 PM ******/
  153. EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Load SystemHealthSession',
  154. @step_id=1,
  155. @cmdexec_success_code=0,
  156. @on_success_action=1,
  157. @on_success_step_id=0,
  158. @on_fail_action=2,
  159. @on_fail_step_id=0,
  160. @retry_attempts=0,
  161. @retry_interval=0,
  162. @os_run_priority=0, @subsystem=N'TSQL',
  163. @command=N'exec dbo.spLoadSystemHealthSession',
  164. @database_name=N'dba_local',
  165. @flags=0
  166. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  167. EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
  168. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  169. EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Daily 2AM',
  170. @enabled=1,
  171. @freq_type=4,
  172. @freq_interval=1,
  173. @freq_subday_type=1,
  174. @freq_subday_interval=0,
  175. @freq_relative_interval=0,
  176. @freq_recurrence_factor=0,
  177. @active_start_date=20160726,
  178. @active_end_date=99991231,
  179. @active_start_time=20000,
  180. @active_end_time=235959,
  181. @schedule_uid=N'7507f377-9fe9-46b5-ba54-0b3a20965091'
  182. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  183. EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
  184. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  185. COMMIT TRANSACTION
  186. GOTO EndSave
  187. QuitWithRollback:
  188. IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
  189. EndSave:
  190. GO