RPM DBの破損とリビルドによる復旧 Plesk12障害復旧

優

Plesk12 Plesk11からデータ移動

 

ある日ドメインが作成出来なくなったりした。
リセラーのGMO様、開発元ベンダー様にも見て貰いrpmが破損していることを確認。

以下はrpmリビルドによる復旧作業内容

# rpm -qa | grep php

rpmdb: Thread/process 8480/140060972062688 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
rpmdb: Thread/process 8480/140060972062688 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages database in /var/lib/rpm

rpmが壊れていることが確認できる。

ファイルの確認

# cd /var/lib/rpm/
# ls -lah

total 67M
drwxr-xr-x 2 root root 4.0K Oct 19 2015 .
drwxr-xr-x 32 root root 4.0K Nov 2 2015 ..

(略)

-rw-r--r-- 1 root root 232K Jan 26 22:11 __db.002
-rw-r--r-- 1 root root 1.3M Jan 26 22:11 __db.003
-rw-r--r-- 1 root root 744K Jan 6 03:44 __db.004
-rw-r--r-- 1 root root 0 Jul 12 2011 .rpm.lock

(略)

削除予定ファイルバックアップ

# cp __db.001 /root/
# cp __db.002 /root/
# cp __db.003 /root/
# cp __db.004 /root/
# cp .rpm.lock /root/

再度rpmの状態を確認

# rpm -qa

rpmdb: Thread/process 8480/140060972062688 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
rpmdb: Thread/process 8480/140060972062688 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages database in /var/lib/rpm
# yum list

rpmdb: Thread/process 8480/140060972062688 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

 

 

削除

# rm -f __db.001
# rm -f __db.002
# rm -f __db.003
# rm -f __db.004
# ls -lah

__db.*がないことを確認。

 

rpmリビルド

# rpm --rebuilddb

 

正常に動作するか確認する。

# rpm -qa
# rpm -qa
iptables-ipv6-1.4.7-4.el6.x86_64
(略)

 

rpm正常化、Plesk共にエラーがなくなったので
ここで作業を終了しました。
//以下は本番環境で行わず ※テスト環境では行いましたが問題のない再インストールコマンドでした。

//# plesk sbin autoinstaller --debug --select-release-current --select-release-current --remove-component fail2ban
//# plesk sbin autoinstaller --debug --select-release-current --select-release-current --install-component fail2ban

 

Plesk12復旧!

 

GMO VPSのサポートは手厚いのでVPSを考えているならおすすめ。どこのホスティングを使ってもそうですが、データのバックアップはユーザ側できちんと取っておくことが大切です。

 

 

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG