Aggiunte procedure per la creazione delle stored procedure per fare i backup e defrag indici più shrink, aggiunto anche file bat per la schedulazione delle operazioni.

git-svn-id: https://keyhammer.ath.cx/svn/WebGIM/trunk@132 3e04ef4b-3b25-4b6c-be27-bb5389ca777b
This commit is contained in:
marco
2009-03-11 16:32:17 +00:00
parent 01f8b4459a
commit 230a670eef
5 changed files with 116 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
sp_BackupDatabase 'GIM', 'C:\DbBackup\', 'F'
GO
+40
View File
@@ -0,0 +1,40 @@
USE [master]
GO
/****** Object: StoredProcedure [dbo].[sp_BackupDatabase] Script Date: 03/11/2009 17:05:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Marco Salvi
-- Create date: 10/03/2009
-- Description: Stored procedure per backup database
-- Parametro1: databaseName
-- Parametro2: backupType F=full, D=differential, L=log
-- =============================================
CREATE PROCEDURE [dbo].[sp_BackupDatabase]
@databaseName sysname, @directory varchar(500), @backupType CHAR(1)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @dateTime NVARCHAR(20)
SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
IF @backupType = 'F'
SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
' TO DISK = '''+@directory + @databaseName + '_Full_' + @dateTime + '.BAK'''
IF @backupType = 'D'
SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
' TO DISK = ''C:\DbBackup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
IF @backupType = 'L'
SET @sqlCommand = 'BACKUP LOG ' + @databaseName +
' TO DISK = ''C:\DbBackup\' + @databaseName + '_Log_' + @dateTime + '.TRN'''
EXECUTE sp_executesql @sqlCommand
END
@@ -0,0 +1,57 @@
USE [master]
GO
/****** Object: StoredProcedure [dbo].[sp_indiciAndShrink] Script Date: 03/11/2009 17:06:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Marco Salvi
-- Create date: 11/03/2009
-- Description: Stored procedure per ricostruire gli indici e fare lo shrink su un db
-- =============================================
CREATE PROCEDURE [dbo].[sp_indiciAndShrink]
(
@databaseName sysname
)
AS
BEGIN
exec('USE ' + @databaseName)
-- elimino eventuale tab temporanea preesistente
IF (SELECT COUNT(*) FROM TEMPDB..SYSOBJECTS WHERE NAME = '##TMP_nomiTabelle') > 0
BEGIN
DROP TABLE ##TMP_nomiTabelle
END
-- enumero le tab del db in una tab temporanea
SELECT IDENT = IDENTITY (INT,1,1), name
INTO ##TMP_nomiTabelle
FROM sys.Tables
-- eseguo reindicizzazione
DECLARE @VAR1 INT
SET @VAR1 = 1
WHILE @VAR1 < = ( SELECT COUNT(*) FROM ##TMP_nomiTabelle)
BEGIN
DECLARE @OBJECTNAME VARCHAR(256)
-- carico il nome della tab i-esima
SELECT @OBJECTNAME = name
FROM ##TMP_nomiTabelle
WHERE [IDENT] = @VAR1
-- rebuild indice
DBCC DBREINDEX(@OBJECTNAME)
-- incremento
SET @VAR1 = @VAR1 + 1
END
--shrink del db
DBCC SHRINKDATABASE (@databaseName)
END
@@ -0,0 +1,5 @@
USE GIM
GO
sp_indiciAndShrink 'GIM'
GO
+12
View File
@@ -0,0 +1,12 @@
rem elimino vecchio backup
cd C:\DbBackup\
del GIM_full.BAK
echo 'eliminato backup vecchio'
rem eseguo nuovo backup
sqlcmd -S localhost -E -i C:\Backup.sql
echo 'creato nuovo backup'
rem ottimizzo gli indici
sqlcmd -S localhost -E -i C:\indiciAndShrink.sql