Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 

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

 

Comments

Leave a comment on the original post [www.sqlserver-dba.com, opens in a new window]

Loading comments...