Happy Anniversary: back from the dead edition
DevelopingFor.net started in December of 2006 as a way for me to archive code samples, bug fixes, and other items of interest. We created the site on an old machine that was literally just lying around. Using LAMP and WordPress it was quick and easy to deploy and before you knew it a blog was born.
Death of a server
Fast forward 5 years and the site was still self-hosted on the same equipment that was old when we started. I started noticing intermittent issues like dropped connections to the MySQL server, random reboots, web server crashes, you know little things like that. I realized I should move the site but I kept putting it off in favor of happier pursuits. After all, Linux never dies, right? Well, Linux may never die but hardware certainly does.
Does the term “catastrophic server failure” mean anything to you? It does to me, at least now. Both the CPU fan and the server fan quit working. No idea when these things happened but one or the other is most likely responsible for the weird issues. When both failed it was sayonara server. We tried replacing the fans but it was too late: either the CPU or the motherboard is fried and we have a DNR order on file. Goodbye server.
Surely you have a backup?
As a matter of fact, I do. Many of them. I’ve been faithfully using a backup utility in WordPress, running it after every blog post. A copy is stored on the server, on my laptop, on my portable hard drive, and in DropBox. I also have backups of all the images, code libraries, and the custom DevelopingFor theme I created. Verily verily, I say, I HAVE backups.
Knowing that I had all these backups made it easier to ignore the hardware because I knew I could recover if the worst ever happened. It wasn’t until that “if” became “did” that I realized I was still not properly prepared.
I have come to the decision over the years that self-hosting is a poor choice: I needed to find a hosted solution. I won’t enumerate all the moving parts in this decision, but the fastest way for me to get the blog up and running again was to host it on WordPress.com. I created the necessary account, set up the blog and went to import the backup. That’s when I learned that the backup utility was not what I should have been using.
When is a Backup not a Backup?
Somewhere along the way, WordPress created a custom import/export based on the RSS XML spec called WXR. Instead of the old backup utility, which backs up the MySQL database into a .sql file, I should have been using the built in Export tool. Had I done so, the site would have been back up in a matter of hours instead of days. I toyed with a few options, including writing a WordPress MySQL to BlogML converter so I could import to Orchard. I may continue down that path, but I ran into issues on my hosted account getting Orchard to work properly (a topic for another time).
Ultimately, I appealed to WordPress.com directly. They took pity on me and converted my .sql backup file to a WXR file. It took about a week overall but I was finally able to import the old posts into the site this morning. The good news is it’s back from the dead. The bad news is there are going to be some changes around here.
The resurrection has left some changes that will take me some time to work through and some that will probably never be fixed. The biggest issue at the moment is that any screen shots or images they have most likely will be showing the big red ‘X’. This is because I was previously FTP’ing the images directly to the site, so they have path references that no longer exist. As I find them I will try to correct them, but the law of diminishing returns inclines me to think it’s not worth the effort.
The second big deal is I can not import my custom theme since the site is now on WordPress.com. A new look is fine, but it means I’ll have to put in some time to recreate some of the navigation and shortcuts that were there before. All in all the important stuff should work but there may be issues with some of the links as I sort through this conversion.
Every tragedy is a learning experience. In the immortal words of Dr. Frankenstein, “It is ALIVE!” There’s breath in the old girl yet. That being said this occurrence has forced me to come to grips with a couple of issues. First, I need to be more proactive: had I paid more attention I could have prevented this by transitioning before the failure. Second, I need to do some succession planning, so to speak. Third, I realize I’m not happy with my web presence overall: it’s time to make some changes. Finally, I need to gain more comfort and familiarity with hosting solutions and environments, at least until Azure has a free edition.
Oh, and when you make a backup, be sure it is really a backup.