It’s now October and I am looking back on the entire multisite process. Once I cracked the code and documented the conversion process, it took me only 5-10 minutes per site to bring the site up. I got everything done by the end of August and started the conversation with MKP about the final phase: converting the existing sites to use the new features. I had lots on my plate in September so I didn’t push this, but it wound up pushing back just yesterday.
I updated a plugin on the site and the whole site immediately crashed. I hate it when that happens. Moments later, I get a Skype call from Boysen telling me that he had updated a plugin and that the site had crashed. Well, the problem appeared obvious. Undo the plugin updates and everything would be hunky-dorey, right?
Well, it wasn’t that simple. We deleted the plugins in question and the whole network was still down. We deleted all plugins. No change. I spent six hours tracing what was happening in the code (I simply must get remote debugging working). It was a black hole. We decided to restore from the previous day’s backup, but the backup was from April. We finally got what we thought was a good restore, but all of the multisite tables are visible but inaccessible. I can see the table name in the database, but when I try to open the table, MySQL says the table doesn’t exist. We restarted MySQL but still no change. So I disabled multisite and the MKPUSA site came back, but the rest of the network was dead.
We will get things working in the next day or so, but this experience has highlighted the double-edged sword that is WordPress Multisite: On the plus side, we make a single update and all sites are updated. On the other hand, it is a single point of failure that can take down the entire network.
I still think that moving to multisite was the correct decision, but it does require that we have our backup and restore strategies working and tested, and it is pointless to use a WordPress plugin to do the backups. If we can’t get to the site, we can’t get to the plugin to tell it to restore things. The backup/restore process must live outside WordPress.
Multisite also requires very careful updating of plugins and themes. Backup everything before doing any network-wide updates and assume that my old friend Murphy will drop in for some fun and games… at my expense.