Monthly Archives: March 2013
While preparing my newest presentation, I thought the best way to teach backup and recovery is through humorous stories revolving around horrific backup and/or recovery incidents. I have a couple, but I thought I would open this up to the SQL community and see if there were some really outrageous ones out there. I can cite you (or not if you choose to remain anonymous) in my presentation and tell your story to help teach the world about SQL Server Backup and Recovery. You can simply e-mail me at Ed at SQLGator.com or comment on this post.
Thanks for your help.
In less than a month from today, I am honored to be presenting a new session called “Backup Strategies are for Losers!” at SQL Saturday #215 in Jacksonville, Florida. This is a new session and the first session created after attending Buck Woody’s (B|T) workshop on how to be a better speaker. If you came out and saw some of my earlier sessions over the last year, then please come back out and let me know what you think.
If you haven’t registered yet, what are you waiting for it is free training! See you there!
Every day at lunch I walk around the perimeter of the work compound in the fresh sunshine. I have done this for over three months now. Today, however, I went in the reverse direction and everything appeared different. Obviously, it was the same compound with all of the same buildings and the same roads. But when you approach it from a different prospective, your view is altered. Today I saw things from a different light and it appeared as a new shining vista, fresh and renewed.
Work is the same dynamic, some times we need simply to walk in a different direction to get a new perspective. Sit with your developers and see how they see the data. Find out what problems they are having from their point of view. Look at your environment from a different perspective and maybe you will find a new shining vista too. Enjoy!
Growing up with a stepfather from St. Louis, Missouri, we went there at least every summer it seemed as a small child. These were fond vacations from my memories: eating at the McDonald’s on the Mississippi River, going up in the Gateway Arch, fishing in the Ozarks, catching a Cardinal game in the old Busch Stadium, going to the zoo, and who could forget all of the museums. Great memories indeed.
My wife and I were trying to decide what new adventure we would take together on our anniversary. Being that her mother is originally from St. Louis and she hasn’t seen her family there in about twelve years, we thought this would make a great vacation getaway. I could meet some of her family, take in a Cardinals game on opening day in the NEW Busch Stadium, and ultimately relive a great many childhood memories with my wife who experienced many of those same memories separately.
What would make this even better? Meeting up with some #SQLFamily members or even a SQL Server User Group meeting along the way. No such luck in St. Louis as apparently they only meet once a quarter and their meeting was this month. Does anyone know of any meetings nearby or on the way? Any of my #SQLFamily on the way or close by that they would want to meet up? I will be coming through Atlanta as well. Maybe we can get together? Enjoy!
Today I began documenting my backup and recovery strategy for my servers. If you have not documented your strategy, take my advice and do it. This should include the following items:
- Retention schedule
- Recovery models
- Disaster recovery plans
- RPO and RTO or SLAs
- Identify your backup schedule
- Identify your recovery schedule
- Identify offsite storage options and retention
- Identify your compression strategy
- Identify any third party vendor tools
I hope this helps. Enjoy!
Thinking today about a new area to cover on this site and I thought dynamic management views (or DMVs) was a good area to cover next. I was looking at some documentation today for some DMVs and I realized that there is an easy way to think about them and their function.
- sys.dm_exec_* These provide information about sessions, connections, query executions and requests.
- sys.dm_os_* These provide information on OS related information
- sys.dm_io_* These provide input/output process information
- sys.dm_tran_* These provide transaction information
- sys.dm_db_* These provide database information
Enjoy and stay tune for more DMV information.
I have written in the past about the MAP Toolkit (Microsoft Assessment and Planning) and how it helps with licensing issues including core counts. With that being said, it is time for us to renew our Software Assurance maintenance agreement and this was the original reason that I installed the MAP Toolkit a couple of months ago.
This week I rescanned all of my instances to figure out how many cores we had licensed and for which version. I wanted to get all of my documentation ready to go to our contract manager when I noticed a new server that had 24 Enterprise cores that I had never heard of before. My supervisor had never heard of the box either.
When I logged into the box, sure enough it had SQL Server installed. The server was for a monitoring tool and when the administrators installed the software on the box instead of asking me where they could install the database they found a disk and installed SQL Server themselves. Unlicensed. On the same box as the software. Without telling anyone.
When the contract manager told them how much the 24 cores would cost their department they quickly called me and asked me to kindly move their 13 GB database to one of my other servers. It just happened recently because I scan the network every few months and had never seen this before. Not only did they put us in jeopardy with our licensing, they had no backups setup for the database. When confronted they said yeah that was taking up too much space on the disk.
The lesson here today boys and girls is to scan your instances and look for unknown installations regularly. Carry on and enjoy!
Recently, I heard about a couple of developers that were using the stored procedure SP_SpaceUsed to monitor available disk space. They had requested additional disk space because the utility had told them that there was only 4mb of unallocated space. Try not to laugh because these could be YOUR developers.
Last month I blogged about using the procedure to show you the estimated backup size for the database. But these developers were confusing unallocated space, which is actually just space in the database that has not been allocated. For example, when you set a autogrowth interval and your database grows in accordance with the interval you will now have unallocated space until the database takes that free space. Enjoy!
|<Database Name>||2449.81 MB||40.45 MB|
|2396472 KB||2386856 KB||5144 KB||4472 KB|
To be blunt, I am horrid in interviews. You and I can have a nice conversation normally, but call it an interview and I am a blundering idiot. Nerves. Anxiety. Judgement. If it wasn’t so sad it would make a great farcical comedy. Oh I have gotten better over the years, but at almost every stop someone took a chance on me and later commented that they were glad they did because I totally blew the interview. It would drive me mad to think about all of the lost opportunities over the years but everything happens for a reason.
In many of my positions we have wondered how some people got their jobs and it almost always boiled down to the fact that they interviewed well for it was obvious that it was not their skill. Which begs the question, does the interview even work anymore?
Many people have told me that it is a good indicator of personality and seeing if the person will mesh well with the team. That smacks of prejudice to me. If your team is like a fraternity house, who will show you that personality in the interview process? How will you know if you have a Blutarsky or a Dorfman or even a Chip Diller (sorry could not resist a Kevin Bacon Animal House reference). Enjoy!
Recently, I was asked the difference between a primary key and a unique key and this seemed like a good topic for a blog post.
First of all, the primary key is the key that will uniquely identify the record and enforce entity integrity. By default this will create a clustered index on the column or columns selected. The unique key, like the primary key, will be unique, however it creates a non-clustered index by default. The unique key will also allow one NULL record where the primary key will not allow any.
In addition, there is only one primary key per table, whereas you can have multiple unique keys. Enjoy!