SQLServerCentral - www.sqlservercentral.com

A community of more than 1,600,000 database professionals and growing

Featured Contents

The Voice of the DBA

Problems With Database Problems

Gitlab had a database problem recently. I'm sure you read about it. There have been commentaries from many people, including Brent Ozar and Mike Walsh. There are many ways to look at this outage and data loss (the extent of which is not known), but I'd like to stop and focus on a couple items that I think stand out: competence and care. I don't know how we prevent problems, but I certainly think these items are worth pondering.

First, there is the question of competence. I have no idea what the skills or experience are for the GitLab staff that responded to the event. They certainly seem to understand something about replication or backup, but are they skilled enough to understand deeply about the mechanics of PostgreSQL (or their scripting) to determine where things were broken? I have no idea, and without more information I don't question competence. The thing to be aware of, whether for this incident or your own, are the people working the problem well enough trained to deal with the issues. Perhaps most important, do they realize when they have reached the limit of their expertise? Do they know when (and are they willing to) to call in someone else or contact a support resource?

I saw a note from Brent Ozar that the GitLab job description for a database specialist doesn't mention backups. It does say a solid understanding of the parts of the database, which should include backups. I'd hope that anyone hiring a database specialist would inquire how someone deals with backups, especially in a distributed environment. It's great that you give database staff a chance to work on the application, tune code, build interesting solutions to help the company, but their core responsibility and focus needs to be on the database being stable, which includes DR situations.

The second item that I worry about is the care someone takes when performing a task. In this case, any of us might have been tired at 9pm. Especially if we'd spent the day working on a replication setup, which can be frustrating. Responding to a page, especially for a security incident can be stressful. Solving an issue like that, and then having performance problems crop up is disturbing. Anyone might question their actions, wondering if they had made a mistake and caused the issue. I know when multiple problems appear in a short time, many of us would struggle to decide if two issues are coincidental or correlated. I'm glad that after the mistakes, the individual responsible handed off control to others. As with any job, once you've made a serious mistake, you may not perform at the same level you normally do, and it's good to step back. Kudos, once again.

The ultimate mistake, and one that many of us have made, is to run a command on the wrong server. Whether you use a GUI or command line, it's easy to mistake db1 for db2. I've tried color coding for connections, separate accounts for production, even trying to get in the habit or looking at the connection string before running a command, but in the heat of the moment, nothing really works. People will make mistakes, which is why it becomes dangerous to allow any one person to respond in a production crisis. As a manager, I've wanted employees to take care, and use a partner to double check code before you actually execute anything.

And above all, log your actions. I have to say I'm very impressed with GitLab's handling of the incident and their live disclosure. This is what I like to see during a war room. Lots of notes, open disclosure, and an timeline that allows us to re-examine the incident later and learn from the response. This is an area that too few companies want to spend resources on, but learning from good and bad choices helps distribute knowledge and prepare more people for the future. I'd like to see more disclosure of post-incident review from many companies, especially cloud vendors. I can understand not disclosing too much information while the crisis is underway, as I'd worry some security related information might be released, but afterwards, I think customers deserve to know just how well their vendor deals with issues.

Steve Jones from SQLServerCentral.com

Join the debate, and respond to today's editorial on the forums


The Voice of the DBA Podcast

Listen to the MP3 Audio ( 6.1MB) podcast or subscribe to the feed at iTunes and Libsyn. feed

The Voice of the DBA podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music.

ADVERTISEMENT
SQL Toolbelt

Not enough hours in your day?

The SQL Toolbelt lets you reduce the time spent on SQL Server development and administration. Cambridge University developer David Spaxman, for example, says: “I’m saving 10-12 hours a week using the SQL Toolbelt.” Learn how you can double your productivity, speed up deployments and protect your data. Download a free trial.

Featured Contents

 

How to import data to Azure SQL Data Warehouse using SSIS

Daniel Calbimonte from SQLServerCentral.com

In this article, we will use SSIS to import a CSV file to Azure SQL Data Warehouse. More »


 

How to Build Your First SQL Server Virtual Lab in Windows Azure

Additional Articles from SimpleTalk

If you are a DBA who hasn't so far dived in head-first into using Azure, it is worth setting up an Azure 'Virtual Lab' environment the easy way, using a template. This will then allow you to experiment, try things out with SQL Azure, and get familiar with Resource Groups. Joshua shows how to build a virtual lab, from the ground up in the first of a series that aims to give you a grounding in Azure. More »


 

From the SQLServerCentral Blogs - Dynamically Changing Shapes in Power BI

Koen Verbeeck from SQLServerCentral Blogs

UPDATE: I also published a blog post using a DAX only approach. Check it out here. Recently someone had a question... More »


 

From the SQLServerCentral Blogs - Improve performance by replacing temp tables with memory optimized tables - Part 2

SQL DBA in HK from SQLServerCentral Blogs

