ドコモ新プラン「ahamo」を徹底解説中

wpXのデータベース自動バックアップに助けられた話

寝不足で本番環境のデータベース操作を行ってはいけない(教訓)

これまでにも何度かデータベースをぶっ飛ばしかけたことはあったり、アクセス過多で落ちちゃったことはあるんですが、派手に人為的操作でぶっ飛ばしたのは初めての経験です。

スポンサーリンク

ぶっ飛ばすまでの経緯

このブログに使っているWordPressのテーマは「Cocoon」で、以前は同じ作者さんの「Simplicity」を使用していました。
Cocoonでは投稿ページの「ページタイプ」として、ページ幅・カラム数を公開時どうするか設定する機能があります。

ページタイプを「デフォルト」に設定してる場合
ページタイプを「1カラム(狭い)」に設定している場合

モバイル端末からの表示であればサイドバーはすべての記事で非表示になりますが、PCビューでは表示されるのが個人的にはあまり好きじゃない。
実際、サイドバーから他の記事への回遊がどのくらいあるのか計測した際「サイドバー、なくてもいいんじゃないか」と思う結果もあり、最近公開した記事はページタイプを「1カラム(狭い)」に設定しています。

「最近公開した記事は~」の通り、ページタイプ設定は各記事毎に設定が必要です。

つまり、このブログの記事はざっくり
・ページタイプを設定した記事
・ページタイプを設定していない記事
・Cocoon導入以前の記事
の3つに分かれ、過去に遡るほどに記事のレイアウトがしっちゃかめっちゃかになっている状態が長らく続いていました。

WordPressの記事はデータベースに「wp_posts」といったテーブルが用意されその中に保存されています。
当然記事タイトルや本文だけでなく、ページタイプなどの記事属性もそこに保存される仕組みです。

過去記事の数が何百かはわかりませんが、そのすべてに対しページタイプを再設定していくのは面倒です。

そこで「ページタイプはどんなカラムにフラグを設定して制御しているのか」をデータベースの当該テーブル内を確認し、SQL文で直接まとめて操作を行おう!!と思い立ったわけです。

もちろんページタイプに限らず、7年分の記事すべてに対し「現状の最新記事と同じに揃えたい箇所」というのは沢山あり、これらも一括して変更してしまおう!というのが今回の悲劇の始まりです。

具体的なSQL文は載せませんが、Google I/O→NTTドコモ 2021夏新商品・新サービス発表会と今月一番の山が終わり「やっとブログに手を入れられるな~」というタイミングで作業したのが失敗でした。少しうとうとしながらSQLの実行を行ったが最期。すべての記事が表示されない状況になってしまい、リカバリが難しい状態になってしまいました。

wpXのデータベース自動バックアップの存在

どうしようか途方に暮れていたところで思い出したのがwpXのデータベース自動バックアップ機能。

このブログが現在載っかっているのはホスティングサービスの「wpXクラウド(新規申込は既に終了)」で、wpXのホスティングサービスは過去2週間分のデータベースが自動でバックアップされる機能が提供されています。

データベースの自動バックアップ機能は前日までのデータベースの内容を1日単位でダウンロード・復元が可能。
今回であれば5月18日時点のバックアップが利用できるため、そこからデータベースの復元を実施しなんとか復旧させることができました。

「18日時点」なので19日に公開した記事や、それに連なる公開予定の記事の下書きが飛んでしまったのは手痛いところですが、まぁブログがまるっとぶっ飛ぶよりは遥かにマシです。

復旧後は先ほどしくじったSQLを見直した上で本来やりたかった過去記事のメンテナンスも完了。
まだまだ手直しする必要があるものは多いのですが、上に挙げた例であるページタイプは揃えられましたし、まぁいいでしょう。


こんなことを言うのもアレですが、まさか自分がホスティングサービスのデータベース自動バックアップ機能に助けられる日が来るとは。
たった数行のSQLなのでハマりようがないという奢りで本番環境で実行したのがすべてのミスですね。傲りはよくない……。

WordPress専用クラウド型レンタルサーバー【wpX Speed】
wpX SpeedはWordPressに最適化したクラウド型レンタルサーバーです。SSDの高速性を最大限に発揮する次世代の接続規格「NVMe」の採用をはじめ、キャッシュなしでWordPressを10倍以上高速化する機能などWordPressの高速化に徹底した環境を提供します。