エックスサーバのハードウェア故障で消えたEC-CUBE注文データの復旧

エックスサーバのハードウェア故障が原因でEC-CUBEの注文情報がデータベースに残っていないトラブルが発生 EC-CUBE
この記事は約3分で読めます。

ECサイト事業者様から注文情報が消えていると問い合わせがあった

先日、EC-CUBEの保守を請け負っているECサイト事業者様から「受注内容が消えている、または注文番号が重複発行されている」とお問い合わせを頂きました。

詳細をお伺いすると、
注文メールが届いているにも関わらず、EC-CUBE管理画面の受注管理でその注文が見当たらない。
注文メール内に記載されている注文番号が重複して発行されている。
とのことでした。

至急それらの注文メールを転送して頂き、社内で調査致しました。

データベースに注文情報が残っていない

データベースを確認しましたが、該当の注文情報は格納されていませんでした。
注文テーブルdtb_orderはもちろん、一時的に注文情報を格納するdtb_order_tempにもありません。

注文時に何らかのトラブルが発生したことは想像できます。
しかし、EC-CUBEの仕組み的に注文番号が重複で発行されることはあり得ません。
また、今までこのようなトラブルは聞いたことがなかった為、システムではなくサーバを疑うことにしました。

サーバの障害を疑ってみた

エックスサーバでEC-CUBEを運営していましたので、エックスサーバの障害情報を確認してみました。
すると同時期に以下の障害があったことが分かりました。
『mysql6011、mysql6012サーバー』1/9 PM11:32頃からのアクセス障害について(1/10 PM1:09 更新) – 2021/01/09 | レンタルサーバー【エックスサーバー】

利用しているMySQLサーバが該当していましたので、上記障害が起因であることは明白です。
確証を得る為、念の為エックスサーバに問い合わせると以下の回答がありました。

お知らせいただきました日時のおける
データベースへの書き込みにつきましては
この度発生した障害に起因して
データが存在していない状況かと存じます。

お客様にはご迷惑をお掛けし、大変申し訳ございません。

EC-CUBEに注文データが残っていない原因はサーバ障害である確証が得られましたのでお客様に原因をご報告いたしました。

EC-CUBEの注文データを復旧する

障害の原因が判明しました。
システムに起因するものでなく再現性も低いトラブルと判明し一安心したところで、データベースに格納されなかった注文情報を復旧します。
ECサイト事業者様には事前に復旧方法をご説明した上、了承を得て復旧開始しました。

復旧方法としては、注文メールの内容に従って管理画面>受注登録で1件ずつ手動で登録します。
(今回は件数がそれほど多くなかったので手動登録しましたが、件数が多い場合はCSVで一括登録することになります)
受注登録で登録した場合、受注日時=登録日時となってしまいますので、注文テーブルdtb_orderを直接操作して注文日時を変更します。
残念ながら受注番号は注文メールに記載されているものではなく新しくなってしまいます。

以上で復旧完了です。
正月明け早々イヤなトラブルに見舞われましたが無事解決できよかったです。
また、すぐにシステムではなくサーバを疑うことができたのが早急な解決になりました。
これも長年EC-CUBEを取り扱っているからこその判断です。
ちなみに、このEC事業者様は保守契約を結んで頂いていたので保守サービス内で無償対応させて頂きました。

投稿者プロフィール

Nakamura
サンクユーのEC-CUBE先生。
EC-CUBEのカスタマイズをし出して早15年。
難易度の高いカスタマイズもお任せ。
2系、3系、4系すべて対応可能。

実はjavaでの業務システム開発がエンジニア人生のスタート。
PHP、Perl、フロントエンド開発、Movable Type、Wordpressも得意という万能エンジニア。

お気軽にご相談ください

お気軽にご相談ください

タイトルとURLをコピーしました