Sql Server Powershell

I want to go to Dallas

I think there was a Redd Foxx joke about going to Dallas…but I digress..

I'm a sponge!

The folks at sqlskills.com are offering up free tuition to their 5-day Internals and Performance class in Dallas, February 21-25.  I would kill for a chance to take this class.  (seriously, email me at bender@dirtydeedsdonedirtcheap.com).  I’m not too sure about the bottomless tea part though.  I would imagine it would burn the nethers badly.

I’ve been absolutely devouring all the content that these guys have been throwing out lately, and would love a chance to learn it straight from the authors themselves.  I’ve watched pretty much all of their MCM training videos (some twice!).  I’ve also been studiously going through the Sql Server 2008 Internals book that they’ve co-authored.  Honestly, I didn’t know how much I didn’t know until I recently committed to learning everything I can about Sql Server.

Now, why I deserve this:

  1. I recently have stepped up into the Senior DBA position at my place of employment, hence my studiousness.
  2. Since undertaking said studiousness, I’ve found a forgotten love for learning.  I’m really really enjoying learning all the internals of Sql Server.  (I’m a born-again DBA of sorts I guess).
  3. My company won’t pay for it.
  4. I want to become a Sql Server MCM.  I’m trying really hard to get to that level.
  5. I just want to know everything about Sql Server!  I’m a sponge.
  6. I’m really excited about learning from Paul, Kimberly, Bob and even Brent!

Bender out.

Advertisements

PowerShell script to get only the most recent backups

Here’s a neat PowerShell script to grab only the most recent backup files.  Given a path, it will recurse the directories and only return the most recent *.bak file in all subdirectories.

$path = "H:\SourceDir"
$destPath = "\\Destination"

function CopyLastBackup
{
    try
    {
        Remove-Item "$destPath\*" -include "*.bak"
        $dirs = Get-ChildItem $path | where {$_.PSIsContainer} | where {$_.GetFiles().Count -ne 0}
        foreach($dir in $dirs)
        {
			$file = Get-ChildItem -LiteralPath $dir.FullName -include "*.bak" | sort CreationTime -Descending | select -First 1
        	Copy-Item -LiteralPath $file.FullName -Destination $destPath -force
            write-host $file 
        }
        return 0;
    }
    catch
    {
        write-host $error[0]
        return 1
    }
    
}


$ret = CopyLastBackup
if($ret -eq 1)
{
    throw "Failure"
}