Day 21 of 31 Days of Disaster Recovery: Who Deleted That Data?

Welcome back for day 21 of my 31 Days of Disaster Recovery series. Today I want to talk about trying to track down who deleted data from a table. This little investigation started out as a question on the #sqlhelp hash tag on Twitter from Wayne Sheffield (blog|@DBAWayne) whom I first met on SQLCruise Alaska 2012. The question was asking how to convert the page ID from fn_dump_db_log() to match the integer format for page ID in DBCC IND(). Where
read more

Day 20 of 31 Days of Disaster Recovery: The Case of the Backups That Wouldn't Restore

I have decided to spend day 20 of my 31 Days of Disaster Recovery series by relating a true tale from my harried past days of Production DBA Operations. This is a cautionary tale with an important moral. This is the case of the backups that wouldn’t restore. If you missed any of the earlier posts in my DR series, you can check them out here: 31 Days of disaster Recovery Does DBCC Automatically Use Existing Snapshot? Protection From Restoring
read more

Day 19 of 31 Days of Disaster Recovery: How Much Log Can a Backup Log

It’s day 19 of my 31 Days of Disaster Recovery series, and today I want to talk about how much log is in a backup file. A common misconception is that when you restore a backup, you get an exact copy of the database as it was when it was backed up. That’s mostly true, but there are exceptions to that. For example, if you restore a database to a new server, the TRUSTWORTHY property gets reset as does replication
read more

Day 18 of 31 Days of Disaster Recovery: How to CHECKDB Like a Boss

Day 18 of my 31 Days of Disaster Recovery series is drawing to a close. It’s 11:22 PM here, and I’ve been working feverishly to finish today’s post before the calendar flips over to tomorrow. This started out as sharing a simple script I use for running DBCC CHECKDB against all databases on a server, and like I tend to do, I thought of lots of things I wanted to add to it. I spent a several hours customizing my
read more

Day 17 of 31 Days of Disaster Recovery: When are Checksums Written to a Page

Today is day 17 of 31 Days of Disaster Recovery. The series has skipped a couple of days due to real life imposing itself, but we’re getting back on track by digging into the Checksum page verification option and offering up some proof that the checksum value doesn’t get written until the page is written to disk. You may also learn some cool tricks for looking at metadata information. Let’s explore. If you missed any of the earlier posts in
read more

Day 16 of 31 Days of Disaster Recovery: Disaster Recovery Gems From Around The Net

It’s day 16 of my series 31 Days of Disaster Recovery. I’ve seen a lot of great DR related posts recently. I want to do kind of a round-up of some of the other must-read disaster recovery posts and articles out there. Last Time CheckDB was Run by Jason Brimhall (blog|@SQLRNNR). This post is important because knowledge is power. Especially if you may not be the one directly responsible for the integrity checks at your job. This is a quick
read more

Day 15 of 31 Days of Disaster Recovery: Running DBCC CheckTable in Parallel Jobs

Welcome back to my 31 Days of Disaster Recovery series. Today is day 15, and I want to answer a question I was asked a while back. Paul Randal (blog|@PaulRandal) wrote a blog post explaining alternative options for checking integrity of a very large database if you are not able to run the full CHECKDB process, and the question was borne out of one of the recommendations by Paul. One of the tactics Paul recommends is breaking the process up
read more

Day 14 of 31 Days of Disaster Recovery: Fixing a Corrupt Tempdb

Welcome to day 14 of my 31 Days of Disaster Recovery series. I’ve previously discussed handling corruption for nonclustered indexes and allocation pages. Today, I’m going to talk about a specific corruption that is very simple to fix; however, it does mean taking the server offline briefly. How brief depends on a few things, such as is the corruption in the log file or the data file. And if it’s in the data file, is Instant File Initialization (IFI) enabled.
read more

Day 13 of 31 Days of Disaster Recovery: Standard Backup Scripts

Today’s post took longer to prepare than I had anticipated which is why day 13 is being published on day 14. This won’t derail the 31 Days of Disaster Recovery series, even if it runs over into February. Day 13’s topic is standard backup scripts. I’ve said on numerous occasions that the first thing a DBA should do when they inherit a new server is to make sure it has sufficient backups on it. Then later once everything is under
read more

Day 12 of 31 Days of Disaster Recovery: Extreme Disaster Recovery Training

Fittingly, today’s focus on disaster recovery as part of my 31 Days of Disaster Recovery is to announce a full day of training, Extreme Disaster Recovery, being offered at SQLBits XI. This training will be the only pre-conference session being led by two (2) Microsoft Certified Masters (SQL Server). I will be delivering this session along with my good friend and frequent cohort Argenis Fernandez (blog|@DBArgenis) with whom I have delivered 3 pre-conference sessions already. Extreme Disaster Recovery Here’s your
read more