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:
@@ -0,0 +1,2 @@
|
||||
sp_BackupDatabase 'GIM', 'C:\DbBackup\', 'F'
|
||||
GO
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user