It had been almost six months since my last post. I had plenty I wanted to record, but after starting work I kept putting it off. By the time I actually thought about writing, I'd forgotten what I wanted to say.
On April 21 I found the blog unreachable. At first I didn't pay much attention. The hosting provider I was using was cheap, and outages from route changes or data migrations had happened before. I decided to check again that evening. But when evening came, the site was still down. There was no maintenance notice in the provider's official group either. I was still fairly calm: worst case, I'd move to another server and update DNS.
The server panel showed an unknown status. Rebooting and powering it on did nothing. Traffic looked normal, and I hadn't received any CC or DDoS attack notices. I submitted a ticket and waited. The answer: the parent host machine had failed, and the data was gone. The provider offered a full refund. I could accept that—at least they didn't vanish, and they refunded the money. But my data...
I do have a backup habit. Once a week, a plugin backed up the database and sent it to my email. Only the database, though—no static files. I tried to restore it, but the backup was incomplete. The plugin hadn't backed up all the tables as I'd configured. I felt terrible. As far as I could remember, that plugin backup was the only one I had. Now the static files were gone and the database was crippled. It felt like starting from zero.
My setup had separated dynamic and static content: dynamic resources ran on the server, while static files—theme CSS, JS, images, fonts—were hosted on Tencent Cloud COS and accelerated through my ICP-filed domain. By chance, while looking through the COS bucket list, I found a full-site backup from the period when I was using the Baota panel. It contained both website files and the database. The date was December of the previous year, and there were three retained copies. That was probably the luckiest part of an unlucky situation.
I bought a new server right away. Because .org domains can't go through ICP filing, and I was worried about another failure, I stopped using small hosting providers. I did briefly use a UCloud lightweight cloud host: 2 vCPU/2 GB RAM, 30 Mbps peak bandwidth, 2048 GB monthly traffic, direct routing for the three major networks, and 120 yuan for the first year. For a small blog it was plenty. But the performance and access speed didn't meet my expectations, so I switched to another provider before long. It isn't a big brand, but it has been around for 13 years, and its server performance and access speed met expectations. I no longer use the UCloud server.
For the restore this time, I chose 1Panel instead of Baota. I simply think 1Panel's interface looks better than Baota's, and I'd used it for half a year without any bugs. After this incident, I learned my lesson: I installed a backup plugin in 1Panel and now back up both the website files and the database to Tencent Cloud COS—once a day, keeping five copies. I stopped using the Typecho plugin for backups.
Data really does need to be backed up. Data is priceless. I may not update often, but if it were truly gone and the site could never open again, I would be very sad.