sync
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
/* Configuration des postes pour éviter le deadlock lors des rajout d'abonnements suite à des mises à jours doit être passé après la virtualisation des serveurs.*/
|
||||
Exec ActivePos_server.dbo.ExecuteOnAllPos '
|
||||
|
||||
DECLARE
|
||||
@delay varchar(5),
|
||||
@message NVARCHAR(4000)
|
||||
|
||||
BEGIN TRY
|
||||
DECLARE @mac AS TABLE (MacAddress VARCHAR(400) null)
|
||||
DECLARE @posId AS VARCHAR(5)
|
||||
|
||||
INSERT INTO @mac
|
||||
EXEC xp_cmdshell ''getmac''
|
||||
SELECT @posId = Number FROM ActivePos_read..PointOfSale pos
|
||||
join @mac m
|
||||
ON LEFT(m.MacAddress, 18) = pos.MacAddress
|
||||
SET @delay = ''@'' + convert(varchar(2),2*@posId) + ''m''
|
||||
UPDATE ActivePos_write.dbo.[Settings]
|
||||
SET [SettingValue]= @delay
|
||||
WHERE [SettingId]=''Configuration.ConfigSections.Plugins.Parts.ManageSqlSubscriptionJob.Schedule''
|
||||
AND [ApplicationId]=''e9f3ada2-555c-4fb9-b109-5d8684d77135''
|
||||
and @posId < 30
|
||||
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
select @message = ERROR_MESSAGE()
|
||||
select @message = ''Error while updating schedule on POS '''' + convert(varchar(2),2*@posId) + ''''.'' + @message
|
||||
raiserror (@message, 13,1)
|
||||
END CATCH
|
||||
', 1
|
||||
@@ -1,6 +0,0 @@
|
||||
USE msdb
|
||||
GO
|
||||
|
||||
EXEC dbo.sp_start_job
|
||||
@job_name = N'DR92160 - Replication Check'
|
||||
GO
|
||||
@@ -1,332 +0,0 @@
|
||||
USE [master]
|
||||
|
||||
/* Create SQL Master key */
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.symmetric_keys WHERE name like '%DatabaseMasterKey%')
|
||||
BEGIN
|
||||
EXEC('CREATE MASTER KEY ENCRYPTION BY PASSWORD = ''$mk''')
|
||||
|
||||
/* Backup SQL Master key */
|
||||
EXEC('BACKUP MASTER KEY TO FILE = ''$bck'' ENCRYPTION BY PASSWORD = ''$mk''')
|
||||
END
|
||||
|
||||
/* Create Atlas Service Broker Certificate */
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.certificates WHERE name = 'TriaPharmSQLCert')
|
||||
BEGIN
|
||||
EXEC('CREATE CERTIFICATE TriaPharmSQLCert FROM FILE = ''D:\SQLDatabaseDump\Certificates\TriaPharmSQLCert.cer'' WITH PRIVATE KEY (FILE = ''D:\SQLDatabaseDump\Certificates\TriaPharmSQLCert.pvk'', DECRYPTION BY PASSWORD = ''$cert'');')
|
||||
END
|
||||
|
||||
/* SQL Broker Endpoint Creation */
|
||||
IF NOT EXISTS ( SELECT 1 FROM sys.tcp_endpoints WHERE name = 'ServiceBrokerEndpoint4022')
|
||||
BEGIN
|
||||
CREATE ENDPOINT [ServiceBrokerEndpoint4022]
|
||||
STATE=STARTED
|
||||
AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL)
|
||||
FOR SERVICE_BROKER (MESSAGE_FORWARDING = DISABLED
|
||||
, MESSAGE_FORWARD_SIZE = 10
|
||||
, AUTHENTICATION = CERTIFICATE TriaPharmSQLCert
|
||||
, ENCRYPTION = REQUIRED ALGORITHM AES)
|
||||
|
||||
EXEC('GRANT CONNECT on ENDPOINT::[ServiceBrokerEndpoint4022] TO [PUBLIC]')
|
||||
|
||||
END
|
||||
|
||||
USE [Arizona]
|
||||
|
||||
/*------------------- Declaration des variables --------------------*/
|
||||
DECLARE @cvCurrentOrganizationalUnit int,
|
||||
@subsidiary_id int,
|
||||
@skip tinyint,
|
||||
@servicenamecheck varchar(255),
|
||||
@out_default_value varchar(60),
|
||||
@format varchar(60),
|
||||
@ou varchar(3),
|
||||
@envtype char(1),
|
||||
@envtype2 char(1),
|
||||
@ServiceName varchar(150),
|
||||
@RteAddress varchar(150),
|
||||
@stmt nvarchar(4000)
|
||||
|
||||
|
||||
|
||||
/*------------ Affectation des parametres aux variables ------------*/
|
||||
|
||||
SET @cvCurrentOrganizationalUnit = null
|
||||
SET @subsidiary_id = null
|
||||
SET @ou = ''
|
||||
SET @skip = 0
|
||||
|
||||
SELECT @envtype = CASE WHEN [Type] = 'DEVE' OR [Type] = 'VALI' THEN 'D' ELSE 'P' END FROM master.cfg.InstanceContext
|
||||
SELECT @envtype2 = CASE WHEN [Type] = 'DEVE' THEN 'D' WHEN [Type] = 'VALI' THEN 'T' ELSE 'P' END FROM master.cfg.InstanceContext
|
||||
|
||||
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
/* \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 1 : RETRIEVE FORMAT AND OU CODE /////////////////////////////////////////////////// */
|
||||
/* ------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
|
||||
IF EXISTS(SELECT 1 FROM [master].[cfg].[InstanceContext] WHERE Business = 'TPPHAR')
|
||||
BEGIN
|
||||
/* Get the cvCurrentOrganizationalUnit */
|
||||
EXEC arizona.dbo.sp_bmc_Bmc_Applic_Default
|
||||
@in_job_type = 3,
|
||||
@in_param_int_1 = null,
|
||||
@in_param_int_2 = null,
|
||||
@in_param_varchar_1 = 'cvCurrentOrganizationalUnit',
|
||||
@out_default_value = @out_default_value OUTPUT,
|
||||
@out_param_int_1 = null;
|
||||
|
||||
SELECT @cvCurrentOrganizationalUnit = convert(int,@out_default_value);
|
||||
|
||||
/* Get the subsidiary id and OU code */
|
||||
SELECT @subsidiary_id = ou.OU_subsidiary, @ou = ou.OU_Code
|
||||
FROM arizona.dbo.Organizational_unit ou with (nolock)
|
||||
WHERE ou.Organizational_unit_ID = @cvCurrentOrganizationalUnit;
|
||||
|
||||
/* Get the current format */
|
||||
SELECT @format = UPPER(sub.SUB_code)
|
||||
FROM arizona.dbo.Subsidiary sub with (nolock)
|
||||
WHERE sub.Subsidiary_ID = @subsidiary_id;
|
||||
|
||||
/* Check if we have a value, if not leave this SP */
|
||||
IF @format is null
|
||||
BEGIN
|
||||
PRINT 'ERROR: Format is not found!'
|
||||
SET @skip = 1
|
||||
END
|
||||
|
||||
IF @ou = ''
|
||||
BEGIN
|
||||
PRINT 'ERROR: OU is not found!'
|
||||
SET @skip = 1
|
||||
END
|
||||
|
||||
/* Change the value into a compatible format */
|
||||
IF @format = 'COOP'
|
||||
BEGIN
|
||||
SET @format = 'CVI'
|
||||
END
|
||||
|
||||
IF @format = 'CENT'
|
||||
BEGIN
|
||||
SET @format = 'SUN'
|
||||
END
|
||||
|
||||
IF @format = '000'
|
||||
BEGIN
|
||||
SET @format = 'AAI'
|
||||
END
|
||||
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
/* \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 2 : CREATE SERVICE BROEKR OBJECTS ////////////////////////////////////////////////// */
|
||||
/* ------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
|
||||
IF @skip = 0
|
||||
BEGIN
|
||||
|
||||
/* Activate Service Broker */
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.databases WHERE name = 'Arizona' and is_broker_enabled = 1)
|
||||
BEGIN
|
||||
IF (SERVERPROPERTY('EngineEdition') <> 8)
|
||||
BEGIN
|
||||
ALTER DATABASE [Arizona] SET ENABLE_BROKER
|
||||
END
|
||||
END
|
||||
|
||||
/* Create Atlas Route */
|
||||
IF NOT EXISTS (select 1 from sys.routes where name = '//ATLAS/' + @envtype + 'GALATLAS/Atlas')
|
||||
BEGIN
|
||||
|
||||
SET @ServiceName = '//ATLAS/' + @envtype + 'GALATLAS/AtlasDataCheckRequestService'
|
||||
IF @envtype = 'P'
|
||||
BEGIN
|
||||
SET @RteAddress = 'TCP://atlas.centralinfra.net:4022'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @RteAddress = 'TCP://atlas-dev.centralinfra.net:4022'
|
||||
END
|
||||
|
||||
SET @stmt = N'CREATE ROUTE [//ATLAS/' + @envtype + 'GALATLAS/Atlas] WITH SERVICE_NAME = ''' + @ServiceName + ''', ADDRESS=''' + @RteAddress + ''' ;'
|
||||
EXEC(@stmt)
|
||||
|
||||
END
|
||||
|
||||
/* Create Ceres Route */
|
||||
IF NOT EXISTS (select 1 from sys.routes where name = '//GAIA/' + @envtype2 + 'GALCTP/Ceres')
|
||||
BEGIN
|
||||
|
||||
SET @ServiceName = '//GAIA/' + @envtype2 + 'GALCTP/CeresRequestService'
|
||||
IF @envtype = 'P'
|
||||
BEGIN
|
||||
SET @RteAddress = 'TCP://SWGCMDB01.centralinfra.net:4022'
|
||||
END
|
||||
IF @envtype2 = 'T'
|
||||
BEGIN
|
||||
SET @RteAddress = 'TCP://triafin-test.centralinfra.net:4022'
|
||||
END
|
||||
IF @envtype2 = 'D'
|
||||
BEGIN
|
||||
SET @RteAddress = 'TCP://triafin-integration.centralinfra.net:4022'
|
||||
END
|
||||
|
||||
SET @stmt = N'CREATE ROUTE [//GAIA/' + @envtype2 + 'GALCTP/Ceres] WITH SERVICE_NAME = ''' + @ServiceName + ''', ADDRESS=''' + @RteAddress + ''' ;'
|
||||
EXEC(@stmt)
|
||||
|
||||
END
|
||||
|
||||
/* Drop service ATLAS */
|
||||
SELECT @servicenamecheck = name FROM sys.services WHERE name like '%AtlasDataCheckProcessingService%'
|
||||
|
||||
IF EXISTS (SELECT 1 from sys.services WHERE name = @servicenamecheck)
|
||||
BEGIN
|
||||
EXEC('DROP SERVICE [' + @servicenamecheck +']')
|
||||
END
|
||||
|
||||
/* Drop contract ATLAS */
|
||||
IF EXISTS (SELECT 1 from sys.service_contracts WHERE name = 'AtlasDataCheckContract')
|
||||
BEGIN
|
||||
DROP CONTRACT AtlasDataCheckContract
|
||||
END
|
||||
|
||||
/* DROP AND CREATE MESSAGES ATLAS */
|
||||
IF EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'AtlasDataCheckSenderMessageType')
|
||||
BEGIN
|
||||
DROP MESSAGE TYPE [AtlasDataCheckSenderMessageType]
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'AtlasDataCheckSenderMessageType')
|
||||
BEGIN
|
||||
CREATE MESSAGE TYPE AtlasDataCheckSenderMessageType validation=well_formed_xml
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'AtlasDataCheckReceiverMessageType')
|
||||
BEGIN
|
||||
DROP MESSAGE TYPE [AtlasDataCheckReceiverMessageType]
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'AtlasDataCheckReceiverMessageType')
|
||||
BEGIN
|
||||
CREATE MESSAGE TYPE AtlasDataCheckReceiverMessageType validation=well_formed_xml
|
||||
END
|
||||
|
||||
/* CREATE CONTRACT ATLAS */
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = 'AtlasDataCheckContract')
|
||||
BEGIN
|
||||
CREATE CONTRACT AtlasDataCheckContract
|
||||
(
|
||||
AtlasDataCheckSenderMessageType SENT BY INITIATOR,
|
||||
AtlasDataCheckReceiverMessageType SENT BY TARGET
|
||||
)
|
||||
END
|
||||
|
||||
/* DROP AND CREATE QUEUE ATLAS */
|
||||
IF EXISTS (SELECT 1 from sys.service_queues WHERE name = 'AtlasDataCheckProcessingQueue')
|
||||
BEGIN
|
||||
DROP QUEUE AtlasDataCheckProcessingQueue
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 from sys.service_queues WHERE name = 'AtlasDataCheckProcessingQueue')
|
||||
BEGIN
|
||||
CREATE QUEUE AtlasDataCheckProcessingQueue
|
||||
WITH STATUS = ON ,
|
||||
ACTIVATION (
|
||||
STATUS = ON ,
|
||||
PROCEDURE_NAME = [atl].[ProcessCheckData] ,
|
||||
MAX_QUEUE_READERS = 10 ,
|
||||
EXECUTE AS SELF
|
||||
)
|
||||
END
|
||||
|
||||
/* CREATE SERVICE ATLAS */
|
||||
SET @servicenamecheck = '//' + @format+@ou + 'APS/APSSQL/AtlasDataCheckProcessingService'
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = @servicenamecheck)
|
||||
BEGIN
|
||||
EXEC('CREATE SERVICE [' + @servicenamecheck + '] ON QUEUE AtlasDataCheckProcessingQueue (AtlasDataCheckContract)')
|
||||
END
|
||||
|
||||
/* SET SECURITY ATLAS */
|
||||
EXEC('GRANT SEND on service::[' + @servicenamecheck + '] TO PUBLIC')
|
||||
|
||||
|
||||
|
||||
|
||||
/* Drop service CERES */
|
||||
SELECT @servicenamecheck = name FROM sys.services WHERE name like '%CeresProcessingService%'
|
||||
|
||||
IF EXISTS (SELECT 1 from sys.services WHERE name = @servicenamecheck)
|
||||
BEGIN
|
||||
EXEC('DROP SERVICE [' + @servicenamecheck +']')
|
||||
END
|
||||
|
||||
/* Drop contract CERES */
|
||||
IF EXISTS (SELECT 1 from sys.service_contracts WHERE name = 'CeresContract')
|
||||
BEGIN
|
||||
DROP CONTRACT CeresContract
|
||||
END
|
||||
|
||||
/* DROP AND CREATE MESSAGES CERES */
|
||||
IF EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'CeresSenderMessageType')
|
||||
BEGIN
|
||||
DROP MESSAGE TYPE [CeresSenderMessageType]
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'CeresSenderMessageType')
|
||||
BEGIN
|
||||
CREATE MESSAGE TYPE CeresSenderMessageType validation=well_formed_xml
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'CeresReceiverMessageType')
|
||||
BEGIN
|
||||
DROP MESSAGE TYPE [CeresReceiverMessageType]
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 from sys.service_message_types WHERE name = 'CeresReceiverMessageType')
|
||||
BEGIN
|
||||
CREATE MESSAGE TYPE CeresReceiverMessageType validation=well_formed_xml
|
||||
END
|
||||
|
||||
/* CREATE CONTRACT CERES */
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = 'CeresContract')
|
||||
BEGIN
|
||||
CREATE CONTRACT CeresContract
|
||||
(
|
||||
CeresSenderMessageType SENT BY INITIATOR,
|
||||
CeresReceiverMessageType SENT BY TARGET
|
||||
)
|
||||
END
|
||||
|
||||
/* DROP AND CREATE QUEUE CERES */
|
||||
IF EXISTS (SELECT 1 from sys.service_queues WHERE name = 'CeresProcessingQueue')
|
||||
BEGIN
|
||||
DROP QUEUE CeresProcessingQueue
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 from sys.service_queues WHERE name = 'CeresProcessingQueue')
|
||||
BEGIN
|
||||
CREATE QUEUE CeresProcessingQueue
|
||||
WITH STATUS = ON ,
|
||||
ACTIVATION (
|
||||
STATUS = ON ,
|
||||
PROCEDURE_NAME = [crs].[ProcessRequest] ,
|
||||
MAX_QUEUE_READERS = 10 ,
|
||||
EXECUTE AS SELF
|
||||
)
|
||||
END
|
||||
|
||||
/* CREATE SERVICE CERES */
|
||||
SET @servicenamecheck = '//' + @format+@ou + 'APS/APSSQL/CeresProcessingService'
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.service_contracts WHERE name = @servicenamecheck)
|
||||
BEGIN
|
||||
EXEC('CREATE SERVICE [' + @servicenamecheck + '] ON QUEUE CeresProcessingQueue (CeresContract)')
|
||||
END
|
||||
|
||||
/* SET SECURITY ATLAS */
|
||||
EXEC('GRANT SEND on service::[' + @servicenamecheck + '] TO PUBLIC')
|
||||
|
||||
END
|
||||
END
|
||||
@@ -1,12 +0,0 @@
|
||||
/*
|
||||
TSC 27.12.2023 Removed managmenent of login centralinfra\L-CP-GL-AP-ATLAS-SQL-WSVC1 (related to centralPharma domain, which doesn't exists anymore)
|
||||
*/
|
||||
|
||||
USE [master]
|
||||
GO
|
||||
|
||||
IF EXISTS(SELECT 1 FROM SYS.syslogins WHERE name = 'BUILTIN\Administrators')
|
||||
BEGIN
|
||||
DROP LOGIN [BUILTIN\Administrators]
|
||||
END
|
||||
GO
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,57 +0,0 @@
|
||||
/* 23.06.2021 RTC TFS 65413 Optimize RAM configuration */
|
||||
EXEC sys.sp_configure N'show advanced options', N'1' RECONFIGURE WITH OVERRIDE
|
||||
GO
|
||||
EXEC sys.sp_configure N'min server memory (MB)', N'1024'
|
||||
GO
|
||||
|
||||
DECLARE @maxMem INT;
|
||||
DECLARE @totSysMemKb INT;
|
||||
DECLARE @NumOfCores INT;
|
||||
DECLARE @NumOfProcessors INT;
|
||||
DECLARE @NumOfSQLThreads INT;
|
||||
DECLARE @isX64 BIT = 1;
|
||||
DECLARE @ThreadStackSize INT;
|
||||
DECLARE @osReserved INT;
|
||||
DECLARE @newMaxMem INT;
|
||||
DECLARE @appReserved INT = 4*1024*1024; --memory reserved for other apps on the server in Kb
|
||||
|
||||
SELECT @totSysMemKb = [total_physical_memory_kb]
|
||||
FROM [sys].[dm_os_sys_memory];
|
||||
|
||||
SELECT @NumOfCores = [cpu_count], @NumOfProcessors = [cpu_count] / [hyperthread_ratio]
|
||||
FROM [sys].[dm_os_sys_info];
|
||||
|
||||
SELECT @isX64 = CHARINDEX('64-bit',CAST(SERVERPROPERTY('Edition') AS VARCHAR(MAX)));
|
||||
|
||||
SELECT @ThreadStackSize = CASE WHEN @isX64=1 THEN 4096 ELSE 2048 END;
|
||||
|
||||
SELECT @NumOfSQLThreads = 256 + (@NumOfProcessors - 4) * 8 * (CASE WHEN @NumOfProcessors >4 THEN @NumOfProcessors ELSE 0 END);
|
||||
|
||||
|
||||
select @NumOfCores = 1, @NumOfProcessors = 8
|
||||
|
||||
SELECT @osReserved = CASE WHEN @totSysMemKb < (20*1024*1024) THEN @totSysMemKb * 0.2 ELSE @totSysMemKb * 0.125 END;
|
||||
|
||||
PRINT'
|
||||
@totSysMemKb: '+COALESCE(CAST(@totSysMemKb AS VARCHAR(MAX)),'null')+'
|
||||
@NumOfCores: '+COALESCE(CAST(@NumOfCores AS VARCHAR(MAX)),'null')+'
|
||||
@NumOfProcessors: '+COALESCE(CAST(@NumOfProcessors AS VARCHAR(MAX)),'null')+'
|
||||
@NumOfSQLThreads: '+COALESCE(CAST(@NumOfSQLThreads AS VARCHAR(MAX)),'null')+'
|
||||
@isX64: '+COALESCE(CAST(@isX64 AS VARCHAR(MAX)),'null')+'
|
||||
@ThreadStackSize: '+COALESCE(CAST(@ThreadStackSize AS VARCHAR(MAX)),'null')+'
|
||||
@osReserved: '+COALESCE(CAST(@osReserved AS VARCHAR(MAX)),'null')+'
|
||||
@appReserved: '+COALESCE(CAST(@appReserved AS VARCHAR(MAX)),'null')+'
|
||||
';
|
||||
SELECT @newMaxMem = @totSysMemKb - (@NumOfSQLThreads * @ThreadStackSize) - ((1* 1024 * 1024) * CEILING(@NumOfCores/4)) - @osReserved - @appReserved;
|
||||
|
||||
SELECT @MaxMem = @newMaxMem / 1024
|
||||
|
||||
EXEC sys.sp_configure N'max server memory (MB)', @maxMem
|
||||
RECONFIGURE WITH OVERRIDE
|
||||
EXEC sys.sp_configure N'show advanced options', N'0' RECONFIGURE WITH OVERRIDE
|
||||
|
||||
UPDATE HCITools.dbo.HCI_PARAMS
|
||||
SET HCIP_value = @MaxMem
|
||||
WHERE HCIP_key = 'MAXSRVMEM'
|
||||
|
||||
GO
|
||||
@@ -1,44 +0,0 @@
|
||||
/*=============================================================================
|
||||
TPDT-283
|
||||
|
||||
Update central system_site values for a specific OU
|
||||
|
||||
Parameters
|
||||
----------------------
|
||||
In script parameters updated from Powershell are present:
|
||||
@ou_id The id of the OU we need to update. This id is fetched from the local machine being migrated.
|
||||
@fqdn The FQDN of the machine being migrated to Azure. This is fetched from a DNS request, not built.
|
||||
@alias The alias of the machine being migrated to Azure. This is logically built from the FQDN
|
||||
|
||||
Context
|
||||
----------------------
|
||||
This script is called from a powershell in the task sequence during the migration to Azure.
|
||||
The excution context is the local pharmacy being moved to Azure, but updating the central via the linked server arizonaCash.
|
||||
It ensure that the system_site reflect the new hostname of the machine, so that labels are delivered correctly.
|
||||
|
||||
Creation : 04.03.2024 / TSC
|
||||
Modifications:
|
||||
07.03.2024 TSC Rewrote to connect to the central through the pharmacy linked server ArizonaCash
|
||||
The values in the local pharmacy are updated as well
|
||||
15.03.2024 TSC Went back to a local update. this script will be run both locally and on the central from the powershell executing it
|
||||
=============================================================================*/
|
||||
USE [master];
|
||||
|
||||
DECLARE @ou_id INT = $ou_id;
|
||||
DECLARE @fqdn VARCHAR(100) = '$fqdn';
|
||||
DECLARE @alias VARCHAR(100) = '$alias';
|
||||
|
||||
UPDATE ss
|
||||
SET [ss].[SS_server_name] = @alias
|
||||
, [ss].[SS_IP_server_address] = @alias
|
||||
, [ss].[SS_domain_name] = @fqdn
|
||||
FROM [arizona].[dbo].[Organizational_unit] ou
|
||||
JOIN [arizona].[dbo].[System_site] ss ON ss.[System_site_ID] = ou.[OU_system_site]
|
||||
WHERE ou.[Organizational_unit_ID] = @ou_id;
|
||||
|
||||
UPDATE ssi
|
||||
SET [ssi].[SSSI_SQL_instance_name] = @alias+'\APSSQL'
|
||||
FROM [arizona].[dbo].[Organizational_unit] ou
|
||||
JOIN [arizona].[dbo].[System_site] ss ON ss.[System_site_ID] = ou.[OU_system_site]
|
||||
JOIN [arizona].[dbo].[System_site_SQL_instance] ssi ON ssi.[SSSI_system_site] = ss.[System_site_ID]
|
||||
WHERE ou.[Organizational_unit_ID] = @ou_id;
|
||||
@@ -1,37 +0,0 @@
|
||||
/*=============================================================================
|
||||
TPDT-283
|
||||
|
||||
Update central system_site values for a specific OU
|
||||
|
||||
Parameters
|
||||
----------------------
|
||||
In script parameters updated from Powershell are present:
|
||||
@ou_id The id of the OU we need to update. This id is fetched from the local machine being migrated.
|
||||
@fqdn The FQDN of the machine being migrated to Azure. This is fetched from a DNS request, not built.
|
||||
@mac The MAC address fetched from the local machine
|
||||
|
||||
Context
|
||||
----------------------
|
||||
This script is called from a powershell in the task sequence during the migration to Azure.
|
||||
The excution context is the local pharmacy being moved to Azure, but updating the central via the linked server arizonaCash.
|
||||
It ensure that the point_of_sale table reflect the new hostname and mac address of the machine migrating to Azure
|
||||
|
||||
Creation : 04.03.2024 / TSC
|
||||
Modifications:
|
||||
07.03.2024 TSC Rewrote to connect to the central through the pharmacy linked server ArizonaCash
|
||||
The values in the local pharmacy are updated as well
|
||||
15.03.2024 TSC Went back to a local update. this script will be run both locally and on the central from the powershell executing it
|
||||
=============================================================================*/
|
||||
USE [master];
|
||||
|
||||
DECLARE @ou_id INT = $ou_id;
|
||||
DECLARE @fqdn VARCHAR(100) = '$fqdn';
|
||||
DECLARE @mac VARCHAR(100) = '$mac';
|
||||
|
||||
--local
|
||||
UPDATE ps
|
||||
SET [ps].[POS_MAC_address] = @mac
|
||||
, [ps].[POS_hostname] = @fqdn
|
||||
FROM [arizona].[dbo].[Point_of_sale] ps
|
||||
WHERE [ps].[POS_organizational_unit] = @ou_id
|
||||
AND [ps].[POS_number]=99;
|
||||
@@ -1,51 +0,0 @@
|
||||
|
||||
IF (SELECT COUNT(*) FROM [master].[cfg].[Identity]) = 0
|
||||
BEGIN
|
||||
INSERT INTO [master].[cfg].[Identity]
|
||||
([Format]
|
||||
,[DnsAlias]
|
||||
,[Remark]
|
||||
,[UpdateDate]
|
||||
,[Customer])
|
||||
VALUES
|
||||
('$format'
|
||||
,'$fqdn'
|
||||
,'Initialization DBA'
|
||||
,Default
|
||||
,'$customer')
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
UPDATE [master].[cfg].[Identity]
|
||||
SET [Format] = '$format'
|
||||
,[DnsAlias] = '$fqdn'
|
||||
, [Remark] = 'DBA update after Rollout'
|
||||
, [Customer] = '$customer'
|
||||
END
|
||||
|
||||
IF (SELECT COUNT(*) FROM [master].[cfg].[InstanceContext]) = 0
|
||||
BEGIN
|
||||
INSERT INTO [master].[cfg].[InstanceContext]
|
||||
(InstanceContextGuid
|
||||
,[Type]
|
||||
,[Business]
|
||||
,[Behavior]
|
||||
,[Remark]
|
||||
,[UpdateDate])
|
||||
VALUES
|
||||
(Newid()
|
||||
,'$context'
|
||||
,'TPPHAR'
|
||||
,'Enable'
|
||||
,'Initialization DBA'
|
||||
,Default)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
IF EXISTS(SELECT 1 FROM [master].[cfg].[InstanceContext] WHERE [Type] = 'PREP')
|
||||
UPDATE [master].[cfg].[InstanceContext]
|
||||
SET [Type] = '$context'
|
||||
,[Business] = 'TPPHAR'
|
||||
,[Behavior] = 'Enable'
|
||||
,[Remark] = 'DBA update after Rollout'
|
||||
END
|
||||
@@ -1,11 +0,0 @@
|
||||
exec master.dbo.sp_configure 'show advanced option', 1;
|
||||
RECONFIGURE WITH OVERRIDE
|
||||
exec master.dbo.sp_configure 'Ad Hoc Distributed Queries',1
|
||||
exec master.dbo.sp_configure 'xp_cmdshell',1
|
||||
exec master.dbo.sp_configure 'clr enabled',1
|
||||
exec master.dbo.sp_configure 'Database Mail XPs',1
|
||||
exec master.dbo.sp_configure 'show advanced option', 0;
|
||||
RECONFIGURE WITH OVERRIDE
|
||||
|
||||
EXECUTE [HCITools].[dbo].[apssys_CLR_Triapharm_Database_Tools]
|
||||
GO
|
||||
@@ -1,239 +0,0 @@
|
||||
USE [Arizona];
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'apscounter')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('apscounter') is not null
|
||||
BEGIN
|
||||
ALTER USER apscounter WITH LOGIN=apscounter
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'arizonacash')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('arizonacash') is not null
|
||||
BEGIN
|
||||
ALTER USER arizonacash WITH LOGIN=arizonacash
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'bmcarizona')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('bmcarizona') is not null
|
||||
BEGIN
|
||||
ALTER USER bmcarizona WITH LOGIN=bmcarizona
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'datamonitoring')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('datamonitoring') is not null
|
||||
BEGIN
|
||||
ALTER USER datamonitoring WITH LOGIN=datamonitoring
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'extraction')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('extraction') is not null
|
||||
BEGIN
|
||||
ALTER USER extraction WITH LOGIN=extraction
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'gcstock')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('gcstock') is not null
|
||||
BEGIN
|
||||
ALTER USER gcstock WITH LOGIN=gcstock
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
USE [ArizonaCUST];
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'extraction')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('extraction') is not null
|
||||
BEGIN
|
||||
ALTER USER extraction WITH LOGIN=extraction
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
USE [ArizonaLD];
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'extraction')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('extraction') is not null
|
||||
BEGIN
|
||||
ALTER USER extraction WITH LOGIN=extraction
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'datamonitoring')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('datamonitoring') is not null
|
||||
BEGIN
|
||||
ALTER USER datamonitoring WITH LOGIN=datamonitoring
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'sqlMonPerfUsr')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('sqlMonPerfUsr') is not null
|
||||
BEGIN
|
||||
ALTER USER sqlMonPerfUsr WITH LOGIN=sqlMonPerfUsr
|
||||
END
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'dba_monitoring')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('dba_monitoring') is not null
|
||||
BEGIN
|
||||
ALTER USER dba_monitoring WITH LOGIN=dba_monitoring
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
USE [ActivePos_server]
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'ActiveConfig')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('ActiveConfig') is not null
|
||||
BEGIN
|
||||
ALTER USER ActiveConfig WITH LOGIN=ActiveConfig
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
USE [ActivePos_write]
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'ActiveConfig')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('ActiveConfig') is not null
|
||||
BEGIN
|
||||
ALTER USER ActiveConfig WITH LOGIN=ActiveConfig
|
||||
END
|
||||
END
|
||||
|
||||
USE [ActiveSystemClient]
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'ActiveConfig')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('ActiveConfig') is not null
|
||||
BEGIN
|
||||
ALTER USER ActiveConfig WITH LOGIN=ActiveConfig
|
||||
END
|
||||
END
|
||||
|
||||
USE [ActiveSystemServer]
|
||||
GO
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'ActiveConfig')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('ActiveConfig') is not null
|
||||
BEGIN
|
||||
ALTER USER ActiveConfig WITH LOGIN=ActiveConfig
|
||||
END
|
||||
END
|
||||
|
||||
USE [MSDB]
|
||||
GO
|
||||
|
||||
IF NOT EXISTS
|
||||
(SELECT name
|
||||
FROM sys.sysusers
|
||||
WHERE name = 'datamonitoring')
|
||||
BEGIN
|
||||
CREATE USER [datamonitoring] FOR LOGIN [datamonitoring]
|
||||
END
|
||||
|
||||
IF EXISTS
|
||||
(SELECT name
|
||||
FROM master.sys.server_principals
|
||||
WHERE name = 'datamonitoring')
|
||||
BEGIN
|
||||
|
||||
IF database_principal_id('datamonitoring') is not null
|
||||
BEGIN
|
||||
ALTER USER [datamonitoring] WITH LOGIN=[datamonitoring]
|
||||
ALTER USER [datamonitoring] WITH DEFAULT_SCHEMA=[dbo]
|
||||
END
|
||||
END
|
||||
|
||||
GRANT EXECUTE ON [dbo].[agent_datetime] TO [datamonitoring]
|
||||
GRANT SELECT ON [dbo].[sysjobactivity] TO [datamonitoring]
|
||||
GRANT SELECT ON [dbo].[sysjobhistory] TO [datamonitoring]
|
||||
GRANT SELECT ON [dbo].[sysjobs] TO [datamonitoring]
|
||||
GRANT SELECT ON [dbo].[sysjobschedules] TO [datamonitoring]
|
||||
GRANT SELECT ON [dbo].[sysschedules] TO [datamonitoring]
|
||||
@@ -1,61 +0,0 @@
|
||||
declare @cmd varchar(8000),
|
||||
@name varchar (255)
|
||||
|
||||
USE master
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
declare c_databases cursor local forward_only static for
|
||||
SELECT name
|
||||
FROM sys.databases
|
||||
WHERE name not in ('master','msdb','tempDB','model','SSISDB')
|
||||
AND [is_read_only] = 0
|
||||
AND [state_desc] = 'ONLINE'
|
||||
ORDER BY name
|
||||
;
|
||||
open c_databases
|
||||
;
|
||||
FETCH NEXT FROM c_databases
|
||||
into @name
|
||||
;
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
SET @cmd = 'declare @name varchar(50)
|
||||
|
||||
declare c_users cursor local forward_only static for
|
||||
SELECT dp.name
|
||||
FROM '+@name+'.sys.database_principals AS dp
|
||||
LEFT JOIN '+@name+'.sys.server_principals AS sp
|
||||
ON dp.SID = sp.SID
|
||||
WHERE sp.SID IS NULL
|
||||
AND dp.type_desc = ''SQL_USER''
|
||||
AND dp.principal_id > 4;
|
||||
|
||||
open c_users
|
||||
|
||||
FETCH NEXT FROM c_users
|
||||
into @name
|
||||
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
|
||||
EXEC (''USE ['+@name+']; DROP USER ''+@name+'''')
|
||||
|
||||
FETCH NEXT FROM c_users
|
||||
into @name
|
||||
|
||||
end
|
||||
close c_users
|
||||
deallocate c_users
|
||||
' /* #fla01 */
|
||||
|
||||
exec (@cmd)
|
||||
|
||||
FETCH NEXT FROM c_databases
|
||||
into @name
|
||||
;
|
||||
end
|
||||
;
|
||||
close c_databases
|
||||
;
|
||||
deallocate c_databases
|
||||
@@ -1,46 +0,0 @@
|
||||
IF EXISTS ( SELECT 1
|
||||
FROM [Arizona].[dbo].[System_site] SS
|
||||
JOIN [Arizona].[dbo].[System_site_transfer] SST
|
||||
ON SST.SST_dest_system_site = SS.System_site_ID
|
||||
WHERE SS.SS_server_name = '$fqdn'
|
||||
AND SST.SST_bmc_task = 109)
|
||||
BEGIN
|
||||
UPDATE [Arizona].[dbo].[System_site_transfer]
|
||||
SET SST_connection_info = '<ConnectionInfos><Ftp username="centralinfra\svc-APH-trans" pwd="$ftppass"/></ConnectionInfos>'
|
||||
FROM [Arizona].[dbo].[System_site] SS
|
||||
JOIN [Arizona].[dbo].[System_site_transfer] SST
|
||||
ON SST.SST_dest_system_site = SS.System_site_ID
|
||||
WHERE SS.SS_server_name = '$fqdn';
|
||||
END;
|
||||
ELSE
|
||||
BEGIN
|
||||
IF EXISTS ( SELECT 1
|
||||
FROM Arizona.dbo.System_site
|
||||
WHERE SS_server_name = '$fqdn')
|
||||
BEGIN
|
||||
UPDATE Arizona.dbo.Bmc_ID_counter
|
||||
SET BMCID_last_number = ( SELECT BMCID_last_number + 1
|
||||
FROM Arizona.dbo.Bmc_ID_counter
|
||||
WHERE BMCID_key = 'system_site_transfer')
|
||||
FROM Arizona.dbo.Bmc_ID_counter
|
||||
WHERE BMCID_key = 'system_site_transfer';
|
||||
INSERT INTO [Arizona].[dbo].[System_site_transfer] ([System_site_transfer_ID],
|
||||
[SST_source_system_site],
|
||||
[SST_dest_system_site],
|
||||
[SST_bmc_task],
|
||||
[SST_transfer_type],
|
||||
[SST_VGUID],
|
||||
[SST_master_ID],
|
||||
[SST_connection_info],
|
||||
[SST_start_date],
|
||||
[SST_end_date])
|
||||
VALUES (( SELECT BMCID_last_number
|
||||
FROM Arizona.dbo.Bmc_ID_counter
|
||||
WHERE BMCID_key = 'system_site_transfer'), 102, ( SELECT System_site_ID
|
||||
FROM Arizona.dbo.System_site
|
||||
WHERE SS_server_name = '$fqdn'), 109, 1,
|
||||
DEFAULT, NULL,
|
||||
'<ConnectionInfos><Ftp username="centralinfra\svc-APH-trans" pwd="$ftppass"/></ConnectionInfos>',
|
||||
(SELECT CONVERT(CHAR(10), GETDATE(), 126)), NULL);
|
||||
END;
|
||||
END;
|
||||
@@ -1,552 +0,0 @@
|
||||
<#
|
||||
TPDT-268
|
||||
|
||||
Finalize the database setup after staging a new pharmacy
|
||||
This script re-implements the autoConfigPharmacy of the DBA in an automated way with interactions with a keyvault to fetch secrets and certificate
|
||||
|
||||
TSC 08.02.2024 Creation
|
||||
#>
|
||||
# param (
|
||||
# #[Parameter(Position=0,mandatory=$true)]
|
||||
# [string] $SqlInstance ="SSUNB008VM01\APSSQL"
|
||||
# )
|
||||
|
||||
#if ran from TSC computer, execute on sun008, otherwise execute locally
|
||||
if($env:COMPUTERNAME -ne "CGAL41556"){
|
||||
$SqlInstance = "$($env:COMPUTERNAME)\APSSQL"
|
||||
if (test-path "C:\Program Files\PackageManagement\Az.Accounts") {Import-Module "C:\Program Files\PackageManagement\Az.Accounts"}else{exit 42101}
|
||||
if (test-path "C:\Program Files\PackageManagement\Az.keyvault") {Import-Module "C:\Program Files\PackageManagement\Az.keyvault"}else{exit 42101}
|
||||
if (test-path "C:\Program Files\PackageManagement\Az.compute") {Import-Module "C:\Program Files\PackageManagement\Az.compute"}else{exit 42101}
|
||||
}
|
||||
else
|
||||
{
|
||||
$SqlInstance ="SSUNB008VM01\APSSQL"
|
||||
Import-Module Az.Accounts
|
||||
Import-Module Az.keyvault
|
||||
Import-Module Az.compute
|
||||
}
|
||||
|
||||
|
||||
#Import-Module SqlServer
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Executes a T-SQL script on a SQL Server database without trying to parse variables.
|
||||
|
||||
.DESCRIPTION
|
||||
This function executes a T-SQL script on a specified SQL Server database.
|
||||
The script is split into batches based on the GO statements and each batch is executed separately.
|
||||
SQLCMD type variables like $(ESCAPE_SQUOTE(WMI(DatabaseName))) are NOT parsed and do not cause errors if they are present in dynamic sql
|
||||
|
||||
.PARAMETER Server
|
||||
The name of the SQL Server instance to connect to.
|
||||
|
||||
.PARAMETER Database
|
||||
The name of the database on the SQL Server instance to execute the script against.
|
||||
|
||||
.PARAMETER ScriptPath
|
||||
The file path of the T-SQL script to execute.
|
||||
|
||||
.EXAMPLE
|
||||
Invoke-SqlScript -Server "YourServer" -Database "YourDatabase" -ScriptPath "YourScript.sql"
|
||||
Executes the T-SQL script "YourScript.sql" on the "YourDatabase" database of the "YourServer" SQL Server instance.
|
||||
|
||||
.NOTES
|
||||
Author: Thierry Schork
|
||||
Date: 2024-02-13
|
||||
#>
|
||||
function Invoke-SqlScript {
|
||||
|
||||
param(
|
||||
[string]$Server,
|
||||
[string]$Database,
|
||||
[string]$ScriptPath,
|
||||
[string]$script
|
||||
)
|
||||
|
||||
# Load the assembly containing the SqlCommand class
|
||||
Add-Type -AssemblyName System.Data
|
||||
|
||||
# Create a connection string
|
||||
$connectionString = "Server=$Server;Database=$Database;Integrated Security=True"
|
||||
|
||||
# Create a SqlConnection object
|
||||
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
|
||||
|
||||
# Open the connection
|
||||
$connection.Open()
|
||||
|
||||
# Read the content of the script file
|
||||
if('' -ne $ScriptPath){
|
||||
$scriptContent = Get-Content -Path $ScriptPath -Raw
|
||||
}
|
||||
|
||||
if('' -ne $script){
|
||||
$scriptContent = $script
|
||||
}
|
||||
|
||||
# Split the script into batches based on the GO statements
|
||||
$scriptBatches = $scriptContent -split [regex]'(?smi)^[\s]*GO[\s]*$' | Where-Object { $_.Trim() -ne '' }
|
||||
|
||||
# Create a SqlCommand object
|
||||
$command = $connection.CreateCommand()
|
||||
|
||||
foreach ($batch in $scriptBatches) {
|
||||
#$batch = $batch.Trim()
|
||||
#$batch = $batch -replace '(?m)^GO\s*', ''
|
||||
|
||||
if ($batch.ToLower() -ne "go"){
|
||||
try {
|
||||
# Set the command text for the batch
|
||||
$command.CommandText = $batch
|
||||
|
||||
# Execute the command
|
||||
$null = $command.ExecuteNonQuery()
|
||||
}
|
||||
catch {
|
||||
Write-Error "Error in the file $fileShort"
|
||||
Write-Error $_.Exception.Message
|
||||
Write-Error "-------------------"
|
||||
Write-Error $batch
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
# Close the connection
|
||||
$connection.Close()
|
||||
}
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$DebugPreference = 'SilentlyContinue'
|
||||
|
||||
#overrides
|
||||
#$ErrorActionPreference = "continue"
|
||||
#$DebugPreference = 'Continue'
|
||||
|
||||
$rootFS = Get-Location
|
||||
|
||||
#do we want to execute jobs from TiaPharm. No, because the package
|
||||
#should have deployed them just before this script
|
||||
$exec_triapharm = $false
|
||||
|
||||
# Replace these values with your Azure AD service principal details
|
||||
$clientId = "65d289fd-4bea-464f-a1cd-417f74d26888" #pcpl-ApoLsPoc-setupDataEncryptionwithKeyVault
|
||||
$clientSecret = "dPQ8Q~N5btnUb7cj~H4YZaDDQo7kJNZlpxbRua2a"
|
||||
$tenantId = "7844775a-a9cc-4c33-a5ae-36dcf6660f45" #galenica
|
||||
|
||||
# Replace these values with your Azure Key Vault details
|
||||
#$resourceGroupName = "rg-ApoLsPoc-Keyvault"
|
||||
$keyVaultName = "kv-ApoLsPoc-Tde"
|
||||
|
||||
#secret to fetch from the key vault
|
||||
$secretFtpPassword ="centralinfra---svc-APH-trans"
|
||||
$secretMasterKey ="MasterKey"
|
||||
$secretTriaPharmSQLCert = "TriaPharmSQLCert"
|
||||
$secretSqlAzureMigration = "sqlAzureMigration"
|
||||
|
||||
# Convert the client secret to a secure string
|
||||
$securePassword = ConvertTo-SecureString -String $clientSecret -AsPlainText -Force
|
||||
|
||||
# Create a PSCredential object
|
||||
$psCred = New-Object System.Management.Automation.PSCredential -ArgumentList $clientId, $securePassword
|
||||
|
||||
# Authenticate using the service principal
|
||||
$null = Connect-AzAccount -ServicePrincipal -Credential $psCred -TenantId $tenantId
|
||||
|
||||
# Get the login for sqlAzureMigration from Azure Key Vault
|
||||
$secret_central = Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretSqlAzureMigration
|
||||
$login_central = "sqlAzureMigration"
|
||||
$psCredCentral = New-Object System.Management.Automation.PSCredential($login_central, $secret_central.SecretValue)
|
||||
|
||||
|
||||
# Display the secret value
|
||||
#Write-Host "Secret Value: $($secret.SecretValue | ConvertFrom-SecureString -AsPlainText)"
|
||||
|
||||
##region derive alias from hostname
|
||||
$hostname = $SqlInstance
|
||||
$position = $hostname.IndexOf("\")
|
||||
if ($position -gt 0){
|
||||
#remove instance name
|
||||
$hostname = $hostname.SubString(0,$position)
|
||||
}
|
||||
|
||||
$ou = $null
|
||||
$customer = $null
|
||||
$clientpath = $null
|
||||
$format = 'GCM'
|
||||
if ($hostname.IndexOf("NB") -gt 0){
|
||||
#old hostname, like SSUNB661VM01
|
||||
$ou = $hostname.Substring(5,3)
|
||||
if($hostname -like "SSUNB*"){
|
||||
$customer="SUN"
|
||||
}
|
||||
if($hostname -like "SAMNB*"){
|
||||
$customer="AMA"
|
||||
}
|
||||
if($hostname -like "SCVNB*"){
|
||||
$customer="CVI"
|
||||
}
|
||||
}
|
||||
else{
|
||||
#new$customer, like SWAMA701VM23
|
||||
$ou = $hostname.Substring(5,3)
|
||||
if($hostname -like "SWSUN*"){
|
||||
$customer="SUN"
|
||||
}
|
||||
if($hostname -like "SWAMA*"){
|
||||
$customer="AMA"
|
||||
}
|
||||
if($hostname -like "SWCVI*"){
|
||||
$customer="CVI"
|
||||
}
|
||||
}
|
||||
|
||||
#used to map jobs scripts subfolders when executing scripts with customer abbreviation
|
||||
switch ($Customer){
|
||||
'AMA'{ $clientpath = 'AMAVITA' }
|
||||
'SUN'{ $clientpath = 'SUNSTORE' }
|
||||
'CVI'{ $clientpath = 'CVI' }
|
||||
}
|
||||
|
||||
if($null -eq $format){
|
||||
Write-Error "Format could not be derived from hostname $hostname"
|
||||
}
|
||||
if($null -eq $customer){
|
||||
Write-Error "Customer could not be derived from hostname $hostname"
|
||||
}
|
||||
if ($null -eq $ou){
|
||||
Write-Error "OU could not be derived from hostname $hostname"
|
||||
}
|
||||
|
||||
$alias = "$($customer)$($ou)APS"
|
||||
|
||||
#region Server DEV/TEST/PROD
|
||||
$PharmacyShortName = $customer + $ou
|
||||
$PharmaciesDEV = "SUN007","SUN008","CVI506","AMA704"
|
||||
$PharmaciesVALI = "SUN004","SUN006","CVI503","CVI504","AMA705","AMA707","AMA888","CVI888","SUN888"
|
||||
$PharmaciesACCE = "SUN001","SUN002","CVI501","CVI502","AMA701","AMA702","AMA703","CVI505","SUN003"
|
||||
$PharmaciesTRAINING = "SUN011","CVI507","CVI508","AMA988","AMA989"
|
||||
|
||||
if ($PharmaciesDEV -match $PharmacyShortName)
|
||||
{
|
||||
$ContextType = 'DEVE'
|
||||
$CentraleServer = "SWINTDB01"
|
||||
}
|
||||
elseif ($PharmaciesVALI -match $PharmacyShortName)
|
||||
{
|
||||
$ContextType = 'VALI'
|
||||
$CentraleServer = "SWTSTDB01"
|
||||
}
|
||||
elseif ($PharmaciesACCE -match $PharmacyShortName)
|
||||
{
|
||||
$ContextType = 'ACCE'
|
||||
$CentraleServer = "SWPRDDB01"
|
||||
}
|
||||
elseif ($PharmaciesTRAINING -match $PharmacyShortName)
|
||||
{
|
||||
$ContextType = 'FORM'
|
||||
$CentraleServer = "SWPRDDB01"
|
||||
}
|
||||
else
|
||||
{
|
||||
$ContextType = 'PROD'
|
||||
$CentraleServer = "SWPRDDB01"
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#define a db credential, for testing without hte service principal
|
||||
#$DBpassword = Get-AzKeyVaultSecret -VaultName $keyVaultName -Name "ua208700"
|
||||
#$dbCred = New-Object System.Management.Automation.PSCredential -ArgumentList 'ua208700@centralinfra.net', $DBpassword.SecretValue
|
||||
#$dbCred = Get-SqlCredential -Name "centralinfra\ua208700" -Identity "centralinfra\ua208700" -Secret $DBpassword.SecretValue
|
||||
|
||||
##Check if instance is reachable
|
||||
$instanceReachable=$false
|
||||
try {
|
||||
$null = Invoke-Sqlcmd -ServerInstance $SqlInstance -Query "select 1" -QueryTimeout 5 -Database master
|
||||
$instanceReachable=$true
|
||||
Write-Debug "Connection to the SQL instance ok"
|
||||
}
|
||||
catch {
|
||||
Write-Error "SQL instance '$($SqlInstance)' is not reachable or the principal doesn't have permissions to connect"
|
||||
}
|
||||
|
||||
##region check out triaOne release
|
||||
$checkoutGit = $false
|
||||
if($true -eq $checkoutGit){
|
||||
$FolderPath = "triaOne_jobs"
|
||||
if (Test-Path -Path $FolderPath) {
|
||||
# If the folder exists, remove its contents
|
||||
Get-ChildItem -Path $FolderPath | Remove-Item -Force -Recurse
|
||||
Write-Host "Cleaned existing folder: $FolderPath"
|
||||
} else {
|
||||
# If the folder doesn't exist, create it
|
||||
New-Item -ItemType Directory -Path $FolderPath | Out-Null
|
||||
Write-Host "Created new folder: $FolderPath"
|
||||
}
|
||||
|
||||
# Define the URL of the Git repository and the subfolder you want to check out
|
||||
$repositoryUrl = "http://shcnbtfs01.hcisolutions.ch:8080/tfs/TriaPharmCollection/_git/TriaOne"
|
||||
$subfolderPath = "SQL\Jobs"
|
||||
$localRepo = "triaOne_repo"
|
||||
|
||||
# Clone the Git repository without fetching files on the selected branch
|
||||
git clone -n -b rel/23.6 $repositoryUrl $localRepo
|
||||
|
||||
# Move to the cloned repository directory
|
||||
Set-Location $localRepo
|
||||
git checkout HEAD $subfolderPath
|
||||
git pull
|
||||
|
||||
# Move the subfolder to the desired location
|
||||
$destination = Join-Path -Path $rootFS -ChildPath $FolderPath
|
||||
Move-Item -Path $subfolderPath -Destination $destination -Force -Recurse
|
||||
Set-Location $rootFS
|
||||
#Remove-Item $localRepo -Force
|
||||
}
|
||||
#endregion
|
||||
|
||||
#$instanceReachable = $false
|
||||
|
||||
if($true -eq $instanceReachable){
|
||||
|
||||
$dbacc = New-Object psobject
|
||||
$dbacc | Add-Member -MemberType NoteProperty -Name "context" -Value $ContextType
|
||||
$dbacc | Add-Member -MemberType NoteProperty -Name "customer" -Value $customer
|
||||
$dbacc | Add-Member -MemberType NoteProperty -Name "version" -Value -1
|
||||
$dbacc | Add-Member -MemberType NoteProperty -Name "SE_DNS" -Value $hostname
|
||||
$dbacc | Add-Member -MemberType NoteProperty -Name "aliasInstance" -Value $sqlVariables
|
||||
|
||||
##step 1: configure SQL instance max memory
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\1_Configure_InstanceMemory.sql
|
||||
Write-Output "Executed 1_Configure_InstanceMemory.sql"
|
||||
|
||||
##step 2: set db identities
|
||||
[string]$query = Get-Content -Path .\2_Set_Identity.sql
|
||||
$query = $query.Replace("`$format", $format)
|
||||
$query = $query.Replace("`$fqdn", $alias)
|
||||
$query = $query.Replace("`$customer", $customer)
|
||||
$query = $query.Replace("`$context", $dbacc.context) # ['context'])
|
||||
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -Query $query
|
||||
Write-Output "Executed 2_Set_Identity.sql"
|
||||
|
||||
##step 3: activate clr
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\3_Execute_CLR.sql
|
||||
Write-Output "Executed 3_Execute_CLR.sql"
|
||||
|
||||
##step 4: map sql users
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\6_Map_SQLUsers.sql
|
||||
Write-Output "Executed 6_Map_SQLUsers.sql"
|
||||
|
||||
##step 4: remove orphaned users
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\8_Remove_OrphanedSQLUsers.sql
|
||||
$orphans | Format-Table
|
||||
Write-Output "Executed 8_Remove_OrphanedSQLUsers.sql"
|
||||
|
||||
|
||||
##step 5: FTP password modification on central server
|
||||
$ftpPassword = Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretFtpPassword
|
||||
$query = Get-Content -Path .\9_Update_FTPLogin_Central.sql
|
||||
$query = $query.Replace("`$ftppass", $($ftpPassword.SecretValue | ConvertFrom-SecureString )) ####################################### -AsPlainText))
|
||||
$query = $query.Replace("`$fqdn", $alias)
|
||||
|
||||
#Invoke-Sqlcmd -ServerInstance gcmPrdCent -Database arizona -Query $query
|
||||
Invoke-Sqlcmd -ServerInstance $CentraleServer -Database arizona -Query $query -Credential $psCredCentral
|
||||
Write-Output "Executed 9_Update_FTPLogin_Central.sql"
|
||||
|
||||
##step 6: execute all DBA packages
|
||||
$LogFile = "C:\Temp\DBApackagesCLA.log"
|
||||
|
||||
try{
|
||||
Get-ChildItem -path .\dba_packages -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA package file $fileShort"
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
$file | out-file -FilePath $LogFile -Append -Encoding utf8
|
||||
$_ | out-file -FilePath $LogFile -Append -Encoding utf8
|
||||
}
|
||||
|
||||
##step 7: execute all DBA structure scripts
|
||||
Get-ChildItem -path .\dba_structure -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA structure file $fileShort"
|
||||
}
|
||||
|
||||
##step 8: execute all DBA stored procedures scripts
|
||||
Get-ChildItem -path .\dba_storedProcedures -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA stored procedure file $fileShort"
|
||||
}
|
||||
|
||||
##region triaOne jobs
|
||||
if($true -eq $exec_triapharm){
|
||||
##step 9: execute triaOne pharmacy jobs scripts
|
||||
Get-ChildItem -path .\cp_triaOne_jobs\pharmacy -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed triaOne pharmacy job file $fileShort"
|
||||
}
|
||||
|
||||
##step 10: execute triaOne pharmacy customer jobs scripts
|
||||
Get-ChildItem -path .\cp_triaOne_jobs\pharmacy\$clientpath -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed triaOne pharmacy customer job file $fileShort"
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
##region DBA jobs
|
||||
##step 11: execute all DBA global jobs scripts
|
||||
Get-ChildItem -path .\dba_jobs\ -Filter *.sql | Where-Object {$_.Name -NotMatch "several"} | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA global job file $fileShort"
|
||||
}
|
||||
|
||||
##step 12: execute all DBA pharmacy jobs scripts
|
||||
Get-ChildItem -path .\dba_jobs\Pharmacy -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA pharmacy job file $fileShort"
|
||||
}
|
||||
|
||||
##step 13: execute all DBA customer specific pharmacy jobs scripts
|
||||
Get-ChildItem -path .\dba_jobs\Pharmacy\$clientpath -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA pharmacy $clientpath job file $fileShort"
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
##step 14: execute all DBA alerts scripts
|
||||
Get-ChildItem -path .\dba_alerts -Filter *.sql | ForEach-Object {
|
||||
$file = $_
|
||||
$fileShort = Split-Path -Path $file -Leaf
|
||||
|
||||
Invoke-SqlScript -Server $SqlInstance -Database master -ScriptPath $file.FullName
|
||||
Write-Output "executed DBA alert file $fileShort"
|
||||
}
|
||||
|
||||
##step 15: execute schedule shuffle script
|
||||
$null = Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\10_Change_Schedules_Subscriptions.sql
|
||||
Write-Output "Executed 10_Change_Schedules_Subscriptions.sql"
|
||||
|
||||
##step 16: execute schedule shuffle script
|
||||
$null = Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\11_Run_Job_CheckReplications.sql
|
||||
Write-Output "Executed 11_Run_Job_CheckReplications.sql"
|
||||
|
||||
|
||||
##step 17: Atlas configuration
|
||||
|
||||
$masterKey = Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretMasterKey
|
||||
$triapharmSqlCert = Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretTriaPharmSQLCert
|
||||
$bckcert = 'D:\SQLDatabaseDump\Certificates\MK\'+$alias.Substring(0,6).toupper()+'_master.bak'
|
||||
|
||||
[string]$query = Get-Content -Path .\12_Broker_Config.sql
|
||||
$query = $query.Replace("`$mk", $($masterKey.SecretValue | ConvertFrom-SecureString )) # -AsPlainText))
|
||||
$query = $query.Replace("`$cert", $($triapharmSqlCert.SecretValue | ConvertFrom-SecureString )) # -AsPlainText))
|
||||
$query = $query.Replace("`$bck", $bckcert)
|
||||
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database arizona -Query $query
|
||||
Write-Output "Executed 12_Broker_Config.sql"
|
||||
|
||||
|
||||
##step 18: create ad logins
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile .\13_Create_AD_Logins.sql
|
||||
Write-Output "Executed 13_Create_AD_Logins.sql"
|
||||
|
||||
##step 19: final check on pharmacy
|
||||
#removed because does not brings any value
|
||||
#in an automated run, as this requires a human to verify and act
|
||||
|
||||
#Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -InputFile '.\Check Instance Pharmacy.sql'
|
||||
#Write-Output "Executed Check Instance Pharmacy.sql"
|
||||
|
||||
##step 20: update system_site on the central
|
||||
$fqdn = [System.Net.Dns]::GetHostByName($alias)
|
||||
|
||||
#Get pharmacy OU_id
|
||||
$query=@"
|
||||
USE [master];
|
||||
|
||||
DECLARE @ou_id INT;
|
||||
|
||||
EXECUTE [Arizona].[dbo].[sp_bmc_Bmc_Applic_Default]
|
||||
@in_job_type = 3,
|
||||
@in_param_int_1 = NULL, /* Company */
|
||||
@in_param_int_2 = NULL, /* Subsidiary */
|
||||
@in_param_varchar_1 = 'cvCurrentOrganizationalUnit',
|
||||
@out_default_value = @ou_id OUTPUT,
|
||||
@out_param_int_1 = NULL;
|
||||
|
||||
SELECT @ou_id as ou_id
|
||||
"@
|
||||
$ou_dataset = Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -Query $query
|
||||
|
||||
|
||||
#update the centrale
|
||||
$query=Get-Content -Path .\20_update_system_site_centrale.sql
|
||||
$query = $query.Replace("`$fqdn", $fqdn.HostName)
|
||||
$query = $query.Replace("`$alias", $alias)
|
||||
$query = $query.Replace("`$ou_id", $ou_dataset.ou_id)
|
||||
|
||||
Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -Query $query
|
||||
Write-Output "Executed 20_update_system_site_centrale.sql locally"
|
||||
|
||||
Invoke-Sqlcmd -ServerInstance $CentraleServer -Database master -Query $query -Credential $psCredCentral
|
||||
Write-Output "Executed 20_update_system_site_centrale.sql on the central $CentraleServer"
|
||||
|
||||
##step 21: update Point_of_sale
|
||||
|
||||
#fetch a list of mac adresses
|
||||
$macs = @{}
|
||||
$pos = 0
|
||||
Get-NetAdapter | Where-Object -Property status -eq up | Group-Object -Property MacAddress | ForEach-Object {
|
||||
$macs.Add($pos, $_.Name)
|
||||
$pos++
|
||||
}
|
||||
|
||||
if($macs.Count -gt 1){
|
||||
#we have several mac addresses, unable to define which one should be used in point_of_sale
|
||||
Write-Error "Several mac addresses are active, no clue which one to save in Point_of_sale"
|
||||
exit 42102
|
||||
}
|
||||
else{
|
||||
$query=Get-Content -Path .\21_update_point_of_sale_centrale.sql
|
||||
$query = $query.Replace("`$fqdn", $hostname)
|
||||
$query = $query.Replace("`$mac", $macs[0])
|
||||
|
||||
#Invoke-Sqlcmd -ServerInstance $SqlInstance -Database master -Query $query
|
||||
Write-Output $query
|
||||
Write-Output "Executed 21_update_point_of_sale_centrale.sql"
|
||||
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,69 +0,0 @@
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = 'Agent history clean up: distribution')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'Agent history clean up: distribution', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
/****** Object: JobCategory [REPL-History Cleanup] Script Date: 06/12/2015 08:48:31 ******/
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'REPL-History Cleanup' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'REPL-History Cleanup'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Agent history clean up: distribution',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Removes replication agent history from the distribution database.',
|
||||
@category_name=N'REPL-History Cleanup',
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/****** Object: Step [Run agent.] Script Date: 06/12/2015 08:48:31 ******/
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Run agent.',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC dbo.sp_MShistory_cleanup @history_retention = 48',
|
||||
@database_name=N'distribution',
|
||||
@flags=0
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
DECLARE @schedule_id int
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Replication agent schedule.',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=4,
|
||||
@freq_subday_interval=10,
|
||||
@freq_relative_interval=1,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20150202,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=0,
|
||||
@active_end_time=235959, @schedule_id = @schedule_id OUTPUT
|
||||
select @schedule_id
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,199 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D00110 - PerformancePointAggregationLevel1'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D00110 - PerformancePointAggregationLevel1')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D00110 - PerformancePointAggregationLevel1', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'TPH-Maintenance' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'TPH-Maintenance'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D00110 - PerformancePointAggregationLevel1',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'for replication initialization
|
||||
17.03.2022 - FLA : Change DBA mail',
|
||||
@category_name=N'TPH-Maintenance',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Aggregate',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=1,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N' exec [dbo].[AggregatePerformancePoint]',
|
||||
@database_name=N'ActiveSystemServer',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec arizona.dbo.aps_Send_Mail_with_template
|
||||
@in_param_varchar_2 = ''DBA_operator;'';',
|
||||
@database_name=N'Arizona',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D00110-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20150708,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=20000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D00110%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,196 +0,0 @@
|
||||
/*Job only deploy once */
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D00480 - ActivePos_read Snapshot')
|
||||
RETURN
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D00480 - ActivePos_read Snapshot'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'REPL-Snapshot' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'REPL-Snapshot'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D00480 - ActivePos_read Snapshot',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'No description available.',
|
||||
@category_name=N'REPL-Snapshot',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
/* build command*/
|
||||
declare @cmd varchar(max)
|
||||
, @distributor nvarchar(100)
|
||||
SET @distributor = cast(serverproperty('ServerName') as nvarchar(100))
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Snapshot Agent startup message.',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'DECLARE @agentIDAPH int
|
||||
|
||||
select @agentIDAPH = mssag.id from master.dbo.sysservers syssrv
|
||||
join MSsnapshot_agents mssag on mssag.publisher_id = syssrv.srvid
|
||||
where mssag.name = ''D00480 - ActivePos_read Snapshot''
|
||||
|
||||
exec sp_MSadd_snapshot_history @perfmon_increment = 0, @agent_id = @agentIDAPH, @runstatus = 1,
|
||||
@comments = N''Starting agent.''
|
||||
',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=@distributor,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
SET @cmd = '-Publisher [' + @distributor+'] -PublisherDB [ActivePos_read] -Distributor ['+@distributor+'] -Publication [ActivePosTran] -DistributorSecurityMode 1'
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Run agent.',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=2,
|
||||
@retry_interval=60,
|
||||
@os_run_priority=0, @subsystem=N'Snapshot',
|
||||
@command=@cmd,
|
||||
@database_name=N'distribution',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=@distributor,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=N'[Repl][aphsqlrepl][ActivePos_read]'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Detect nonlogged agent shutdown.',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'DECLARE @agentIDAPH int
|
||||
|
||||
select @agentIDAPH = mssag.id from master.dbo.sysservers syssrv
|
||||
join MSsnapshot_agents mssag on mssag.publisher_id = syssrv.srvid
|
||||
where mssag.name = ''D00480 - ActivePos_read Snapshot''
|
||||
|
||||
exec sp_MSdetect_nonlogged_shutdown @subsystem = ''Snapshot'', @agent_id = @agentIDAPH
|
||||
',
|
||||
@database_name=N'distribution',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=@distributor,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D00480 - Daily at 06h30',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=1,
|
||||
@freq_relative_interval=1,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20200113,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=63000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D00480%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,207 +0,0 @@
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'DR00460 - Mediset Calculation'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'DR00460 - Mediset Calculation')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'DR00460 - Mediset Calculation', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'TPH-Business' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'TPH-Business'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DR00460 - Mediset Calculation',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=2,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Calculation des Stocks pour les Articles Médiset (Père - Fils).
|
||||
FLA 22.10.2018 : Standardisation du job
|
||||
SPE 17.01.2020 : Modification du schedule (fin a minuit)
|
||||
FLA 17.03.2022 : Change DBA mail
|
||||
RTC 13.03.2023 : OCTPDBA-473 Update schedule from every 1 minutes to every 8 hours',
|
||||
@category_name=N'TPH-Business',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
|
||||
',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Execute aps_Stock_Transfer_3',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=1,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[aps_Mediset_Calculation]',
|
||||
@database_name=N'Arizona',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''DR00460 - Mediset Calculation'', @in_Recipients = ''DBA_operator''
|
||||
EXEC [mon].[Maj_Jobs_Status] @in_JobID = $(ESCAPE_SQUOTE(JOBID))',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''DR00460 - Mediset Calculation'', @in_Recipients = ''DBA_operator''
|
||||
EXEC [mon].[Maj_Jobs_Status] @in_JobID = $(ESCAPE_SQUOTE(JOBID))',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'DR00460-DR',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=8,
|
||||
@freq_subday_interval=8,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20090924,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=70000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'DR00460%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,91 +0,0 @@
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = 'Distribution clean up: distribution')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'Distribution clean up: distribution', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
/****** Object: JobCategory [REPL-Distribution Cleanup] Script Date: 06/10/2015 16:17:33 ******/
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'REPL-Distribution Cleanup' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'REPL-Distribution Cleanup'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Distribution clean up: distribution',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Removes replicated transactions from the distribution database.',
|
||||
@category_name=N'REPL-Distribution Cleanup',
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/****** Object: Step [Run agent.] Script Date: 06/10/2015 16:17:34 ******/
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Run agent.',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 72',
|
||||
@database_name=N'distribution',
|
||||
@flags=0
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Replication agent schedule.',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=4,
|
||||
@freq_subday_interval=10,
|
||||
@freq_relative_interval=1,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20140929,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=500,
|
||||
@active_end_time=459
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
|
||||
/* Create operator and add it to the job */
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysoperators WHERE name = N'DBA')
|
||||
BEGIN
|
||||
|
||||
EXEC msdb.dbo.sp_add_operator @name=N'DBA',
|
||||
@enabled=1,
|
||||
@weekday_pager_start_time=90000,
|
||||
@weekday_pager_end_time=180000,
|
||||
@saturday_pager_start_time=90000,
|
||||
@saturday_pager_end_time=180000,
|
||||
@sunday_pager_start_time=90000,
|
||||
@sunday_pager_end_time=180000,
|
||||
@pager_days=0,
|
||||
@email_address=N'_hci_dba@hcisolutions.ch',
|
||||
@category_name=N'[Uncategorized]'
|
||||
|
||||
EXEC msdb.dbo.sp_update_job @job_name=N'Distribution clean up: distribution',
|
||||
@notify_level_email=2,
|
||||
@notify_level_netsend=2,
|
||||
@notify_level_page=2,
|
||||
@notify_email_operator_name=N'DBA'
|
||||
END
|
||||
GO
|
||||
Binary file not shown.
@@ -1,68 +0,0 @@
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = 'Replication monitoring refresher for distribution.')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'Replication monitoring refresher for distribution.', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
/****** Object: JobCategory [REPL-Alert Response] Script Date: 06/12/2015 10:07:01 ******/
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'REPL-Alert Response' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'REPL-Alert Response'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Replication monitoring refresher for distribution.',
|
||||
@enabled=0,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Replication monitoring refresher for distribution.',
|
||||
@category_name=N'REPL-Alert Response',
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/****** Object: Step [Run agent.] Script Date: 06/12/2015 10:07:01 ******/
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Run agent.',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=2147483647,
|
||||
@retry_interval=1,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec dbo.sp_replmonitorrefreshjob ',
|
||||
@database_name=N'distribution',
|
||||
@flags=0
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
DECLARE @schedule_id int
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Replication agent schedule.',
|
||||
@enabled=1,
|
||||
@freq_type=64,
|
||||
@freq_interval=0,
|
||||
@freq_subday_type=0,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20150202,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=0,
|
||||
@active_end_time=235959, @schedule_id = @schedule_id OUTPUT
|
||||
select @schedule_id
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,285 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'_D00340 - LkdSrv - Prefac'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'_D00340 - LkdSrv - Prefac')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'_D00340 - LkdSrv - Prefac', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'TPH-Business' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'TPH-Business'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'_D00340 - LkdSrv - Prefac',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=2,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'27.10.2017 - FLA - Job standardisé
|
||||
26.03.2018 - FLA - Ajout du step aps_PH_Automatic_Billing_Launcher
|
||||
25.08.2023 - SPE - Retrait du step 4 aps_sp_olpFACT_Extraction
|
||||
28.09.2023 - FLA - ajout du step 4 aps_sp_olpFACT_Extraction',
|
||||
@category_name=N'TPH-Business',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'aps_sp_olpFACT_GAL_Automatic_Billing',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=8,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC aps_sp_olpFACT_GAL_Automatic_Billing
|
||||
1
|
||||
, NULL
|
||||
, ''HCI_Facturation''
|
||||
, ''HCI_Facturation''
|
||||
, ''HCI_Facturation''
|
||||
, ''HCI_Facturation''
|
||||
, NULL
|
||||
;',
|
||||
@database_name=N'ArizonaCUST',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'aps_PH_Automatic_Billing_Launcher',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=8,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec aps_PH_Automatic_Billing_Launcher @in_debug = NULL',
|
||||
@database_name=N'Arizona',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'aps_sp_OLPFACT_Extraction',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=8,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'
|
||||
exec aps_sp_OLPFACT_Extraction
|
||||
|
||||
@JobType = 1 ;
|
||||
|
||||
',
|
||||
@database_name=N'ArizonaCUST',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Calcul_KPI_FAKTURO',
|
||||
@step_id=5,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=8,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec aps_sp_calcul_KPI_FAKTURO
|
||||
@JobType = 1',
|
||||
@database_name=N'ArizonaCUST',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Envoi rappel TriaFIN',
|
||||
@step_id=6,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=7,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec aps_PH_Batch_Reminder_Sender',
|
||||
@database_name=N'Arizona',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=7,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=8,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''_D00340 - LkdSrv - Prefac'', @in_Recipients = ''HCI_Facturation''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=8,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''_D00340 - LkdSrv - Prefac'', @in_Recipients = ''HCI_Facturation''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE '_D00340%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,224 +0,0 @@
|
||||
/*=============================================================================
|
||||
|
||||
Explication du traitement realise par le script
|
||||
-------------------------------------------
|
||||
1. Creation de la catégorie SQL Server Agent Alerts
|
||||
2. Creation de l'opérateur DBA_operator
|
||||
3. Creation de l'alerte Severité 19 Fatal Error in Resource
|
||||
4. Creation de l'alerte Severité 20 Fatal Error in Current Process
|
||||
5. Creation de l'alerte Severité 21 Fatal Error in Database Process
|
||||
6. Creation de l'alerte Severité 22 Fatal Error Table Integrity Suspect
|
||||
7. Creation de l'alerte Severité 23 Fatal Error Database Integrity Suspect
|
||||
8. Creation de l'alerte Severité 24 Fatal Hardware Error
|
||||
9. Creation de l'alerte Severité 25 Fatal Error
|
||||
10. Création de l'alerte de l'erreur 825 Read-Retry Required
|
||||
|
||||
Creation : 06.06.2018 / FLA
|
||||
|
||||
Modifications : 17.03.2022 - FLA : Change DBA mail
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
|
||||
|
||||
USE [msdb];
|
||||
|
||||
/* Add categorie for SQL Server Agent Alerts */
|
||||
DECLARE @CategoryName sysname,
|
||||
@OperatorName sysname,
|
||||
@AlertName sysname
|
||||
|
||||
SET @CategoryName = N'SQL Server Agent Alerts';
|
||||
SET @OperatorName = N'DBA_operator'
|
||||
|
||||
IF NOT EXISTS (SELECT *
|
||||
FROM msdb.dbo.syscategories
|
||||
WHERE category_class = 2 /*2=Alert*/
|
||||
AND category_type = 3
|
||||
AND name = @CategoryName)
|
||||
BEGIN
|
||||
EXEC dbo.sp_add_category @class = N'ALERT', @type = N'NONE', @name = @CategoryName;
|
||||
END
|
||||
|
||||
/* Add operator DBA_operator for SQL Server Agent Alerts */
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysoperators WHERE name = N'DBA_operator')
|
||||
EXEC msdb.dbo.sp_delete_operator @name=N'DBA_operator'
|
||||
|
||||
EXEC msdb.dbo.sp_add_operator @name=N'DBA_operator',
|
||||
@enabled=1,
|
||||
@weekday_pager_start_time=90000,
|
||||
@weekday_pager_end_time=180000,
|
||||
@saturday_pager_start_time=90000,
|
||||
@saturday_pager_end_time=180000,
|
||||
@sunday_pager_start_time=90000,
|
||||
@sunday_pager_end_time=180000,
|
||||
@pager_days=0,
|
||||
@email_address=N'Gal_SE_DBA@galenica.com',
|
||||
@category_name=N'[Uncategorized]'
|
||||
|
||||
SET @AlertName = 'DBA - Sev 19 Error: Fatal Error in Resource'
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=19,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
|
||||
SET @AlertName = 'DBA - Sev 20 Error: Fatal Error in Current Process'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=20,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
SET @AlertName = 'DBA - Sev 21 Error: Fatal Error in Database Process'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=21,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
SET @AlertName = 'DBA - Sev 22 Error: Fatal Error Table Integrity Suspect'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=22,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
SET @AlertName = 'DBA - Sev 23 Error: Fatal Error Database Integrity Suspect'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=23,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
SET @AlertName = 'DBA - Sev 24 Error: Fatal Hardware Error'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=24,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
SET @AlertName = 'DBA - Sev 25 Error: Fatal Error'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=25,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
|
||||
|
||||
SET @AlertName = 'DBA - Error 825: Read-Retry Required'
|
||||
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name=@AlertName
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=825,
|
||||
@severity=0,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name = @CategoryName
|
||||
|
||||
IF NOT EXISTS(SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName, @operator_name=@OperatorName, @notification_method = 1;
|
||||
@@ -1,24 +0,0 @@
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
DECLARE @namespace NVARCHAR(255)
|
||||
= N'\\.\root\Microsoft\SqlServer\ServerEvents\' + COALESCE
|
||||
(
|
||||
CONVERT(NVARCHAR(32), SERVERPROPERTY('InstanceName')),
|
||||
N'MSSQLSERVER'
|
||||
);
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM msdb.dbo.sysalerts WHERE [name] = N'DBA - Audit Login')
|
||||
BEGIN
|
||||
EXEC msdb.dbo.sp_add_alert @name=N'DBA - Audit Login',
|
||||
@message_id=0,
|
||||
@severity=0,
|
||||
@enabled=1,
|
||||
@delay_between_responses=0,
|
||||
@include_event_description_in=0,
|
||||
@category_name=N'[Uncategorized]',
|
||||
@wmi_namespace= @namespace,
|
||||
@wmi_query=N'SELECT * FROM AUDIT_LOGIN_FAILED',
|
||||
@job_name=N'_92020 - Audit Login'
|
||||
END
|
||||
GO
|
||||
@@ -1,358 +0,0 @@
|
||||
|
||||
/* Update blocked process threshold */
|
||||
exec master.dbo.sp_configure 'show advanced option', 1;
|
||||
RECONFIGURE WITH OVERRIDE
|
||||
EXEC sp_configure 'blocked process threshold', 10 ---- CHANGE HERE !!
|
||||
exec master.dbo.sp_configure 'show advanced option', 0;
|
||||
RECONFIGURE WITH OVERRIDE
|
||||
GO
|
||||
|
||||
/* Add table to store alert report*/
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
IF NOT EXISTS ( SELECT *
|
||||
FROM sys.objects
|
||||
WHERE object_id = OBJECT_ID(N'[dbo].[BlockingSessionInfo]')
|
||||
AND type in ( N'U' ))
|
||||
BEGIN
|
||||
|
||||
CREATE TABLE [dbo].[BlockingSessionInfo] (
|
||||
[SessionInfoId] [int] IDENTITY(1, 1) NOT NULL,
|
||||
[AlertTime] [datetime2](0) NOT NULL,
|
||||
[BlockingDetails] [xml] NULL,
|
||||
[MailNotification] [BIT] NOT NULL
|
||||
DEFAULT 0,
|
||||
CONSTRAINT [PK_BlockingSessionInfo]
|
||||
PRIMARY KEY CLUSTERED ([SessionInfoId] ASC)) ON [PRIMARY]
|
||||
|
||||
END
|
||||
GO
|
||||
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
/* Deploy job for alert response */
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'_92050 - Response - Blocked Process Event'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'_92050 - Response - Blocked Process Event')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'_92050 - Response - Blocked Process Event', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'_92050 - Response - Blocked Process Event',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'16.11.2018 : RTC Store Blocking session report details and send notification to DBA only every 2 minutes and during opening hours.',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Insert Blocking info',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=5,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'INSERT INTO dbo.BlockingSessionInfo (
|
||||
|
||||
AlertTime,
|
||||
|
||||
BlockingDetails
|
||||
|
||||
)
|
||||
|
||||
VALUES (
|
||||
|
||||
GETDATE(),
|
||||
|
||||
''$(ESCAPE_NONE(WMI(TextData)))''
|
||||
|
||||
)',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send blocking session report if needed',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=5,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'DECLARE @reportXml XML;
|
||||
DECLARE @XmlToString NVARCHAR(MAX);
|
||||
DECLARE @path NVARCHAR(4000);
|
||||
|
||||
SET @reportXml = CONVERT(XML, N''$(ESCAPE_SQUOTE(WMI(TextData)))'', 1);
|
||||
|
||||
SET @XmlToString = CONVERT(NVARCHAR(MAX), @reportXml);
|
||||
|
||||
/* Elapse time since last mail sent in seconds*/
|
||||
DECLARE @elapseTime AS INT;
|
||||
SELECT @elapseTime = 0;
|
||||
SELECT TOP 1
|
||||
@elapseTime = DATEDIFF(SECOND, AlertTime, GETDATE())
|
||||
FROM HCITools.dbo.BlockingSessionInfo
|
||||
WHERE MailNotification = 1
|
||||
ORDER BY AlertTime DESC;
|
||||
|
||||
IF EXISTS (SELECT 1 FROM sys.databases WHERE name = ''Arizona'')
|
||||
BEGIN
|
||||
IF (Arizona.dbo.aps_fn_Is_working_hour(GETDATE(), NULL, NULL) = 1)
|
||||
AND
|
||||
(
|
||||
@elapseTime >= 120
|
||||
OR NOT EXISTS
|
||||
(
|
||||
SELECT 1
|
||||
FROM HCITools.dbo.BlockingSessionInfo
|
||||
WHERE MailNotification = 1
|
||||
)
|
||||
)
|
||||
BEGIN
|
||||
EXEC [Arizona].[dbo].[aps_Send_Mail_with_template] @in_param_varchar_2 = ''DBA_operator'',
|
||||
-- ,@in_param_varchar_3 =@XmlToString -- ''A session blocked has occured in SQL Server. Attached you will find the lock graph.''
|
||||
@in_param_message = @XmlToString,
|
||||
@in_job_type = 3;
|
||||
|
||||
UPDATE TOP (1)
|
||||
HCITools.dbo.BlockingSessionInfo
|
||||
SET MailNotification = 1
|
||||
WHERE SessionInfoId IN
|
||||
(
|
||||
SELECT TOP 1
|
||||
SessionInfoId
|
||||
FROM HCITools.dbo.BlockingSessionInfo
|
||||
ORDER BY AlertTime DESC
|
||||
);
|
||||
END;
|
||||
END;
|
||||
;
|
||||
|
||||
',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=5,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''_92050 - Response - Blocked Process Event'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE '_92050%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
|
||||
/* Add categorie for SQL Server Agent Alerts */
|
||||
DECLARE @CategoryName sysname,
|
||||
@AlertName sysname
|
||||
|
||||
SET @CategoryName = N'SQL Server Agent Alerts';
|
||||
|
||||
IF NOT EXISTS (SELECT *
|
||||
FROM msdb.dbo.syscategories
|
||||
WHERE category_class = 2 /*2=Alert*/
|
||||
AND category_type = 3
|
||||
AND name = @CategoryName)
|
||||
BEGIN
|
||||
PRINT 'Add Category SQL Server Agent Alerts'
|
||||
EXEC dbo.sp_add_category @class = N'ALERT', @type = N'NONE', @name = @CategoryName;
|
||||
END
|
||||
|
||||
/****** Alert [DBA - WMI:Respond to Blocking session] ******/
|
||||
SET @AlertName = 'DBA - WMI:Respond to Blocking session'
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_delete_alert @name= @AlertName
|
||||
GO
|
||||
|
||||
DECLARE @CategoryName sysname,
|
||||
@AlertName sysname
|
||||
|
||||
SET @CategoryName = N'SQL Server Agent Alerts';
|
||||
SET @AlertName = 'DBA - WMI:Respond to Blocking session'
|
||||
DECLARE @namespace NVARCHAR(200);
|
||||
IF (SERVERPROPERTY('InstanceName') IS NOT NULL)
|
||||
BEGIN
|
||||
SELECT @namespace = N'\\.\root\Microsoft\SqlServer\ServerEvents\'
|
||||
+ CONVERT(NVARCHAR(128), SERVERPROPERTY('InstanceName'));
|
||||
END;
|
||||
ELSE
|
||||
BEGIN
|
||||
DECLARE @InstanceName SYSNAME
|
||||
SET @InstanceName = CONVERT(VARCHAR(128),ISNULL(SERVERPROPERTY ('InstanceName'),'MSSQLSERVER'))
|
||||
|
||||
SELECT @namespace = N'\\.\root\Microsoft\SqlServer\ServerEvents\' + @InstanceName;
|
||||
END;
|
||||
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id=0,
|
||||
@severity=0,
|
||||
@enabled=1,
|
||||
@delay_between_responses=10,
|
||||
@include_event_description_in=5,
|
||||
@category_name=@CategoryName,
|
||||
@wmi_namespace=@namespace,
|
||||
@wmi_query=N'SELECT * FROM BLOCKED_PROCESS_REPORT',
|
||||
@job_name=N'_92050 - Response - Blocked Process Event'
|
||||
GO
|
||||
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
-- delete operator
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysoperators WHERE name = N'DBA operator')
|
||||
EXEC msdb.dbo.sp_delete_operator @name=N'DBA operator'
|
||||
GO
|
||||
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
-- Create operator
|
||||
EXEC msdb.dbo.sp_add_operator @name=N'DBA operator',
|
||||
@enabled=1,
|
||||
@weekday_pager_start_time=90000,
|
||||
@weekday_pager_end_time=180000,
|
||||
@saturday_pager_start_time=90000,
|
||||
@saturday_pager_end_time=180000,
|
||||
@sunday_pager_start_time=90000,
|
||||
@sunday_pager_end_time=180000,
|
||||
@pager_days=0,
|
||||
@email_address=N'Gal_SE_DBA@galenica.com',
|
||||
@category_name=N'[Uncategorized]'
|
||||
GO
|
||||
|
||||
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
-- delete Alerte
|
||||
IF EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = N'DBA - Broker - Too many messages in queue')
|
||||
EXEC msdb.dbo.sp_delete_alert @name=N'DBA - Broker - Too many messages in queue'
|
||||
GO
|
||||
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
-- create alert
|
||||
EXEC msdb.dbo.sp_add_alert @name=N'DBA - Broker - Too many messages in queue',
|
||||
@message_id=0,
|
||||
@severity=0,
|
||||
@enabled=1,
|
||||
@delay_between_responses=900,
|
||||
@include_event_description_in=1,
|
||||
@category_name=N'[Uncategorized]',
|
||||
@performance_condition=N'MSSQL$APSSQL:Broker Statistics|Enqueued Messages Total||>|50',
|
||||
@job_id=N'00000000-0000-0000-0000-000000000000'
|
||||
GO
|
||||
@@ -1,437 +0,0 @@
|
||||
USE [msdb];
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM master.cfg.InstanceContext WHERE Business IN ('TPPHAR','TPCENT'))
|
||||
BEGIN
|
||||
|
||||
IF EXISTS (SELECT 1 FROM sys.databases WHERE name = 'distribution')
|
||||
BEGIN
|
||||
|
||||
DECLARE @OperatorName sysname,
|
||||
@AlertName sysname;
|
||||
|
||||
SET @OperatorName = N'DBA_operator';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysoperators
|
||||
WHERE name = @OperatorName)
|
||||
EXEC msdb.dbo.sp_add_operator @name = @OperatorName,
|
||||
@enabled = 1,
|
||||
@weekday_pager_start_time = 90000,
|
||||
@weekday_pager_end_time = 180000,
|
||||
@saturday_pager_start_time = 90000,
|
||||
@saturday_pager_end_time = 180000,
|
||||
@sunday_pager_start_time = 90000,
|
||||
@sunday_pager_end_time = 180000,
|
||||
@pager_days = 0,
|
||||
@email_address = N'Gal_SE_DBA@galenica.com',
|
||||
@category_name = N'[Uncategorized]';
|
||||
|
||||
SET @AlertName = 'Replication Warning: Transactional replication latency (Threshold: latency)';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14161,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication Warning: Subscription expiration (Threshold: expiration)';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14160,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication Warning: Slow merge over LAN connection (Threshold: mergefastrunspeed)';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14164,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication Warning: Slow merge over dialup connection (Threshold: mergeslowrunspeed)';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14165,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication Warning: Long merge over LAN connection (Threshold: mergefastrunduration)';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14162,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication Warning: Long merge over dialup connection (Threshold: mergeslowrunduration)';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14163,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: agent custom shutdown';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 20578,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: agent failure';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14151,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: agent retry';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14152,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: agent success';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14150,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: expired subscription dropped';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 14157,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: Subscriber has failed data validation';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 20574,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: Subscriber has passed data validation';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 20575,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
|
||||
SET @AlertName = 'Replication: Subscription reinitialized after validation failure';
|
||||
|
||||
IF EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts
|
||||
WHERE ( name = @AlertName
|
||||
AND enabled = 0)
|
||||
OR ( name = @AlertName
|
||||
AND has_notification = 0))
|
||||
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
||||
@message_id = 20572,
|
||||
@severity = 0,
|
||||
@enabled = 1,
|
||||
@delay_between_responses = 3600,
|
||||
@include_event_description_in = 5,
|
||||
@category_name = N'Replication',
|
||||
@job_id = N'00000000-0000-0000-0000-000000000000';
|
||||
|
||||
IF NOT EXISTS ( SELECT name
|
||||
FROM msdb.dbo.sysalerts AS sa
|
||||
INNER JOIN msdb.dbo.sysnotifications AS sn
|
||||
ON sa.id = sn.alert_id
|
||||
WHERE sa.name = @AlertName)
|
||||
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
||||
@operator_name = @OperatorName,
|
||||
@notification_method = 1;
|
||||
END;
|
||||
END;
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,200 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D93160 - Purge All Stats SP'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D93160 - Purge All Stats SP')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D93160 - Purge All Stats SP', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Maintenance' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Maintenance'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D93160 - Purge All Stats SP',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Cleaning SP statistics data older than 12 months.
|
||||
23.09.2020 - FLA - Created
|
||||
17.03.2022 - FLA : Change DBA mail',
|
||||
@category_name=N'DBA-Maintenance',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Delete SP statistics older than 12 months',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[mon_Purge_All_Stats_SP]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''D93160 - Purge All Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''D93160 - Purge All Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D93160-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20161129,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=233000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D93160%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,174 +0,0 @@
|
||||
/*=============================================================================
|
||||
|
||||
Agrégation des statistiques de procédures stockées
|
||||
|
||||
-----------------------------------------------
|
||||
Ce script créer un job afin d'agréger les statistiques de procédures stockées dans la table Aggregate_Stats_SP
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
|
||||
|
||||
Création : 23.09.2020 / FLA
|
||||
|
||||
Modifications : 17.03.2022 - FLA : Change DBA mail
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'_D92270 - Aggregate Stats SP'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'_D92270 - Aggregate Stats SP')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'_D92270 - Aggregate Stats SP', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'_D92270 - Aggregate Stats SP',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Aggregate Stats SP in table Aggregate_Stats_SP
|
||||
|
||||
23.09.2020 - FLA - Created',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Aggregate Stats SP',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=1,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec [dbo].[mon_Aggregate_Stats_SP]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''_D92270 - Aggregate Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''_D92270 - Aggregate Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
@@ -1,198 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D91040 - Backup of simple databases after MSI update'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D91040 - Backup of simple databases after MSI update')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D91040 - Backup of simple databases after MSI update', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA Database Maintenance' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA Database Maintenance'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D91040 - Backup of simple databases after MSI update',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'09-01.2023 RTC: OCTPDBA-454 Backup TriaPharm database having SIMPLE recovery mode after MSI update',
|
||||
@category_name=N'DBA Database Maintenance',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Backup databases',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec hcitools.dbo.[Backup_Simple_Databases]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''D91040 - Backup of simple databases after MSI update'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D91040-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20230109,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=60000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D91040%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
@@ -1,243 +0,0 @@
|
||||
/*=============================================================================
|
||||
|
||||
Collecte des statistiques d'index
|
||||
|
||||
-----------------------------------------------
|
||||
Ce script créer un job appelant la procédure stockée [mon_Collect_Stats_Index]
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Ce job doit être créé après avoir créé la procédure stockée [mon_Collect_Stats_Index]
|
||||
|
||||
Création : 14.07.2015 / FLA
|
||||
|
||||
Modifications : 22.07.2016 / FLA standardize job name and schedule
|
||||
09.09.2016 / FLA : Ajout de Get_Job_Error_Info dans empty step et Send Mail KO
|
||||
04.10.2017 / FLA : Ajout de la gestion des environnements
|
||||
16.11.2020 / SPE - TFS62199 - Collect Stats SP and Index performances
|
||||
17.03.2022 / FLA : Change DBA mail
|
||||
=============================================================================*/
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D92080 - Collect Stats Index'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D92080 - Collect Stats Index')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D92080 - Collect Stats Index', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D92080 - Collect Stats Index',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Collect Stats Index from DMV sys.dm_db_index_usage_stats
|
||||
|
||||
14.07.2015 - FLA - Created
|
||||
16.11.2020 - SPE - Modify schedules and add random time',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Wait for a random delay of 0..15 minutes',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[aps_Wait_Random_Time] @in_Minutes = 15
|
||||
',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Collect Stats Index',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=5,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=1,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec [dbo].[mon_Collect_Stats_Index]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=5,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''D92080 - Collect Stats Index'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=5,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''D92080 - Collect Stats Index'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D92080-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20160722,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=233000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D92080%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
@@ -1,240 +0,0 @@
|
||||
/*=============================================================================
|
||||
|
||||
Collecte des statistiques de procédures stockées
|
||||
|
||||
-----------------------------------------------
|
||||
Ce script créer un job appelant la procédure stockée [mon_Collect_Stats_SP]
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Ce job doit être créé après avoir créé la procédure stockée [mon_Collect_Stats_SP]
|
||||
|
||||
Création : 23.09.2020 / FLA
|
||||
|
||||
Modifications : 16.11.2020 / SPE - TFS62199 - Collect Stats SP and Index performances
|
||||
17.03.2022 / FLA : Change DBA mail
|
||||
=============================================================================*/
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D92250 - Collect Stats SP'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D92250 - Collect Stats SP')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D92250 - Collect Stats SP', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D92250 - Collect Stats SP',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Collect Stats Index from DMV sys.dm_exec_procedure_stats
|
||||
|
||||
23.09.2020 - FLA - Created
|
||||
16.11.2020 - SPE - Modify schedules and add random time',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Wait for a random delay of 0..15 minutes',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[aps_Wait_Random_Time] @in_Minutes = 15
|
||||
',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Collect Stats SP',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=5,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=1,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec [dbo].[mon_Collect_Stats_SP]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=5,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''D92250 - Collect Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=5,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''D92250 - Collect Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D92250-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20160722,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=230000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D92250%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
@@ -1,261 +0,0 @@
|
||||
/*=============================================================================
|
||||
|
||||
Transfert des statistiques de procédure stockées
|
||||
|
||||
-----------------------------------------------
|
||||
Ce script créer un job appelant la procédure stockée [mon_Transfert_Stats_SP] puis [mon_Purge_Stats_SP]
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Ce job doit être créé après avoir créé la procédure stockée [mon_Transfert_Stats_SP] et [mon_Purge_Stats_SP]
|
||||
|
||||
Création : 23.09.2020 / FLA
|
||||
|
||||
Modifications : 16.11.2020 / SPE - TFS62199 - Collect Stats SP and Index performances
|
||||
17.03.2022 / FLA : Change DBA mail
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D92260 - Transfert Stats SP'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D92260 - Transfert Stats SP')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D92260 - Transfert Stats SP', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D92260 - Transfert Stats SP',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Transfert les stats de SP sur la centrale
|
||||
|
||||
23.09.2020 - FLA - Created
|
||||
16.11.2020 - SPE - Modify schedules',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Wait for a random delay of 0..15 minutes',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[Wait_Random_Time] @in_Minutes = 15',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Transfert Stats SP',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=6,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec [dbo].[mon_Transfert_Stats_SP]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Purge Stats SP locally',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=6,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[mon_Purge_Stats_SP]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=5,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=6,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''D92260 - Transfert Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=6,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''D92260 - Transfert Stats SP'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D92260-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20160509,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=000000,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D92260%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
@@ -1,201 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'D93020 - Daily clean-up'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'D93020 - Daily clean-up')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'D93020 - Daily clean-up', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA Database Maintenance' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA Database Maintenance'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'D93020 - Daily clean-up',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'22.02.2013 - PDE - Created
|
||||
03.07.2015 - LPO #TFS28342# Script unique pour AMAVITA, SUNSTORE, AAI
|
||||
10.02.2021 - SPE #TFS63542# - Adapt purge DR jobs daily treatment
|
||||
17.03.2022 - FLA : Change DBA mail',
|
||||
@category_name=N'DBA Database Maintenance',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Daily Clean-up',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[CleanUp_History]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''D93020 - Daily clean-up'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''D93020 - Daily clean-up'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'D93020-D',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=1,
|
||||
@freq_subday_interval=0,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20160208,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=61500,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'D93020%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
@@ -1,201 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'DR92030 - Check open transactions'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'DR92030 - Check open transactions')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'DR92030 - Check open transactions', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DR92030 - Check open transactions',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'12.08.2011 - PDE - Created
|
||||
06.12.2012 - PDE - Added check of opened transactions
|
||||
11.12.2018 - RTC - Remove blocking session.
|
||||
17.03.2022 - FLA : Change DBA mail',
|
||||
@category_name=N'[Uncategorized (Local)]',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send warning in case of opened transactions',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[mon_Check_Open_Tran]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''DR92030 - Check open transactions'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''DR92030 - Check open transactions'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'DR92030-DR',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=4,
|
||||
@freq_subday_interval=2,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20110811,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=80000,
|
||||
@active_end_time=230000
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'DR92030%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
@@ -1,207 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'DR92160 - Replication Check'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'DR92160 - Replication Check')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'DR92160 - Replication Check', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DR92160 - Replication Check',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Vérifie un ensemble de points critiques de la réplication
|
||||
|
||||
18.07.2017 - FLA - Ajout du step de test de l''etat des souscriptions et de l''état des agents
|
||||
09.02.2018 - FLA - Ajout du step de control des jobs à double
|
||||
24.04.2018 - RTC - Ajout du test des commandes non distribuées et mise à jour du schedule
|
||||
05.07.2019 - SPE - Modification schedule 7h00 -> 6h00
|
||||
20.04.2020 - SPE - Modifications pour ajout monitoring Nagios
|
||||
17.03.2022 - FLA : Change DBA mail',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Check all steps',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[Replication_Check] @in_CheckType = 0, @in_Email = 1',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''DR92160 - Replication Check'', @in_Recipients = ''DBA_operator''
|
||||
|
||||
',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'DR92160-DR',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=4,
|
||||
@freq_subday_interval=30,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20160921,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=60000,
|
||||
@active_end_time=180000
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'DR92160%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
@@ -1,209 +0,0 @@
|
||||
/****************************************************************/
|
||||
/********** SUPPRESSION TEMPORAIRE DES ANCIENS JOBS ************/
|
||||
/****************************************************************/
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'DR92050 - Long Running Jobs')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'DR92050 - Long Running Jobs', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'DR92240 - Long Running Jobs'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'DR92240 - Long Running Jobs')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'DR92240 - Long Running Jobs', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DR92240 - Long Running Jobs',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'25.06.2015/LPE: Check long running SQL Agent Jobs
|
||||
03.08.2015 - LPO #TFS28342# Script unique pour AMAVITA, SUNSTORE, AAI',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Check long running jobs',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[mon_Check_Long_Running_Jobs]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* empty*/',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'DR92240-DR',
|
||||
@enabled=1,
|
||||
@freq_type=8,
|
||||
@freq_interval=62,
|
||||
@freq_subday_type=4,
|
||||
@freq_subday_interval=5,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=1,
|
||||
@active_start_date=20150625,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=70000,
|
||||
@active_end_time=193000
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'DR92240%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
@@ -1,201 +0,0 @@
|
||||
/* Drop existing standard schedule for job */
|
||||
declare @schedule_id int
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select ss.schedule_id
|
||||
from msdb.dbo.sysjobschedules sjs
|
||||
INNER JOIN msdb.dbo.sysschedules ss
|
||||
ON sjs.schedule_id = ss.schedule_id
|
||||
AND ss.name NOT LIKE '%#SPEC#'
|
||||
INNER JOIN msdb.dbo.sysjobs sj
|
||||
ON sjs.job_id = sj.job_id
|
||||
WHERE sj.name = N'DR92110 - Check Broker Queues'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
IF ((select COUNT(*) from msdb.dbo.sysjobschedules where schedule_id=@schedule_id) = 1)
|
||||
EXEC msdb.dbo.sp_delete_schedule @schedule_id=@schedule_id, @force_delete = 1
|
||||
FETCH NEXT FROM c_schedules into @schedule_id
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'DR92110 - Check Broker Queues')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name = N'DR92110 - Check Broker Queues', @delete_unused_schedule=0
|
||||
GO
|
||||
|
||||
/* Creation Job and Steps*/
|
||||
BEGIN TRANSACTION
|
||||
DECLARE @ReturnCode INT
|
||||
SELECT @ReturnCode = 0
|
||||
|
||||
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA-Monitoring' AND category_class=1)
|
||||
BEGIN
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA-Monitoring'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
END
|
||||
|
||||
/* Add Job */
|
||||
DECLARE @jobId BINARY(16)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DR92110 - Check Broker Queues',
|
||||
@enabled=1,
|
||||
@notify_level_eventlog=0,
|
||||
@notify_level_email=0,
|
||||
@notify_level_netsend=0,
|
||||
@notify_level_page=0,
|
||||
@delete_level=0,
|
||||
@description=N'Vérification si les queues ne sont pas disabled (poison messages)
|
||||
|
||||
07.06.2016 - FLA - Création
|
||||
17.03.2022 - FLA : Change DBA mail',
|
||||
@category_name=N'DBA-Monitoring',
|
||||
@start_step_id=1,
|
||||
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step',
|
||||
@step_id=1,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=3,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */',
|
||||
@database_name=N'master',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Check all Broker queues',
|
||||
@step_id=2,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=3,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'EXEC [dbo].[mon_Check_Broker_queues]',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Empty step for success',
|
||||
@step_id=3,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=1,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=4,
|
||||
@on_fail_step_id=4,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'/* Empty step */
|
||||
exec Get_Job_Error_Info @in_JobName = ''DR92110 - Check Broker Queues'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
/* Add Step */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Send email KO',
|
||||
@step_id=4,
|
||||
@cmdexec_success_code=0,
|
||||
@on_success_action=2,
|
||||
@on_success_step_id=0,
|
||||
@on_fail_action=2,
|
||||
@on_fail_step_id=0,
|
||||
@retry_attempts=0,
|
||||
@retry_interval=0,
|
||||
@os_run_priority=0, @subsystem=N'TSQL',
|
||||
@command=N'exec Get_Job_Error_Info @in_JobName = ''DR92110 - Check Broker Queues'', @in_Recipients = ''DBA_operator''',
|
||||
@database_name=N'HCITools',
|
||||
@output_file_name=NULL,
|
||||
@flags=0,
|
||||
@database_user_name=NULL,
|
||||
@server=NULL,
|
||||
@additional_parameters=NULL,
|
||||
@proxy_id=NULL,
|
||||
@proxy_name=NULL
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Add Standard Schedule */
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'DR92110-DR',
|
||||
@enabled=1,
|
||||
@freq_type=4,
|
||||
@freq_interval=1,
|
||||
@freq_subday_type=4,
|
||||
@freq_subday_interval=15,
|
||||
@freq_relative_interval=0,
|
||||
@freq_recurrence_factor=0,
|
||||
@active_start_date=20160607,
|
||||
@active_end_date=99991231,
|
||||
@active_start_time=0,
|
||||
@active_end_time=235959
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
|
||||
/* Attach existing specific schedule for job */
|
||||
declare @enabled_schedule int,
|
||||
@schedule_name nvarchar(50)
|
||||
declare c_schedules cursor local forward_only static for
|
||||
select enabled, name
|
||||
from msdb.dbo.sysschedules
|
||||
where name LIKE 'DR92110%'
|
||||
and name LIKE '%#SPEC#'
|
||||
|
||||
open c_schedules
|
||||
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
EXEC @ReturnCode = msdb.dbo.sp_attach_schedule @job_id = @jobId, @schedule_name=@schedule_name
|
||||
IF(@enabled_schedule = 1)
|
||||
begin
|
||||
SET @schedule_name = SUBSTRING(@schedule_name,0,LEN(@schedule_name)-5)
|
||||
IF EXISTS (select name from msdb.dbo.sysschedules where name = @schedule_name)
|
||||
EXEC @ReturnCode = msdb.dbo.sp_update_schedule @name=@schedule_name, @enabled=0
|
||||
end
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
FETCH NEXT FROM c_schedules into @enabled_schedule, @schedule_name
|
||||
end
|
||||
|
||||
close c_schedules
|
||||
|
||||
deallocate c_schedules
|
||||
|
||||
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
|
||||
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
|
||||
COMMIT TRANSACTION
|
||||
GOTO EndSave
|
||||
QuitWithRollback:
|
||||
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
|
||||
EndSave:
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,21 +0,0 @@
|
||||
/****************************************************************/
|
||||
/********** SUPPRESSION TEMPORAIRE DES ANCIENS JOBS ************/
|
||||
/****************************************************************/
|
||||
USE [msdb]
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'W90280 - Clean-up history')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'W90280 - Clean-up history', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'_W90280 - Clean-up history')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'_W90280 - Clean-up history', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'_W90260 - Clean-up history')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'_W90260 - Clean-up history', @delete_unused_schedule=1
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'W93060 - Clean-up history')
|
||||
EXEC msdb.dbo.sp_delete_job @job_name=N'W93060 - Clean-up history', @delete_unused_schedule=1
|
||||
GO
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user