I traveled to Cambridge recently for some meetings at Redgate Software and to attend SQL Bits. I arrived on Tuesday, worked a bit, and then came back to the office Wednesday for the SQL Clone launch (a success, by the way. Watch it. Now. Well, not now, but after this post).
After the first two SQL Clone broadcasts, I walked back to my desk and tried to get some work done. I was updating the release pipeline for a demo and kept getting an error during the restore from production step. It was strange as I hadn’t changed anything, and had actually demo’d this step the previous week. I tried a few things before I read the error message and then realized I had a corrupt .dll. Not great, but sometimes a restart will clear things if this is some bad bits in memory.
I closed Windows and then clicked “restart” and got this.
Not the end of the world, and I assumed this was some transient. I let this go and went to get coffee. I returned to see this screen, but I could swear the percentage was different.
It was. The machine was rebooting, crashing, and getting back here. I powered down, waited the customary 5 seconds and 5 more, and booted back up. I got to the Windows recovery screen. There were a few options, System Restore Point, System Image, etc., but nothing was working. After about 20-30 minutes, and another 10 considering whether I should walk down the road and buy a new machine, I decided to reset and reinstall Windows. Not my favorite option, but I didn’t think I had another one.
I clicked the button and started watching Windows reset itself.
And watching, but fortunately I had another broadcast to do for SQL Clone, and I had my phone.
Eventually the install finished, and Windows configured itself. I’d done this a few times for other machines (desktop and laptop) in the last year, but by choice, after I’d made backups. This time I was forced, and was hoping that I didn’t lose too much stuff.
When I was able to log in, I saw there were still a few things, including some configuration that Windows restored as a side effect of using a Live login, or whatever Microsoft calls it now. When I first logged in, I was greeted by my new install.
From there, I needed to get going. I had some Windows config, and more of the stuff in the Documents, Pictures, etc, libraries were there (Actually all of it), but anything in\ Program Files, \Windows, etc. was gone. Not fun.
Fortunately I have rebuilt some machines recently and have found Chocolatey to be invaluable. I first got Chrome going, then added Dropbox and kept other installs going in the background as I got ready for broadcast 3.
Throughout the evening, I manually added back my O365, SSMS, and SQL installs, and kept thinking of the stuff I needed for demos. git, Github and VSTS got my code back down, and I had to re-authorize some apps with new passwords, but I was 90% running before I went to the hotel that night.
Reinstall Windows to running SSMS demos with SQL Server in about 4 hours, minus about an hour in the SQL Clone launch.
The next day I had pretty much everything running again by noon, minus a few sample database backups. I’ve learned that the default SQL backup path is no bueno on a laptop. I’ll have to rebuild some sample data sets and I’ve already moved things to a new path that will exist if this happens again.
I was productive and working, writing some code and testing demos the next morning. It really was about a 4-5 hour process to have a laptop back working, with code, that I could use on an airplane with the data I expect.
My laptops are (mostly) cattle now. I’ve got a few things to square up (like SQL backups), but overall, I think I’ve improved my DR process.
And I’ve learned to git push before I power down this machine.