Follow my last post which can be found here (http://www.sqlservercentral.com/blogs/denniss-sql-blog-1/2017/02/01/improve-performance-by-replacing-temp-tables-with-memory-optimized-tables-part-1/), we discussed about replacing table variable by memory optimized table, this... More »

Question of the Day

Today's Question (by Igor Micev):

MIXED_PAGE_ALLOCATION is a new database option introduced in SQL Server 2016. What is true for this option?

Think you know the answer? Click here, and find out if you are right.


We keep track of your score to give you bragging rights against your peers.
This question is worth 1 point in this category: database options.

We'd love to give you credit for your own question and answer.
To submit a QOTD, simply log in to the Contribution Center.

Yesterday's Question of the Day

Yesterday's Question (by Steve Jones):

Why does DBCC in SQL Sever 2016 run faster by default?

Answer: Checks on filtered indexes and persisted computed columns are not run

Explanation:

Some operations are very expensive for DBCC. Among these are the checks for filtered indexes, persisted computed columns, UDT columns and more. These are skipped by default. You can run these with the EXTENDED_LOGICAL_CHECKS option.

Ref: SQL 2016 – It Just Runs Faster: DBCC Extended Checks - https://blogs.msdn.microsoft.com/psssql/2016/03/01/sql-2016-it-just-runs-faster-dbcc-extended-checks/


» Discuss this question and answer on the forums

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.

SQL Server 2016 : SQL Server 2016 - Administration

Hardening SQL Server - Hello everyone! Does anyone here hardening project of sql server? What major parts of this project and what is your recommendation? If you...


SQL Server 2016 : SQL Server 2016 - Development and T-SQL

Non cluster index vs non cluster index include - Hello all, I noticed that there is 2 ways to create non cluster index 1) Regular 2) with include What is the difference between...

Migrating 300+ databases. Need a script to transfer user permissions for all the users across all the databases - Hello experts, I am soon going to be migrating 300+ databases off of are old sql server to the new sql...

Query never completes with CXPACKET waits - Hi, I have a query that runs in under 40 minutes on our test server but never completes on the production...


SQL Server 2014 : Administration - SQL Server 2014

Comparing Jobs list between AlwaysOn Replicas - Hi all, As the topic goes, I am not referring to auto mated job syncing between the primary and secondary replica,...

Massive disk vs. multiple disks? - In the "old days" is was common for MDF/NDF files of large databases or MDFs of different databases to be spread...

Unplanned failover of AG - Last night our AG failed over to our passive node (same subnet). This isn't a problem as our data loads...

SQL Server DBA training. - Hello everyone, I have a question about the SQL Server training. I have been working as a IT helpdesk for...


SQL Server 2014 : Development - SQL Server 2014

Trouble with openxml query - Hello, I have an XML document formed like the attachment.  I have it in a table which ddl is: CREATE...


SQL Server 2012 : SQL 2012 - General

What is perfect way to declare variable data type in asp.net to match SQL data type? - From asp.net project I need to insert data into one table in SQL server which has a lot of data...

IO Performance Problem - We have a periodic problem on our sql server that I'm totally stumped on. This is on SQL Server 2012,...

All disk space used, after deleting rows the table has 6GB "unused"space but I cannot release it or shrink the mdf. - Dear, We have a table with 100 million rows and 1 clustered index (primary key). The hard disk is full. We are...


SQL Server 2012 : SQL Server 2012 - T-SQL

Remove partitioning - We have a large table where development created a partitioned unique non-clustered index years ago.  The table itself shows as...


SQL Server 2008 : SQL Server 2008 - General

Truncating transaction logs - I have a MS SQL 2008 database, remote hosted. Recently the host upgraded the server platform and the new CP...

High Memory Usage - In our production server , memory usage is around 95% even tho it has been capped (8 GB ) . Total memory 12...


Reporting Services : SSRS 2012

Sys.WebForms.PageRequestManagerServerErrorException - Error Question - I'm getting this error below when trying to run a report from production Report Server, but works fine in Staging...


Reporting Services : SSRS 2014

How to add a custom web portal url? - We have just completed a brand new SSRS installation. By default web portal url says http://servername/reports but is there a way to change...


Reporting Services : SSRS 2016

SSRS 2016 : MS Edge and IE 11 - We upgraded our BI server to use SQL 2016. The reports we built on SSRS 2016 on the SSRS server has...

FROM SSRS 2012 TO SSRS 2016 - hi all, i am using today in ssrs 2012 and i want to upgrade to ssrs 2016... but as i...


Database Design : Relational Theory

Is having a lookup table that is for multiple entities a common practice? - I've been programming and designing databases of various sorts for several years. And I've been on teams who have designed...

This email has been sent to newsletter@newslettercollector.com. To be removed from this list, please click here.
If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com.
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.
This transmission is ©2015 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
Contact: webmaster@sqlservercentral.com