PRDD_BACKUP_DATABASE: Renamed
This commit is contained in:
@@ -6,7 +6,7 @@ GO
|
|||||||
SET QUOTED_IDENTIFIER ON
|
SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- [PRDD_BACKUP_DATABASES]
|
-- [PRDD_BACKUP_DATABASE]
|
||||||
-- =================================================================
|
-- =================================================================
|
||||||
-- Saving database to LOCAL (!!) backup folder
|
-- Saving database to LOCAL (!!) backup folder
|
||||||
-- Minimum requirement: MS SQL Server 2016
|
-- Minimum requirement: MS SQL Server 2016
|
||||||
@@ -19,15 +19,16 @@ GO
|
|||||||
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
|
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
|
||||||
-- =================================================================
|
-- =================================================================
|
||||||
-- Creation Date / Author: 13.12.2024 / MK
|
-- Creation Date / Author: 13.12.2024 / MK
|
||||||
-- Version Date / Editor: 30.05.2025 / MK
|
-- Version Date / Editor: 23.12.2025 / MK
|
||||||
-- Version Number: 1.2.0.1
|
-- Version Number: 1.3.0.0
|
||||||
-- =================================================================
|
-- =================================================================
|
||||||
-- History:
|
-- History:
|
||||||
-- 13.12.2024 / MK - First Version
|
-- 13.12.2024 / MK - First Version
|
||||||
-- 28.05.2025 / MP - Missing variables declared
|
-- 28.05.2025 / MP - Missing variables declared
|
||||||
-- 30.05.2025 / MK - Minor corrections
|
-- 30.05.2025 / MK - Minor corrections
|
||||||
|
-- 23.12.2025 / MK - Code optimizations, for less query overhead
|
||||||
|
|
||||||
CREATE OR ALTER PROCEDURE [dbo].[PRDD_BACKUP_DATABASES] (
|
CREATE OR ALTER PROCEDURE [dbo].[PRDD_BACKUP_DATABASE] (
|
||||||
@pCOMPRESSION BIT = 0, -- Set to 1 to compress the database backup file (This option is not available in SQL Express Versions!). Otherwise set to 0.
|
@pCOMPRESSION BIT = 0, -- Set to 1 to compress the database backup file (This option is not available in SQL Express Versions!). Otherwise set to 0.
|
||||||
@pSHRINKLOG BIT = 1, -- Set to 1 to shrink the log file after backup. Otherwise set to 0.
|
@pSHRINKLOG BIT = 1, -- Set to 1 to shrink the log file after backup. Otherwise set to 0.
|
||||||
@pLOCALBACKUPPATH NVARCHAR(200) = 'F:\Sicherung', -- Set the LOCAL Backup path. If path doesnt exist, it will be created.
|
@pLOCALBACKUPPATH NVARCHAR(200) = 'F:\Sicherung', -- Set the LOCAL Backup path. If path doesnt exist, it will be created.
|
||||||
@@ -35,7 +36,7 @@ CREATE OR ALTER PROCEDURE [dbo].[PRDD_BACKUP_DATABASES] (
|
|||||||
@pFORCE BIT = 0, -- Set to 1 to force the shrinking, it will cut all current sessens. In combination with @pCHECKDB it trys the soft reapair dbs. Otherwise set to 0.
|
@pFORCE BIT = 0, -- Set to 1 to force the shrinking, it will cut all current sessens. In combination with @pCHECKDB it trys the soft reapair dbs. Otherwise set to 0.
|
||||||
@pINCLUDEDB NVARCHAR(1000) = 'DD_ECM', -- Set a list of included databases. IF <> NULL, it will override the @pEXCLUDEDB Parameter.
|
@pINCLUDEDB NVARCHAR(1000) = 'DD_ECM', -- Set a list of included databases. IF <> NULL, it will override the @pEXCLUDEDB Parameter.
|
||||||
@pEXCLUDEDB NVARCHAR(1000) = 'master,model,msdb,tempdb', -- Set a list of exluded databases. Default exclusen are the system databases.
|
@pEXCLUDEDB NVARCHAR(1000) = 'master,model,msdb,tempdb', -- Set a list of exluded databases. Default exclusen are the system databases.
|
||||||
@pLOGLEVEL NVARCHAR(25) = 'ERROR' -- Set to 'INFO','WARN' OR 'ERROR' (or NULL to disable), logging to table: [TBDD_BACKUP_DATABASES_LOG].
|
@pLOGLEVEL NVARCHAR(25) = 'ERROR' -- Set to 'INFO','WARN' OR 'ERROR' (or NULL to disable), logging to table: [TBDD_BACKUP_DATABASE_LOG].
|
||||||
-- 'INFO' includes Infos, Warnings and Errors, 'WARN' only warnings and Errors and 'ERROR' only Errors.
|
-- 'INFO' includes Infos, Warnings and Errors, 'WARN' only warnings and Errors and 'ERROR' only Errors.
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
@@ -74,19 +75,22 @@ BEGIN
|
|||||||
@SQLCommand NVARCHAR(1000) = NULL,
|
@SQLCommand NVARCHAR(1000) = NULL,
|
||||||
@CMDCommand NVARCHAR(1000) = NULL,
|
@CMDCommand NVARCHAR(1000) = NULL,
|
||||||
@CMDCommandResult INT = 0,
|
@CMDCommandResult INT = 0,
|
||||||
@return_status NVARCHAR(50) = 0,
|
@return_status INT = 0,
|
||||||
@return_status_text NVARCHAR(MAX) = 'START ' + @MyProcedureName + ' @ ' + CONVERT(NVARCHAR(50),GETDATE(),120);
|
@return_status_text NVARCHAR(MAX) = 'START PROCEDURE [' + @MyProcedureName + '] @ ' + CONVERT(NVARCHAR(50),GETDATE(),120);
|
||||||
|
|
||||||
PRINT '==============================='
|
--=================================================-- Output parameters --================================================--
|
||||||
PRINT 'PROCEDURE - ' + @return_status_text;
|
PRINT '====================================================================================================';
|
||||||
PRINT 'PARAMETER01 - @COMPRESSION: ' + CONVERT(NVARCHAR(1),@COMPRESSION);
|
PRINT @return_status_text;
|
||||||
PRINT 'PARAMETER02 - @SHRINKLOG: ' + CONVERT(NVARCHAR(1),@SHRINKLOG);
|
PRINT '';
|
||||||
PRINT 'PARAMETER03 - @LOCALBACKUPPATH: ' + CONVERT(NVARCHAR(50),@LOCALBACKUPPATH);
|
PRINT 'PARAMETER01 - @COMPRESSION: ' + CONVERT(NVARCHAR(1),@COMPRESSION);
|
||||||
PRINT 'PARAMETER04 - @SUBDIRECTORY: ' + CONVERT(NVARCHAR(1),@SUBDIRECTORY);
|
PRINT 'PARAMETER02 - @SHRINKLOG: ' + CONVERT(NVARCHAR(1),@SHRINKLOG);
|
||||||
PRINT 'PARAMETER05 - @FORCE: ' + CONVERT(NVARCHAR(1),@FORCE);
|
PRINT 'PARAMETER03 - @LOCALBACKUPPATH: ' + CONVERT(NVARCHAR(50),@LOCALBACKUPPATH);
|
||||||
PRINT 'PARAMETER06 - @INCLUDEDB: ' + CONVERT(NVARCHAR(1000),@INCLUDEDB);
|
PRINT 'PARAMETER04 - @SUBDIRECTORY: ' + CONVERT(NVARCHAR(1),@SUBDIRECTORY);
|
||||||
PRINT 'PARAMETER07 - @EXCLUDEDB: ' + CONVERT(NVARCHAR(1000),@EXCLUDEDB);
|
PRINT 'PARAMETER05 - @FORCE: ' + CONVERT(NVARCHAR(1),@FORCE);
|
||||||
PRINT 'PARAMETER08 - @LOGLEVEL: ' + CONVERT(NVARCHAR(25),@LOGLEVEL);
|
PRINT 'PARAMETER06 - @INCLUDEDB: ' + CONVERT(NVARCHAR(1000),@INCLUDEDB);
|
||||||
|
PRINT 'PARAMETER07 - @EXCLUDEDB: ' + CONVERT(NVARCHAR(1000),@EXCLUDEDB);
|
||||||
|
PRINT 'PARAMETER08 - @LOGLEVEL: ' + CONVERT(NVARCHAR(25),@LOGLEVEL);
|
||||||
|
PRINT '';
|
||||||
|
|
||||||
--=================================================-- Get server infos --==================================================--
|
--=================================================-- Get server infos --==================================================--
|
||||||
SELECT @ProductVersion = SERVERPROPERTY('productversion'), @ProductLevel = SERVERPROPERTY ('productlevel'), @ProductEdition = SERVERPROPERTY ('edition');
|
SELECT @ProductVersion = SERVERPROPERTY('productversion'), @ProductLevel = SERVERPROPERTY ('productlevel'), @ProductEdition = SERVERPROPERTY ('edition');
|
||||||
@@ -104,31 +108,30 @@ BEGIN
|
|||||||
--==============================================-- Prepare the log table --================================================--
|
--==============================================-- Prepare the log table --================================================--
|
||||||
IF (@LOGLEVEL is not NULL) BEGIN
|
IF (@LOGLEVEL is not NULL) BEGIN
|
||||||
PRINT '';
|
PRINT '';
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
IF EXISTS (SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_NAME] = N'TBDD_BACKUP_DATABASE_LOG') BEGIN
|
||||||
PRINT 'Log table already exists';
|
PRINT 'Log table already exists';
|
||||||
END; ELSE BEGIN
|
END; ELSE BEGIN
|
||||||
PRINT 'Log table does not exists, trying to create...';
|
PRINT 'Log table does not exists, trying to create...';
|
||||||
|
|
||||||
CREATE TABLE [dbo].[TBDD_BACKUP_DATABASES_LOG](
|
CREATE TABLE [dbo].[TBDD_BACKUP_DATABASE_LOG](
|
||||||
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
|
[GUID] [bigint] IDENTITY(1,1) NOT NULL,
|
||||||
[LOG_LEVEL] [varchar](25) NOT NULL,
|
[LOG_LEVEL] [nvarchar](25) NOT NULL,
|
||||||
[MESSAGE1] [varchar](max) NOT NULL,
|
[MESSAGE1] [nvarchar](max) NOT NULL,
|
||||||
[MESSAGE2] [varchar](max) NULL,
|
[MESSAGE2] [nvarchar](max) NULL,
|
||||||
[MESSAGE3] [varchar](max) NULL,
|
[MESSAGE3] [nvarchar](max) NULL,
|
||||||
[MESSAGE4] [varchar](max) NULL,
|
[MESSAGE4] [nvarchar](max) NULL,
|
||||||
[MESSAGE5] [varchar](max) NULL,
|
[MESSAGE5] [nvarchar](max) NULL,
|
||||||
[COMMENT] [varchar](max) NULL,
|
[COMMENT] [nvarchar](max) NULL,
|
||||||
[ADDED_WHO] [varchar](50) NOT NULL,
|
[ADDED_WHO] [nvarchar](50) NOT NULL,
|
||||||
[ADDED_WHEN] [datetime] NOT NULL,
|
[ADDED_WHEN] [datetime] NOT NULL,
|
||||||
CONSTRAINT [PK_TBDD_BACKUP_DATABASES_LOG] PRIMARY KEY CLUSTERED
|
CONSTRAINT [PK_TBDD_BACKUP_DATABASE_LOG_GUID] PRIMARY KEY CLUSTERED
|
||||||
(
|
(
|
||||||
[GUID] ASC
|
[GUID] ASC
|
||||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, DATA_COMPRESSION = PAGE) ON [PRIMARY]
|
||||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
|
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
|
||||||
|
|
||||||
ALTER TABLE [dbo].[TBDD_BACKUP_DATABASES_LOG] ADD CONSTRAINT [DF_TBDD_BACKUP_DATABASES_LOG_ADDED_WHO] DEFAULT ('DEFAULT') FOR [ADDED_WHO];
|
ALTER TABLE [dbo].[TBDD_BACKUP_DATABASE_LOG] ADD CONSTRAINT [DF_TBDD_BACKUP_DATABASE_LOG_ADDED_WHO] DEFAULT (SUSER_SNAME()) FOR [ADDED_WHO];
|
||||||
|
ALTER TABLE [dbo].[TBDD_BACKUP_DATABASE_LOG] ADD CONSTRAINT [DF_TBDD_BACKUP_DATABASE_LOG_ADDED_WHEN] DEFAULT (SYSDATETIME()) FOR [ADDED_WHEN];
|
||||||
ALTER TABLE [dbo].[TBDD_BACKUP_DATABASES_LOG] ADD CONSTRAINT [DF_TBDD_BACKUP_DATABASES_LOG_ADDED_WHEN] DEFAULT (getdate()) FOR [ADDED_WHEN];
|
|
||||||
|
|
||||||
END;
|
END;
|
||||||
END; ELSE BEGIN
|
END; ELSE BEGIN
|
||||||
@@ -137,12 +140,19 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
--===============================================-- Check for log table --================================================--
|
||||||
|
IF NOT EXISTS (SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_NAME] = N'TBDD_BACKUP_DATABASE_LOG') BEGIN
|
||||||
|
SET @LOGLEVEL = 'NONE';
|
||||||
|
PRINT 'ERROR: Because the log table [TBDD_BACKUP_DATABASE_LOG] does not exists, logging is disabled for this run!';
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
--===============================================-- Log start to table --=================================================--
|
--===============================================-- Log start to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL,'preparing', 'procedure', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL,'preparing', 'procedure', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -158,10 +168,8 @@ BEGIN
|
|||||||
|
|
||||||
--===================================================-- Log to table --====================================================--
|
--===================================================-- Log to table --====================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL,'preparing', 'procedure', @return_status, 'Found SQL Edition: ' + @ProductEditionSimpleString, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL,'preparing', 'procedure', @return_status, 'Found SQL Edition: ' + @ProductEditionSimpleString, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -207,10 +215,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF (@LOGLEVEL in ('INFO','WARN')) BEGIN
|
IF (@LOGLEVEL in ('INFO','WARN')) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'db_list', 'count', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'db_list', 'count', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -264,10 +270,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF (@LOGLEVEL in ('INFO','WARN')) BEGIN
|
IF (@LOGLEVEL in ('INFO','WARN')) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'server_check', 'filesystem_config',@return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'server_check', 'filesystem_config',@return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -305,10 +309,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -334,10 +336,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -349,10 +349,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -364,10 +362,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @SQLCommand, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @SQLCommand, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -387,165 +383,141 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--============================================-- Prepare shrinking the log--===============================================--
|
||||||
|
IF (@SHRINKLOG = 1) BEGIN
|
||||||
|
|
||||||
|
--===========================================-- Get infos about the log file --============================================--
|
||||||
|
PRINT 'Get the current and minimum size of the log file in MB.';
|
||||||
|
SET @SQLCommand = N'SELECT TOP 1 @LogFileName = [name], @CurrentLogFileSizeInMB = ([size] / 128), @MinimumLogFileSizeInMB = ([growth] / 128), @MaximumLogFileSizeInMB = ([max_size] / 128)
|
||||||
|
FROM [master].[sys].[master_files] (NOLOCK)
|
||||||
|
WHERE [database_id] = DB_ID(''' + @DBName + ''') AND [STATE_DESC] = ''ONLINE'' AND [type_desc] = ''LOG''';
|
||||||
|
EXEC @return_status = sp_executesql @SQLCommand, N'@LogFileName VARCHAR(100) OUTPUT, @CurrentLogFileSizeInMB INT OUTPUT, @MinimumLogFileSizeInMB INT OUTPUT, @MaximumLogFileSizeInMB INT OUTPUT',
|
||||||
|
@LogFileName OUTPUT, @CurrentLogFileSizeInMB OUTPUT, @MinimumLogFileSizeInMB OUTPUT, @MaximumLogFileSizeInMB OUTPUT;
|
||||||
|
|
||||||
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
||||||
|
SET @return_status_text = 'Getting log file settings was successfully completed!';
|
||||||
|
PRINT @return_status_text;
|
||||||
|
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
||||||
|
SET @return_status_text = 'Getting log file settings returns warnings or has failed, check the ID!';
|
||||||
|
PRINT @return_status_text;
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--===============================================-- Log result to table --=================================================--
|
||||||
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
|
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
--============================================-- Prepare shrinking the log--===============================================--
|
--===========================================-- Calculate target file size --==============================================--
|
||||||
IF (@SHRINKLOG = 1) BEGIN
|
PRINT 'The @CurrentLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@CurrentLogFileSizeInMB);
|
||||||
|
PRINT 'The @MinimumLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@MinimumLogFileSizeInMB);
|
||||||
|
PRINT 'The @MaximumLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@MaximumLogFileSizeInMB);
|
||||||
|
|
||||||
--===========================================-- Get infos about the log file --============================================--
|
SET @TargetLogFileSizeInMB = CASE WHEN (@MinimumLogFileSizeInMB < @CurrentLogFileSizeInMB) AND (@MinimumLogFileSizeInMB < @MaximumLogFileSizeInMB)
|
||||||
PRINT 'Get the current and minimum size of the log file in MB.';
|
THEN @MinimumLogFileSizeInMB
|
||||||
SET @SQLCommand = N'SELECT TOP 1 @LogFileName = [name], @CurrentLogFileSizeInMB = ([size] / 128), @MinimumLogFileSizeInMB = ([growth] / 128), @MaximumLogFileSizeInMB = ([max_size] / 128)
|
ELSE @CurrentLogFileSizeInMB
|
||||||
FROM [master].[sys].[master_files] (NOLOCK)
|
END;
|
||||||
WHERE [database_id] = DB_ID(''' + @DBName + ''') AND [STATE_DESC] = ''ONLINE'' AND [type_desc] = ''LOG''';
|
|
||||||
EXEC @return_status = sp_executesql @SQLCommand, N'@LogFileName VARCHAR(100) OUTPUT, @CurrentLogFileSizeInMB INT OUTPUT, @MinimumLogFileSizeInMB INT OUTPUT, @MaximumLogFileSizeInMB INT OUTPUT',
|
|
||||||
@LogFileName OUTPUT, @CurrentLogFileSizeInMB OUTPUT, @MinimumLogFileSizeInMB OUTPUT, @MaximumLogFileSizeInMB OUTPUT;
|
|
||||||
|
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
PRINT 'The @TargetLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@TargetLogFileSizeInMB);
|
||||||
SET @return_status_text = 'Getting log file settings was successfully completed!';
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
PRINT @return_status_text;
|
|
||||||
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
|
||||||
SET @return_status_text = 'Getting log file settings returns warnings or has failed, check the ID!';
|
|
||||||
PRINT @return_status_text;
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--=================================================-- Schrink db logs --===================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF (@CurrentLogFileSizeInMB > @TargetLogFileSizeInMB) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_MAINTAIN_DATABASES_LOG') BEGIN
|
|
||||||
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--===========================================-- Calculate target file size --==============================================--
|
--=============================================-- Change db recovery mode --===============================================--
|
||||||
PRINT 'The @CurrentLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@CurrentLogFileSizeInMB);
|
PRINT 'Truncating the log needs to change the database recovery model to SIMPLE.';
|
||||||
PRINT 'The @MinimumLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@MinimumLogFileSizeInMB);
|
SET @SQLCommand = N'ALTER DATABASE [' + @DBName + '] SET RECOVERY SIMPLE';
|
||||||
PRINT 'The @MaximumLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@MaximumLogFileSizeInMB);
|
EXEC @return_status = sp_executesql @SQLCommand;
|
||||||
|
|
||||||
SET @TargetLogFileSizeInMB = CASE WHEN (@MinimumLogFileSizeInMB < @CurrentLogFileSizeInMB) AND (@MinimumLogFileSizeInMB < @MaximumLogFileSizeInMB)
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
||||||
THEN @MinimumLogFileSizeInMB
|
SET @return_status_text = 'Setting database to the simple recovery model was successfully completed!';
|
||||||
ELSE @CurrentLogFileSizeInMB
|
PRINT @return_status_text;
|
||||||
|
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
||||||
|
SET @return_status_text = 'Setting database to the simple recovery model returns warnings or has failed, check the ID!';
|
||||||
|
PRINT @return_status_text;
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--===============================================-- Log result to table --=================================================--
|
||||||
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
|
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--===================================================-- Now, do it! --=====================================================--
|
||||||
|
IF (@return_status = 0) BEGIN
|
||||||
|
PRINT 'Shrink the truncated log file to 10% of its current size or the minimum size, whichever is larger.';
|
||||||
|
IF (@ProductMainVersion >= 16) BEGIN
|
||||||
|
IF (@FORCE = 1) BEGIN
|
||||||
|
SET @SQLCommand = N'USE [' + @DBName + ']; DBCC SHRINKFILE (''' + @LogFileName + ''', ' + CAST(@TargetLogFileSizeInMB AS VARCHAR) + ') WITH WAIT_AT_LOW_PRIORITY (ABORT_AFTER_WAIT = BLOCKERS), NO_INFOMSGS;';
|
||||||
|
END; ELSE BEGIN
|
||||||
|
SET @SQLCommand = N'USE [' + @DBName + ']; DBCC SHRINKFILE (''' + @LogFileName + ''', ' + CAST(@TargetLogFileSizeInMB AS VARCHAR) + ') WITH WAIT_AT_LOW_PRIORITY (ABORT_AFTER_WAIT = SELF), NO_INFOMSGS;';
|
||||||
END;
|
END;
|
||||||
|
END; ELSE BEGIN
|
||||||
|
PRINT 'Because of the sql server version, DBCC SHRINKFILE is not applicable with the FORCE parameter!';
|
||||||
|
SET @SQLCommand = N'USE [' + @DBName + ']; DBCC SHRINKFILE (''' + @LogFileName + ''', ' + CAST(@TargetLogFileSizeInMB AS VARCHAR) + ') WITH NO_INFOMSGS;';
|
||||||
|
END;
|
||||||
|
|
||||||
PRINT 'The @TargetLogFileSizeInMB is: ' + CONVERT(NVARCHAR(1000),@TargetLogFileSizeInMB);
|
EXEC @return_status = sp_executesql @SQLCommand;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--=================================================-- Schrink db logs --===================================================--
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
||||||
IF (@CurrentLogFileSizeInMB > @TargetLogFileSizeInMB) BEGIN
|
SET @return_status_text = 'Shrinking the database log file was successfully completed!';
|
||||||
|
PRINT @return_status_text;
|
||||||
|
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
||||||
|
SET @return_status_text = 'Shrinking the database log file returns warnings or has failed, check the ID!';
|
||||||
|
PRINT @return_status_text;
|
||||||
|
END;
|
||||||
|
|
||||||
--=============================================-- Change db recovery mode --===============================================--
|
END; ELSE BEGIN
|
||||||
PRINT 'Truncating the log needs to change the database recovery model to SIMPLE.';
|
SET @return_status_text = 'Shrinking the database log was skipped because of previouse error(s)!';
|
||||||
SET @SQLCommand = N'ALTER DATABASE [' + @DBName + '] SET RECOVERY SIMPLE';
|
END;
|
||||||
EXEC @return_status = sp_executesql @SQLCommand;
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
--===============================================-- Log result to table --=================================================--
|
||||||
SET @return_status_text = 'Setting database to the simple recovery model was successfully completed!';
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
PRINT @return_status_text;
|
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
SET @return_status_text = 'Setting database to the simple recovery model returns warnings or has failed, check the ID!';
|
END;
|
||||||
PRINT @return_status_text;
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--=============================================-- Change db recovery mode --===============================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
PRINT 'Reset the database recovery model.'
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_MAINTAIN_DATABASES_LOG') BEGIN
|
SET @SQLCommand = N'ALTER DATABASE [' + @DBName + '] SET RECOVERY FULL';
|
||||||
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
EXEC @return_status = sp_executesql @SQLCommand;
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
||||||
END;
|
SET @return_status_text = 'Setting database back to the full recovery model was successfully completed!';
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
PRINT @return_status_text;
|
||||||
|
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
||||||
|
SET @return_status_text = 'Setting database back to the full recovery model returns warnings or has failed, check the ID!';
|
||||||
|
PRINT @return_status_text;
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--===============================================-- Log result to table --=================================================--
|
||||||
|
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
|
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
|
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
END; ELSE BEGIN
|
||||||
|
PRINT 'No shrink action neccessary!';
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
--===================================================-- Now, do it! --=====================================================--
|
|
||||||
IF (@return_status = 0) BEGIN
|
|
||||||
PRINT 'Shrink the truncated log file to 10% of its current size or the minimum size, whichever is larger.';
|
|
||||||
IF (@ProductMainVersion >= 16) BEGIN
|
|
||||||
IF (@FORCE = 1) BEGIN
|
|
||||||
SET @SQLCommand = N'USE [' + @DBName + ']; DBCC SHRINKFILE (''' + @LogFileName + ''', ' + CAST(@TargetLogFileSizeInMB AS VARCHAR) + ') WITH WAIT_AT_LOW_PRIORITY (ABORT_AFTER_WAIT = BLOCKERS), NO_INFOMSGS;';
|
|
||||||
END; ELSE BEGIN
|
END; ELSE BEGIN
|
||||||
SET @SQLCommand = N'USE [' + @DBName + ']; DBCC SHRINKFILE (''' + @LogFileName + ''', ' + CAST(@TargetLogFileSizeInMB AS VARCHAR) + ') WITH WAIT_AT_LOW_PRIORITY (ABORT_AFTER_WAIT = SELF), NO_INFOMSGS;';
|
PRINT 'Skipping to shrink the log file!';
|
||||||
END;
|
END;
|
||||||
END; ELSE BEGIN
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
PRINT 'Because of the sql server version, DBCC SHRINKFILE is not applicable with the FORCE parameter!';
|
|
||||||
SET @SQLCommand = N'USE [' + @DBName + ']; DBCC SHRINKFILE (''' + @LogFileName + ''', ' + CAST(@TargetLogFileSizeInMB AS VARCHAR) + ') WITH NO_INFOMSGS;';
|
|
||||||
END;
|
|
||||||
|
|
||||||
EXEC @return_status = sp_executesql @SQLCommand;
|
|
||||||
|
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
|
||||||
SET @return_status_text = 'Shrinking the database log file was successfully completed!';
|
|
||||||
PRINT @return_status_text;
|
|
||||||
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
|
||||||
SET @return_status_text = 'Shrinking the database log file returns warnings or has failed, check the ID!';
|
|
||||||
PRINT @return_status_text;
|
|
||||||
END;
|
|
||||||
|
|
||||||
END; ELSE BEGIN
|
|
||||||
SET @return_status_text = 'Shrinking the database log was skipped because of previouse error(s)!';
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_MAINTAIN_DATABASES_LOG') BEGIN
|
|
||||||
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--=============================================-- Change db recovery mode --===============================================--
|
|
||||||
PRINT 'Reset the database recovery model.'
|
|
||||||
SET @SQLCommand = N'ALTER DATABASE [' + @DBName + '] SET RECOVERY FULL';
|
|
||||||
EXEC @return_status = sp_executesql @SQLCommand;
|
|
||||||
|
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status = 0)) BEGIN
|
|
||||||
SET @return_status_text = 'Setting database back to the full recovery model was successfully completed!';
|
|
||||||
PRINT @return_status_text;
|
|
||||||
END; ELSE IF ((@LOGLEVEL in ('WARN')) and (@return_status <> 0)) BEGIN
|
|
||||||
SET @return_status_text = 'Setting database back to the full recovery model returns warnings or has failed, check the ID!';
|
|
||||||
PRINT @return_status_text;
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_MAINTAIN_DATABASES_LOG') BEGIN
|
|
||||||
INSERT INTO [TBDD_MAINTAIN_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
|
||||||
VALUES (@LOGLEVEL, 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
END; ELSE BEGIN
|
|
||||||
PRINT 'No shrink action neccessary!';
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
END; ELSE BEGIN
|
|
||||||
PRINT 'Skipping to shrink the log file!';
|
|
||||||
END;
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END; ELSE BEGIN
|
END; ELSE BEGIN
|
||||||
|
|
||||||
@@ -554,10 +526,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES ('ERROR', 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES ('ERROR', 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -572,10 +542,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES ('ERROR', 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES ('ERROR', 'db_cursor', @DBName, @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -589,10 +557,8 @@ BEGIN
|
|||||||
|
|
||||||
--================================================-- Log error to table --=================================================--
|
--================================================-- Log error to table --=================================================--
|
||||||
IF (@LOGLEVEL in ('INFO','WARN','ERROR')) BEGIN
|
IF (@LOGLEVEL in ('INFO','WARN','ERROR')) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [ADDED_WHO], [ADDED_WHEN])
|
VALUES ('ERROR', 'db_cursor', @DBName, ERROR_MESSAGE(),@MyProcedureName,GetDate());
|
||||||
VALUES ('ERROR', 'db_cursor', @DBName, ERROR_MESSAGE(),@MyProcedureName,GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -620,10 +586,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES ('ERROR', 'server_check', 'filesystem_config', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES ('ERROR', 'server_check', 'filesystem_config', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -652,10 +616,8 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES ('ERROR', 'server_check', 'filesystem_config', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES ('ERROR', 'server_check', 'filesystem_config', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -669,30 +631,26 @@ BEGIN
|
|||||||
|
|
||||||
--===============================================-- Log result to table --=================================================--
|
--===============================================-- Log result to table --=================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO','WARN','ERROR')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES ('WARN', 'db_list', 'count', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES ('WARN', 'db_list', 'count', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
SET @return_status_text = 'END ' + @MyProcedureName + ' @ ' + CONVERT(NVARCHAR(50),GETDATE(),120);
|
SET @return_status_text = 'END PROCEDURE [' + @MyProcedureName + '] @ ' + CONVERT(NVARCHAR(50),GETDATE(),120);
|
||||||
|
|
||||||
--================================================-- Log end to table --===================================================--
|
--================================================-- Log end to table --===================================================--
|
||||||
IF ((@LOGLEVEL in ('INFO')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
IF ((@LOGLEVEL in ('INFO')) and (@return_status is not null) and (@return_status_text is not null)) BEGIN
|
||||||
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'TBDD_BACKUP_DATABASES_LOG') BEGIN
|
INSERT INTO [TBDD_BACKUP_DATABASE_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
||||||
INSERT INTO [TBDD_BACKUP_DATABASES_LOG]([LOG_LEVEL],[MESSAGE1], [MESSAGE2], [MESSAGE3], [MESSAGE4], [ADDED_WHO], [ADDED_WHEN])
|
VALUES (@LOGLEVEL, 'closing', 'procedure', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
||||||
VALUES (@LOGLEVEL, 'closing', 'procedure', @return_status, @return_status_text, @MyProcedureName, GetDate());
|
|
||||||
END;
|
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
PRINT '';
|
PRINT '';
|
||||||
PRINT 'PROCEDURE - ' + @return_status_text;
|
PRINT @return_status_text;
|
||||||
PRINT '===============================';
|
PRINT '====================================================================================================';
|
||||||
|
|
||||||
Return @return_status;
|
Return @return_status;
|
||||||
|
|
||||||
Reference in New Issue
Block a user