Blog Post

sql server scripts and managing databases

,

Managing a large SQL Server inventory requires an efficient management processes.

Following on from DBA  productivity and less is more  , this post outlines the system I use to manage the DBA scripts across the database server environment

 1)       Develop a script library covering the essentials of DBA database management . Tasks include : Reindexing , statistics, defragementation, checkdb , kill user processes, kill all db connections  and much more..

My current version of SQL_TOOLS has 345 scripts covering a wide range of  DBA tasks

2)       Create an installation T-SQL script. The purpose is to deploy the scripts onto the SQL Server Instance via command line .

An example of the script could be as follows . The script I actually use doesn’t allow the DROP DATABASE as the logon account doesn’t have DROP DATABASE privileges , to avoid any mistakes

 This example script assumes you have the five scripts mentioned in the same directory :

/* SCRIPT: SQL_TOOLS_INSTALL.sql *//* BUILD A THE SQL-TOOLS DATABASE */-- This is the main caller for each script
SET NOCOUNT ON
GO
PRINT 'CREATING DATABASE'
IF EXISTS (SELECT 1 FROM SYS.DATABASES WHERE NAME = 'SQL_TOOLS')
DROP DATABASE SQL_TOOLS
GO
CREATE DATABASE SQL_TOOLS
GO
USE SQL_TOOLS
GO
:On Error exit
:r isp_ALTER_INDEX_main.sql
:r isp_UPDATE_STATISTICS_main.sql
:r isp_DBCC_CHECKDB.sql
:r isp_KILL_ALL_DBCONNECTIONS.sql
:r isp_KILL_USER_PROCESSES.sql
PRINT 'SQL_TOOLS DATABASE CREATE IS COMPLETE'
GO

 

3) Create a batch file installation script.  This is the script you’ll execute from the command line – which will trigger the script in step 2.

 

       
An example is : 
       /* SCRIPT: SQL_TOOLS_INSTALL.bat */       /* Excecute from the command line */       /*input parameter1 = ”
SQLCMD -E -d master -S %1 -i "SQL_TOOLS_INSTALL.sql"
PAUSE

 

4)       Once the scripts are deployed onto the SQL Server Instance – you have a script library available to a)  create scheduled or ad-hoc tasks b) deploy secure scripts for troubleshooting , analysis and reporting

The key to this system is  a) maintaining a centralised script library , test and proven on lower environments.  b) rapid deployment onto a sql server environment c) Securing the scripts and limiting execution rights to relevant accounts

This approach is only one part of a strategy . Further considerations are scheduling of scripts , managing installation, disaster recovery and inventory management

See Also

Should libraries be installed on database servers ?

Powershell - run script on all sql servers

 

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating