Author: way0utwest

  • The New SQL Provision Dashboard

    As much as I liked the ability to quickly and easily build development and test databases with SQL Provision, I thought the dashboard of cloned databases was hideous. It left a lot to be desired, and frankly, the dark theme is annoying to me. Here’s my old dashboard.

    2018-08-06 10_52_18-Microsoft Edge

    I wasn’t alone, as various customers were asking about enhancements and additions. The team has been listening and I talked with them a few months ago during a meeting about possible ideas and designs. I saw an early mock up, and was hoping it would be released soon.

    After coming back from vacation, I saw an update was available, so I applied it. After a few minutes, I saw this:

    2018-08-06 10_51_11-Socrates - VMware Workstation

    Once this was done, the page refreshed, and I saw the dashboard. I know, not much has changed, but look at the upper right part of the screen. There’s a blue box that says “Preview new dashboard”.

    2018-08-06 10_51_51-Socrates - VMware Workstation

    Once you click this, you get a new dashboard, which thankfully doesn’t use the dark theme. What’s nice is that I also get some information at the top of what my activity is. I can see the total clones and images, and the machines that are working or having issues.

    2018-08-06 10_52_28-Microsoft Edge

    I also have options for resorting the clones and images. I can change the sorting, which is set by the client, not the server. This means one person can see clones by instance, while another can see clones by image.

    2018-08-06 10_52_49-Microsoft Edge

    If I change this, you can see that I get a new view at the bottom.

    2018-08-06 16_24_40-Microsoft Edge

    There are more changes needed, and some coming. There is a feedback item when you switch to give feedback to the team, and I’d encourage you to do so. Certainly I think sizes or some calculation of total sizes for images and clones is needed. It would be nice to get filters for sizing, so I can also tell if someone is using a clone to do a lot of work and growing it’s size. One of the important things here is that you ought to not get to wedded to a particular clone. We want to rebuild these as needed.

    I’d also like to see some way to link images to a source and perhaps group them so that I know how many copies I have of some database, like production. While I think we definitely need a couple of images at any time for rotation, we want to get control of our systems and limit the number.

    If you have other feedback, let us know, and we’ll build a better dashboard together.

  • The Worst Day

    I challenged people to write about their daily work a few weeks ago. I haven’t see a lot of posts, but I am still hopeful some of you will document your day, as Iris Classon has done a few times. It’s not that I expect a lot of the same posts, but rather, I’d like you to talk about the way a specific day has flowed for you. Did you work on a problem? Just pick up tickets and perform routine scripting? Learn a specific thing? Give us some details. I expect everyone’s day to be different.

    Jon Shaulis broke his series in a few parts, one of which was his worst days as a DBA. I thought that was interesting and it brought back from memories for me. Overall, I’ve had mostly good days, and even the crisis situations weren’t that bad.  That being said, there are some tough days, both physically and mentally, and worse, tough for my family.

    This week, I wanted to ask you what was the worst day in your career? Or maybe the worst event, since some of the tough times I’ve had actually spanned multiple days. Let us know what happened, but also, what the challenge was for you?

    I’ve got a couple items. My first exposure to SQL Server was as a network admin. I helped a group of 4 other FTEs run a large Novell Netware environment of over 1000 nodes. We handled the servers (6 or 7), email, and more for hundreds of employees. We managed Netware servers, Windows (and DOS) desktops, and way too many printers. As a part of a government mandated change, we rolled out a new system at midnight on Jan 1, backed by this new database, SQL Server. We installed an OS/2 server at the end of December and prepared for the cutover from the old system. Since this was a mandated change, we weren’t going to roll back. Ever.

    I arrived at work on Dec 31, around 6pm. I planned on getting setup, checking with developers, and being ready. We cut over at midnight and people began using the system. Within 30 minutes, we had problems, including an overloaded SQL Server that would freeze up. We ended up babysitting the server to reboot it regularly, as well as trying to determine the problems. I left work on Jan 2, around noon. That was a bad day.

    Another bad way was with a SQL Server 6.5 instance that ran financial services. We detected corruption in a table and got on the phone with Microsoft one afternoon. I worked with support, being handed off from the west coast to Asia to North Carolina throughout the night, trying to debug the problems and extract data. A nice 30+ hour, high stress day for me. After that I kept a pillow and blanket in my desk, which I used a few more times that year.

    Those were tough times, but most of my days are great. Some are long, some stressful, but overall, I’ve enjoyed my time doing database work. Can you say the same thing?

    Steve Jones

    The Voice of the DBA Podcast

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

  • Granting CONTROL on a database–#SQLNewBlogger

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

    I wanted to grant a login the CONTROL permission on a database. This wasn’t a simple as I expected. I had a login (JoeDev) with no user mappings or server roles, and a database (EmptyFileTest) that I wanted to grant them permissions on.

    My first attempt was this:

    GRANT CONTROL on EmptyFileTest to JoeDev

    This didn’t work.

    2018-07-03 11_20_21-SQLQuery3.sql - (local)_SQL2016.master (PLATO_Steve (60))_ - Microsoft SQL Serve

    I’m a sysadmin, so it’s not permissions. Maybe it’s qualification. The database isn’t found as an object, so let’s fix that.

    GRANT CONTROL ON DATABASE::EmptyFileTest TO JoeDev

    Aha, I’m making progress.

    2018-07-03 11_21_22-SQLQuery3.sql - (local)_SQL2016.master (PLATO_Steve (60))_ - Microsoft SQL Serve

    The database is found, but the user isn’t. That implies this is an internal permission in the database that can’t be granted to the login. One more try:

    GRANT CONTROL ON DATABASE::EmptyFileTest TO LOGIN::JoeDev

    Nope.

    2018-07-03 11_24_41-SQLQuery3.sql - (local)_SQL2016.master (PLATO_Steve (60))_ - Microsoft SQL Serve

    Let’s add the user.

    CREATE USER JoeDev FOR LOGIN JoeDev

    Now we’ll try this again.

    GRANT CONTROL ON DATABASE::EmptyFileTest TO JoeDev

    As you can see, the context is the master database. This won’t work.

    2018-07-03 11_26_07-SQLQuery3.sql - (local)_SQL2016.master (PLATO_Steve (60))_ - Microsoft SQL Serve

    Let’s change the context and execute this again. Once I do that, things work.

    2018-07-03 11_27_29-SQLQuery3.sql - (local)_SQL2016.EmptyFileTest (PLATO_Steve (60))_ - Microsoft SQ

    We can see this worked in the database properties for our database, under the Permissions tab.

    2018-07-03 11_28_29-Database Properties - EmptyFileTest

    SQLNewBlogger

    Security and permissions are important. A series of short pieces on different aspects of managing, assigning, or using security will teach you a lot and show that you’re cognizant of the need for security for your databases.

    This took about 10 minutes to write. Note that I’m showing my process of learning and progress, not just writing about what is required. Think about writing your story, not just the information.

  • Unwired for Weeks

    I took a few weeks off recently for a vacation with my family. We traveled from Denver to Yellowstone National Park in Wyoming and then on to Glacier National Park in Montana. We drove a horse trailer, camping along the way in the vast outdoors of America. It was a wonderful time and a beautiful part of the country. If you get the chance to visit, I’d highly recommend the trip.

    One of the interesting things on this trip was that I was very unwired. In fact, I didn’t even take a laptop, which is a rarity for me. Often I’ll take one to jot notes, sketch an editorial, or just have around to check on things. This time, I didn’t bother, and neither did my wife. One kid did, but only because he was enrolled in a couple classes (CS and Math) this summer and had assignments to do.

    The only device I had was my phone, which didn’t have service for much of the trip. Both during long drives (I was glad Google Maps downloads directions), at many of our campsites, and in the national parks, there was little service. In fact, when I did have service, I was surprised. The camping locations did have wi-fi, but I only used it to upload pictures of the trip and didn’t even bother checking social media as I posted. I mostly uploaded pictures to ensure I had a backup.

    I did check email once early on to be sure that I hadn’t forgotten anything from work early, and forwarded on a couple items to people, but when I arrived home last week, I had hundreds of messages from Redgate and probably close to a thousand from SQLServerCentral. It was quite a chore handling and deleting a number of items, and took half of my Monday back in the office.

    What was interesting to me is that I didn’t really miss the social media much, certainly didn’t miss the news, and nothing that important came up. I didn’t worry about work, knowing that something would go wrong (such as a few buggy questions) and that someone would handle the situation (thanks to Grant for fixing things) or delay the item until I returned. I found numerous meetings canceled or rescheduled without me and quite a few hastily dashed emails or queries that were later retracted or amended. In fact, going through emails from newest to oldest allowed me to delete older, out of date messages without reading them.

    I rarely take more than a few days off at a time, usually just a long weekend here and there, but this proved (again) something I’ve suspected for a long time. Much of the pressure we feel with deadlines at work is arbitrarily imposed. Whether we do it to ourselves or someone else picks a datetime, there isn’t any rationale for the choice. Usually the goal is to complete work as fast as possible, but if there are delays, if something comes up, with life, other tasks, unforeseen failures (hardware/software) get in the way, the business will survive.

    I learned a long time ago that despite my best efforts, things will go wrong and there will be delays. I’ve learned to expect them, accept them and try to not add any extra stress on myself when things are delayed. Go home at a reasonable hour most of the time, live the rest of your life, while doing the best professional job you can. There will always be more work, and the business will survive if most of your work ends up being delayed slightly.

    Steve Jones

    The Voice of the DBA Podcast

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