Introduction to Integrity: Corruption in Clustered Indexes and Heaps

For day three of this six part series Introduction to Integrity, sponsored by Idera, we will take a look at my number two integrity issue: corruption in clustered indexes or heaps. Unlike corruption in allocation pages, we have several options for dealing with this type of corruption. This particular corruption issue does require a lot more care than many of the others types we will look at in this series. If the corruption occurs in index ID of 0 or
read more

Introduction to Integrity: Corruption in Allocation Pages

Welcome back for day two of this six part series Introduction to Integrity, sponsored by Idera. In this post, I want to dig into the first integrity issue, corruption in allocation pages. If you run the DBCC CHECKDB command and get errors, I isolate the most important errors (Level 16) and look at the page IDs in the errors. one of the first things I want to know is what type of page is corrupted. As I said in day
read more

Introduction to Integrity: Interpreting DBCC CHECKDB Results

I want to start a short 6 post series to serve as an introduction to integrity in SQL Server. Most posts that I write on this subject are for intermediate or advanced users, so this is a break from the normal for me. I think it is a good break though because I think there are very few introductory posts or articles on this subject. I was inspired to write this introductory series when I alpha-tested a new free tool
read more

DBCC CHECKDB … Terminated Abnormally Due to Error State 6

I recently encountered a DBCC CHECKDB failure with a fairly non-specific failure message. The error message said it terminated abnormally with error state 6. I felt I knew what the underlying cause was, but I did some web searches trying to validate what I suspected. I could find nothing that told me what error state 6 meant. The actual text of the error message was: DBCC CHECKDB (<Database name>) WITH all_errormsgs, no_infomsgs, physical_only, tableresults executed by SQLLaptopSQLSoldier terminated abnormally due
read more

Day 31 of 31 Days of Disaster Recovery: Backup and Restore of the Resource Database

It has been a long journey to the final day my 31 Days of Disaster Recovery series, but we have finally reached the final post, day 31. My final topic for the series is born out of a conversation I had today with my good friend and fellow DBA, Ed Watson (blog|@SQLGator). today, I want to talk about backing up and restoring the resource database. The resource database stores critical system objects safely separated away from the master database. It
read more

Day 30 of 31 Days of Disaster Recovery (T-SQL Tuesday #40): Using Partial Availability and Initialize from Backup to Replicate a Partial Database

It’s been a tough and long road to 31 Days of Disaster Recovery. It’s been very difficult coming up with quality topic ideas for the series as we near the end. For day 30 of the series, I am combining a post on performing piecemeal restores with a post on filegroups for T-SQL Tuesday #40 and a post on replication. In case you’re not familiar with T-SQL Tuesday, let me enlighten you. This blog entry is participating in T-SQL Tuesday
read more

Day 29 of 31 Days of Disaster Recovery: Using Database Snapshots to Restore Replicated Databases in Test

For day 29 of my 31 Days of Disaster Recover series, I want to talk about restoring replicated databases from database snapshots. Someone asked me recently if I had any recommendations for speeding up their unit testing on replicated databases. He has to run unit tests over and over on replicated databases to ensure that they deploy successfully in a replicated environment. His current process was adding too much time to the process and automating it was difficult for him
read more

Day 28 of 31 Days of Disaster Recovery: Recovering SQL if the Tempdb Drive Dies

Welcome to day 28 of my series 31 Days of Disaster Recovery. Today I want to talk about recovering SQL Server if your tempdb drive suddenly dies. SQL Server won’t start if it can’t start up tempdb, so it poses a challenge if you can’t get the drive up and running again. 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
read more

Day 27 of 31 Days of Disaster Recovery: Restoring Part of a Database

Today is day 27 of my series 31 Days of Disaster Recovery, and I want to talk about restoring a partial database to a server. If you have a very large database with many filegroups, and you need to restore just part of the database, then you can perform a partial restore (Enterprise Edition required) to only restore minimum amount of filegroups online to get access to the part you need. A good use case for this would be if
read more

Day 26 of 31 Days of Disaster Recovery: The Mysterious Case of the Long Backup

Welcome back for day 26 of my series 31 Days of Disaster Recovery. Today I want to share a tale of a mysterious backup that was running too long, and as the SAN admin reported, nothing had changed in terms of configuration of the SAN or our LUNs. We eventually tracked down the issue, and it was something none of of us had even considered. Likewise, it was something we never even thought to look for at the time we
read more