Wow, what a decade! We’ve seen quite a bit of change in our world (9/11, a war or two, minority as President) and I’ve had quite an eventful decade myself. Here’s a quick list of stuff I can remember off-hand that’s happened in the last 10 years (order not necessarily linear, more stream of thought at time of writing):
Visited France
Graduated high school (I know, many of you are going to hate me for being this young)
Visited England
Visited Canada (term “visited” is loose here, basically drank and ran amok as only college kids could)
Accepted an offer to co-author a book on Policy Based Management ( Apress.com )*
*Thanks Colin for reminding me!
I’m sure I’m missing quite a few things but man its been a crazy 10 years! In that time I’ve done a lot of growing up (insert jokes on my age here) and I’m grateful for everything that has happened and all the people I’ve met along the way. It’s been quite a journey and this is only the beginning. This last year alone has been absolutely amazing what with celebrating my 1 year wedding anniversary and all of day-in-day-out interaction with the SQL community. I’m shocked about how fast these last 10 years has seemingly flown by and I’m looking forward to the next 10! Hopefully you guys will still be along for the ride as I continue my adventures in blogging and blowing up your Twitter feeds.
This is just a quick post to serve as a warning sign to those who are DBAs in shops where you routinely get vendor pre-packaged databases (which should encompass about 99% of you). Today we had a vendor installing a new application which required a SQL database, to which I am ever thankful. Unfortunately this database, as I came to discover after a discussion with my junior DBA, that it was actually a restore of a database that was a created after mashing a bunch of data together from disparate systems. Ouch.
Well long story short after the install I took a look at the database server’s (disclaimer: I put them on a shared SQL instance since the app is relatively small) error log to make sure nothing crazy was happening since during the install they had issues with account creations. FYI that turned out to be a small “we need sysadmin” rights issue to which I said ‘NAY!’ and granted them temp rights to complete their install and then revoked those rights when it was complete. Anyhow the error log showed me something interesting:
Message
SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'Bound Trees' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.
Well that’s interesting. I quickly Banged it out and the first solution I found was a KB article (KB917828) that said these were “normal” messages you’d see in a database restored starting from SQL 2005 SP2 and upwards. I read on as I needed to know WHY these messages appeared and BAM, something hit me and sent off alarms:
The whole procedure cache is cleared when certain database level operations are performed in the following scenarios:
A database has the AUTO_CLOSE database option set to ON. When no user connection references or uses the database, the background task tries to close and shut down the database automatically.
Auto_close enabled on a database on my server? NOT ON MY WATCH! I quickly jumped over the database options and sure enough not only was AUTO_CLOSE enabled but AUTO_SHRINK as well. For those of you curious as to why I’d freak out about this, these options are really resource intensive and this being a shared instance I really don’t need that hassle. If you’d like to read about how/why these two options are bad check out Tim Ford’s blog at http://www.ford-it.com (aka @SQLAgentman on Twitter) and read his post on Dealing with SQL Shrinkage.
So remember kids: check, re-check and double-check what your vendor is doing when they setup databases on your systems. Ideally they should provide scripts for you to be able to validate and evaluate before you just “slap it in” to your production environment.
This post is actually going to be a copy/paste job from a comment I left on Colin Stasiuk’s (Twitter | Blog) post encouraging his user group, EDMPASS (Edmonton chapter of SQL PASS user group), to jump on the Twitter bandwagon before their next meeting for hockey tickets. In his post Colin asks his members to join Twitter, if they haven’t already, follow at least 10 SQL Tweeps, and share a story of a positive experience they had with fellow SQL Tweeps. In the past year I’ve come to find that Twitter has become an invaluable tool for me professionally as I can get many quick answers and sometimes (as you’ll see below) even more complicated issues resolved. Without further ado here’s my tale:
I’m really not eligible but I’ll share a story that I used during my SQL+Twitter talk at SQLSaturday (and also whenever I tell anyone about the value of Twitter).
For those who don’t know Paul Randal (@paulrandal on Twitter), I liken him as such: If the SQL World were the Star Wars Universe he and Kimberly Tripp (@kimberlyLTripp on Twitter) would sit on the Jedi Council. That being said they’re pretty important in the SQL world.
One fine day I got a call from a coworker whose server had run out of space because the transaction log file had grown too much (whoops). Rather than call me to fix the problem he did the thing all DBAs dread…he deleted the .LDF file and thought restarting SQL would rebuild a new one. Needless to say this pained me deeply. I tweeted my plight to the world (as I do whenever I’m working on something interesting) and Paul responded. Now the reason this was so exciting to me is for a few reasons: 1-This guy WROTE the code for DBCC CHECKDB and knows every nook and cranny of how the database engine works and how/why corruptions happen and how to fix them. If you’re interested in the technical bits of the story check out Paul’s blog post on it: http://www.sqlskills.com/BLOGS/PAUL/post/A-sad-tale-of-mis-steps-and-corruption-(from-today).aspx
Long story short, thanks to the relationships I’ve fostered with fellow SQL professionals I got world-class, one-on-one help (he and I emailed back/forth that afternoon while he walked me through what to look for, commands to run, etc.) and all for free. Simply put I cannot stress enough how much Twitter has enhanced my worklife and helped me to be a better DBA as now I have the power of so many sql resources at my fingertips almost instantly. Outside of SQL I also had another great experience the other day with Shay Levy (@shaylevy), Powershell guru extraordinaire. I don’t know PS well yet and he connected with me via Google voice chat and he helped review the script I was writing with me. Oh yeah, did I mention that Shay lives in Israel?!? Yeah, international help FTW!!!!
Lastly how can I forget my connection with you Colin? Another international connection forged from the fires of Twitter. Now thanks to our connecting via Twitter you and I are collaborating with yet another SQL Tweep on writing a Policy Based Management book. I really should just copy/paste this on to my blog and make it a post as I’ve apparently rambled on enough for this.
So there you have it kids! Do you have a positive story from Twitter you’d like to share? I’d love to hear about it so leave your comments/stories below.
Brent Ozar (@Brento) and Aaron Nelson (@sqlvariant) were talking discussing on Twitter the creation of dedicated hashtag for those who need help with SQL Server issues. As Brent is known for doing, he magically whipped up a blog post on the matter explaining how this new hashtag, #SQLHELP, should be used. I highly recommend you head over to Brent’s blog and read up on how to use #SQLHelp. I’ve found Twitter to be an invaluable tool for getting quick responses to any SQL (and non-SQL as well) questions I have. If anything this should be a great hashtag to search on and show to management as a good business-value for Twitter in the workplace!
Good day students! Unfortunately your professor who was supposed to cover indexes (that’s a pun, you’ll learn why in the following lessons) fell ill so we had to call in a guest professor. I’m honored to introduce to you professor Gail Shaw (Blog | Interview)! Gail has written a series of articles on indexes at SQLServerCentral.com. In order to read these articles you will have to create an account, don’t worry it’s free and HIGHLY recommended as SQL Server Central has some of the best SQL material around!
So without further ado, here are your indexing lessons for the week:
First off I apologize wholeheartedly about the lateness of this post. Turns out I have a day job as well (go figure!). Anyhow thus far we’ve talked about the past in the history of SQL Server, we’ve discussed the present state of affairs in PASS and the events currently going on in the state of SQL Server knowledge and development, and now we’re going to discuss the future and that future is you!
Ok that last line came off a bit hokey but seriously folks, you really ARE the future of SQL Server and PASS. This year we’ve seen some great strides with PASS with the re-branding and refocusing of the Virtual Chapters. The Virtual Chapters, as was mentioned in the last article, are chapters that meet online and are focused on several aspects of SQL Server such as Administration, Application Development, Women in Technology, Virtualization, etc. Another thing that we learned through recent PASS elections campaignmadness process is just how passionate we can be about our organization. We’ve also seen the passion from members come forth in form of blog posts such as Brent Ozar’s post ‘What Community Means to Me‘.
Getting Involved
But that covers how others feel and contribute, how do you fit in? Well first off get involved! Be it something as small as communicating with others via your social network of choice (i.e. Twitter, Facebook, LinkedIn) start connecting with other SQL professionals. I know, for me, the relationships I’ve fostered via Twitter have been invaluable for me. I’ve found that not only it pays off for day to day questions but it also makes it much easier to transition to meeting folks “in meatspace” such as PASS Summit, SQLSaturday or user group events. Which brings me to my next point, local user groups are great resources. You can check the PASS Chapters website to see the list of the official PASS chapters all over the world. For those not familiar with user groups, these are groups that meet on a regular basis (typically about once a month) and they share information and network on particular topics. In our case we have user groups that are SQL Server focused (database administrators, developers, architects, etc.) as well as groups dedicated to SQL Server Business Intelligence. Attending user groups is a fantastic way to arm yourself with knowledge for free (as well as food and swag, hehe) as at these meetings the usual meeting structure includes having someone come in and speak on a particular topic to the group. In addition to the learning you get from these presentations you can get so much more by networking with your fellow SQL peers. This is a fantastic way to solve real-world problems as others in your field share problems and solutions they’re working on or have come across. No matter what your level of SQL expertise be it someone who has never even opened SQL Server before or someone who has been working with the product for 10+ years I highly encourage you to participate in your local user groups.
If there is no chapter in your area you can set one up yourself. Worried you need to be a SQL guru to do so? Let me alleviate your worries and tell you you don’t. One of the best stories I heard this year came from Bonnie Allard ( Twitter | LinkedIn), the chapter leader of the Spacecoast SQL Server User group. Bonnie actually came into SQL Server with no prior experience so in order to learn it she setup her own test systems at home and just kept playing with the product to get herself familiarized with it. After attending a SQLSaturday event, Bonnie decided to setup a SQL User group in her area (they are located in Melbourne, Florida) as the next closest group was Orlando which was over an hour away. Although the group is small Bonnie has shown great dedication to her craft, PASS and the SQL Community as a whole. If you are interested in setting up a group contact your local Regional Mentor to get started. You can find the regional mentors by clicking on your respective region on the Chapters page. If you have any questions you can contact Blythe Morrow (Email), the Communities coordinator for PASS Headquarters, and she’ll connect you to the proper folks.
Volunteer Work
So we’ve talked about PASS as a whole as well as the local level branches of PASS in local user groups but how else can you continue to pitch in? Well PASS is a global organization and they are always in need of good volunteers to pitch in be it something as simple as helping them put together a PowerPoint for a keynote or as much as volunteering at the Summit to help guide attendees around. Volunteers are the lifeline of PASS and so they can always use as many as possible to help out! If you’re interested in volunteering check out the Volunteers page at the PASS website or contact Blythe Morrow for more opportunities.
Just Do It!
Bottom line is you don’t need to be a Super person with 100+ titles to be involved. Best way to get started is to just do it! Many of the SQL experts you see in the community started off just like you. One of the greatest things about being part of the PASS and SQL community is that you get so much more in return the more you put in to it. So get out there and volunteer, speak, blog, tweet, whatever as long as you get involved! Maybe I’ll see you at the Summit next year and you can relay your own story of how you setup a new PASS chapter or how you got involved with PASS, I’d love to hear them all.
Update: Jeremiah Peschka (Blog | Twitter), PASS Board Member and all-around awesome guy, just posted a blog about volunteering with PASS which you should definitely check out.
Well last week was rather hectic and with all the PASS Summit madness one thing seems to have been lost in the mix: The PASS Log Reader Awards!
For those not familiar with this contest you can read the official announcements of the contest here (Brent Ozar’s post), here (Andy Warren’s post), and here (Jeremiah Peschka’s post). Don’t worry, I’ll wait until you come back. You back? Cool. Alright now that you know what it’s all about let’s talk about the exciting part: the winners! Yup, last week at the beginning of the week the winners were announced. Now thanks to the magic of the interwebs and copy/paste feature here are the results (courtesy of Brent Ozar)
So first off big congratulations not only to all the winners but anyone and everyone that submitted entries! Thank you all so much for your blogging efforts, keep it up. I’m also very honored to have been named a runner up in the New Blog category. I’d like to thank all 12 of you who read this blog as well as Brent, Andy and Jeremiah for putting this together. I highly recommend you check out all of the blogs listed above as they are clearly of high quality so make sure you check them out.
In addition to this great contest you should also check out PASS board member Tom LaRock’s Blogger Rankings to keep up with the cream of the SQL crop in the blogging community.
On one final note there was an entry I personally should have won an award for most creative posting of all time (queue Kanye) and this was David Stein’s (Twitter | Blog) entry “Encylopedia Brown and the Case of Data Corruption“. If you haven’t read it go read it right now as its (as Tom LaRock/Brent Ozar would say) pure liquid awesome.
Welcome back students! In our last lesson we covered the history of SQL Server, the product. This is important stuff to know in order to understand the evolution of the technology you’re working with. SQL Server has made many strides and it continues to do so to this day. Today’s lesson we’re going to cover current events. The reason we’re covering current events is because this past week was the annual conference for PASS called the PASS Community Summit. PASS Summit Unite 2009 is the largest, most focused, and intensive Microsoft SQL Server conference in the world.
Sounds great doesn’t it? Well you might be asking yourself: What is PASS? I’m glad you asked! PASS stands for the Professional Association of SQL Server. PASS is an independent, not-for-profit association, dedicated to supporting, educating, and promoting the Microsoft SQL Server community. From local user groups and special interest groups (Virtual Chapters) to webcasts and the annual PASS Community Summit – the largest gathering of SQL Server professionals in the world – PASS is dedicated to helping its members Connect, Share, and Learn by:
Facilitating member networking and exchange of information through our websites, Chapters, annual Summits, regional and local events, and virtual communities
Working with Microsoft to influence the evolution of SQL Server products and services
Delivering high quality, up-to-date, technical content, presentations, and other educational material for professional development
PASS was founded in 1999 by Microsoft and CA and continues to enjoy executive level endorsement from both organizations. As the number one user community for Microsoft SQL Server, Microsoft looks to the PASS community for valued feedback, input, and inspiration. (Source: About PASS)
If you’ve been following anyone in the SQL community either via Twitter, reading SQL blogs, or browsing around any SQL-related forums you may have noticed a very large buzz in the community about the conference this week. There’s very good reason for this: The PASS Summit is the Superbowl of SQL Conferences (or World Cup for my international friends). This is the one conference during the year where folks from all over the world unite in one place and share their SQL skills, experiences and friendships. The motto for PASS is Connect, Learn, Share and that’s definitely what the Summit embodies. I personally have never been but this year I followed along via Twitter and it almost felt like I was there (Twitter is even funnier when you see the after-hours activities like Karaoke).
There have been a slew of blog posts about why the Summit (and I stress that the conference is called Summit, the organization is called PASS but many mistakingly refer to the conference as just PASS) is so great to attend. This post will try to not turn into one giant PASS Summit commercial but its hard not to gush over how awesome it is when you see all the knowledge shared and how the community rallies together. Suffice to say the annual conference is definitely worth your time and money to try and attend.
Beyond the conference PASS offers much more to the community. As a professional association they offer education resources for all members. How does one become a member? Don’t worry, it’s free and everyone is invited to join! Just follow this link to register. So what kind of learning resources does PASS offer? Well for starters the website offers links to resources to just about anything you can think of from technical articles, webcasts, tips/tricks from the experts, newsletters, tips/resources for speakers and much more. But the website is just the tip of the iceberg! PASS truly is a worldwide organization and that fact can be seen through the proliferation of local and regional SQL Server User groups. PASS has chapters all over the world and with each passing year it keeps growing! You can check the PASS Chapters page and check your region to see if there is a user group in your area. If there isn’t a user group located near you then guess what? You can establish one yourself! To get started on that journey check out the page on what steps are needed to set one up and become an official PASS chapter!
PASS Chatpers Worldwide as of 2009
Another great resource PASS has established in the past year has been the proliferation of Virtual Chapters (formerly called Special Interest Groups or SIGS). These virtual chapters each have a focus on a different aspect of SQL Server such as Business Intelligence, Application Development, Professional Development, Virtualization, Women in Technology, Performance and Database Administration. These Virtual Chapters act just like local chapters in that they meet on a regular basis but rather than meeting in a physical location they meet online via LiveMeeting. These meetings are great and open to everyone. At these meetings they have someone in the community do a one-hour presentation (much like you would see at a conference or a local user group meeting). These are fantastic, and best of all free, learning resources which helps you advance your knowledge and career!
Another great item to come out of the PASS umbrella are the free, local training events called SQLSaturday. These are free 0ne-day training events modeled after code camp events. At SQLSaturday there are several tracks based on different aspects of SQL Server (i.e. Administration, BI, Development etc.). These events attract speakers from all over and gives a chance for attendees to not only learn about SQL Server and PASS but gives them a taste of the community as well. If you’re interested go check out their events page and see if there is one scheduled for your area!
While there are many, many learning resources for SQL Server out there such as SQL Server Central, SQLShare and SQLServerpedia, know that we are all united when it comes to PASS since we are all members of the same fraternity of data professionals.
In our last class for this week I’ll cover the future of SQL Server, PASS and you!
Well this is going to be an interesting week as we have the PASS Summit going on. What’s the PASS Summit? What’s PASS? Why are the people on Twitter so excited about #sqlpass? Well by the end of the week my hope is you’ll have an understanding of where the Microsoft SQL Server (the product) came from, where its going, what PASS is and why its important to us.
So the past few weeks you’ve been working with Microsoft SQL Server. Some of you may have worked with it for years and others may be using it for the first time. So how did this fantastic relational database product come to be? Microsoft SQL Server’s humble beginnings started in 1989 with the release of SQL Server 1.0. This was Microsoft’s first entry in to the database market and the product’s codebase was based on Sybase SQL Server 3.0 code.Eventually Sybase and Microsoft went their separate ways. Starting from version SQL Server 7.0, released in 1998, the codebase was re-written from the legacy Sybase code.
In 2000 Microsoft released the first version that did away with the previous numbering scheme and was released as (and the originality award goes to…) SQL 2000. This product marked the first time the product was available with an edition aimed at the IA-64 architecture. The IA-64 version of SQL 2000 was available some time after the x86 version. It was also a little finicky, being more prone to crashes than the x86 edition (thanks to Gail Shaw for this info!). This evolution of the product also saw the introduction of SQL Server Reporting Services (SSRS) as an add-on in 2004. Reporting Services would re-emerge in SQL Server 2005 with many improvements in regards to end-user tools, self-service ad-hoc reporting and ease-of-usability. This release also gave us a built-in ETL (extract,transform,load) tool called Data Transformation Services (DTS).
For the 2005 release, SQL Server 2005 was considered a revolutionary release by many. Quite a few things were overhauled and improved upon. The Enterprise Manager was replaced by the SQL Server Management Studio (SSMS). SSMS is basically a Visual Studio shell with SQL Server components built in which made for a cohesive development/management environment for users. As well as getting a new management interface there were huge new features and enhancements to the database engine itself. SQL Server 2005 was the first SQL Server to include support for managing XML data types. Some other improvements 2005 brought were better indexing algorithms, better recovery systems, Dynamic Management Views, instant file initialization, better security (granular role/schema/object permissions), introduction of SQL CLR which allows developers to use native .NET code within SQL Server (assuming your DBA allows it, hehehe). Another huge change in this release was the replacement of DTS with a far superior and more polished ETL solution in SQL Server Integration Services (SSIS).
The most recent iteration of the product is SQL Server 2008. This version built upon the leaps from its previous release and improved upon them. These improvements came in the form of new features such as Policy-Based Management, the Performance Data Collector, data compression, resource governor (which allows dba’s to restrict resources for certain queries), transparent data encryption, data auditing, server group management in the form of the Central Management Server, the introduction of the MERGE statement, introduction of LINQ, support for geospatial data, filtered indexes, new DATE/TIME data types (until this point date/time was one column and together, this release allowed you to separate the two), BI improvements, and much more.
So what’s next? Glad you asked! The next announced release is referred to as SQL Server 2008 R2. This release offers mostly higher spec bumps (such as support for more processors, more memory, etc.) but also offers a few new feature additions as well. Some of these new features include Master Data Services, SQL Server Utility (a new way of managing databases as Data-Tier Applications), Data-Tier Application capabilities (DAC), PowerPivot (formerly known as Project Gemini) and more. Here’s a full list of all the various improvements available in the R2 release.
In light of the fact that this weekend is Halloween I figured this would be a great time to start this meme: Give us your best database/IT horror story to date.
I’ve been fortunate to date as far as the databases I’ve dealt with not having any crazy problems. For that I’m thankful. Given that fact my story is more of a general IT horror story. It was a dark and stormy night (actually it was clear, humid, hot day day but those don’t work as well for these). I woke up this fine morning to hear the call with the two words every IT pro dreads to hear: major outage. As I got into work, fueled up on coffee I got details of what happened that fateful morning.
Every month our operations staff does a generator load test wherein we switch from commercial power to generator power for testing. On this day, however, the generator felt saucy and fate gave us the finger. They threw the switch as they had done so many times before when “something happened” and a major failure happened in the generator. Normally this wouldn’t be too bad as you can switch right back to commercial power but, nay, not this day. For some reason the switch was unable to cut back so our whole data center went down faster than Balloon Boy’s family credibility. Like over-caffeinated monkeys on speed everyone leapt to action to find out the extent of the affected systems and implement the appropriate DR plans. After some scrambling the picture looked bleak. Despite having an alternate data center it turned out some of the systems on that side relied on the SAN…in the datacenter…that was now down and out. Awesome. Over the next few hours meetings were held to determine which systems needed to come back up, in what order (yes, I know, this should have already been established but as we soon discovered our DR plans were dated). Power was restored by noon and that’s when the real work began.
As we began bringing systems back online a flurry of disk checks and fixes began. Things slowly began shaping back to normal as everyone hunkered down and brought everything back up. But not all was well in Whoville. Ripping out a SAN from underneath servers is not the greatest thing to happen. To make matters really awesome we’re a heavy VMware shop and guess where our VMDK files are? Yeah…well in the midst of the madness we lost 2 LUNs due to corruption. Couple this with the fact that some of those servers turned out not to be backed up and needless to say you have a recipe for pure FUN! The good news is we have a good staff of dedicated folks who stayed as long as it took to get as many systems back online and working again. By 2:00 am (the failure occurred around 7:00 am) we were 95% back up and running with no major losses of data. Over the next few weeks I got the pleasure of working the every living hell out of the restore feature of Arcserve as well as check and double-check servers were being backed up.
Moral of the story is:
Have an up-t0-date DR plan, you never know when disaster is going to strike. Jonathan Kehayias wrote a great article recently about this.