Before I reinvent the wheel, I thought I'd check to see if any out there has
come up with a Powershell script for SQL-Server backups.
I want to convert from our old batch scripts and add the following capabilities:
1. Pass a parm so one script can be used for either full, diff or log
backups
2. Determine if the server is part of a cluster, and if the node is
active (I find the official "cluster setup" of TSM very cumbersome, so we just
perform a standard install on the cluster nodes and let the script determine
whether or not to run a backup job)
3. Enumerate and process all SQL Instances on the server (currently we
use a hard-coded file on each server with the names of all the instances)
4. Allow for the potential existence/use of 2 "exclude" files - one to
exclude entire SQL Instances, and one to exclude specific databases. The
database file would allow for each database to specify the exclusion of full,
diff or log backups (excluding fulls would automatically exclude diff & log).
5. Enumerate and process all databases in the Instance (skipping excluded
ones)
6. Skip backup of any database according to these rules:
a. Status not = "Normal" (e.g. offline or recovering databases)
b. Database is a Mirror of another
c. For Diff or Log backup, database is a SystemObject
(master/model/msdb/tempdb)
d. For Log backup, RecoveryModel = "Simple"
I would be very interested in the techniques anyone is using within Powershell
to accomplish any/all of these functions.
TIA,
Steve Schaub
Systems Engineer II, Windows Backup/Recovery
BlueCross BlueShield of Tennessee
-----------------------------------------------------
Please see the following link for the BlueCross BlueShield of Tennessee E-mail
disclaimer: http://www.bcbst.com/email_disclaimer.shtm
|