GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOSで「エラー:rpmdbopenfailed」エラーを解決する方法

今日、私はCentOS7VMでNginxWebサーバーをテストしていました。残念ながら、更新プロセスの途中で電源が切れました。 UPSを持っていないので、ホストシステムがすぐにダウンしました。数分後、電源が入り、VMの電源を入れ直して、アップグレードプロセスを開始しました。 「yumupdate」コマンドを実行すると、次のエラーメッセージが表示されます:

error: rpmdb: BDB0113 Thread/process 2196/139984719730496 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

YUMが故障したようです。 yumコマンドを実行できませんでした。私はこれまでこのエラーに直面したことがなく、どうしたらよいかわかりませんでした。そこで、この問題を解決するための適切な解決策を見つけることを期待して、CentOSフォーラムに向かいました。フォーラムを数回検索した後、幸いなことに回避策を見つけました。この問題が発生した場合は、どこにも目を向けずに次の手順を実行してください。

まず、rootユーザーとしてコマンドを使用してrpmデータベースをバックアップします。

# mv /var/lib/rpm/__db* /tmp

次に、次のコマンドを実行します。

# yum clean all

ここで、更新を再度実行します:

# yum update
Loaded plugins: fastestmirror
Cleaning repos: base epel extras updates
Cleaning up everything
Cleaning up list of fastest mirrors
[[email protected] ~]# yum update
Loaded plugins: fastestmirror
base | 3.6 kB 00:00 
epel/x86_64/metalink | 5.0 kB 00:00 
epel | 4.3 kB 00:00 
extras | 3.4 kB 00:00 
updates | 3.4 kB 00:00 
(1/7): base/7/x86_64/group_gz | 155 kB 00:02 
(2/7): epel/x86_64/group_gz | 170 kB 00:04 
(3/7): extras/7/x86_64/primary_db | 191 kB 00:12 
(4/7): epel/x86_64/updateinfo | 809 kB 00:21 
(5/7): base/7/x86_64/primary_db | 5.6 MB 00:26 
(6/7): epel/x86_64/primary_db | 4.8 MB 00:46 
(7/7): updates/7/x86_64/primary_db | 7.8 MB 00:50 
Determining fastest mirrors
 * base: mirror.ehost.vn
 * epel: repo.ugm.ac.id
 * extras: mirror.ehost.vn
 * updates: mirror.dhakacom.com
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-19.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-20.el7_3 will be an update
---> Package NetworkManager-adsl.x86_64 1:1.4.0-19.el7_3 will be updated
[...]
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package Arch Version Repository Size
================================================================================
Installing:
 kernel x86_64 3.10.0-514.26.2.el7 updates 37 M
 python2-libcomps x86_64 0.1.8-3.el7 epel 46 k
 replacing python-libcomps.x86_64 0.1.6-13.el7
Updating:
 NetworkManager x86_64 1:1.4.0-20.el7_3 updates 2.5 M
 NetworkManager-adsl x86_64 1:1.4.0-20.el7_3 updates 146 k
 NetworkManager-bluetooth x86_64 1:1.4.0-20.el7_3 updates 165 k
 NetworkManager-glib x86_64 1:1.4.0-20.el7_3 updates 385 k
 NetworkManager-libnm x86_64 1:1.4.0-20.el7_3 updates 443 k
 NetworkManager-team x86_64 1:1.4.0-20.el7_3 updates 147 k
 python-perf x86_64 3.10.0-514.26.2.el7 updates 4.0 M
 sudo x86_64 1.8.6p7-23.el7_3 updates 735 k
 systemd x86_64 219-30.el7_3.9 updates 5.2 M
 systemd-libs x86_64 219-30.el7_3.9 updates 369 k
 systemd-sysv x86_64 219-30.el7_3.9 updates 64 k
 tuned noarch 2.7.1-3.el7_3.2 updates 210 k
 xfsprogs x86_64 4.5.0-10.el7_3 updates 895 k
Removing:
 kernel x86_64 3.10.0-123.el7 @anaconda 127 M

Transaction Summary
================================================================================
Install 2 Packages
Upgrade 46 Packages
Remove 1 Package

Total download size: 84 M
Is this ok [y/d/N]: y

yと入力します 更新を続行します。出来上がり!すべてが期待どおりに機能します。

最後に、コマンドを使用してバックアップをクリーンアップしました:

# rm -i /tmp/__db*

そして、今のところこれですべてです。これがお役に立てば幸いです。

関連記事:

  • [解決済み]-"エラー:rpmdbNextIterator:スキップ"FedoraLinuxで

Cent OS
  1. CentOSLinuxで古い未使用のカーネルを削除する方法

  2. CentOS 6 / RHEL 6(x86_64)にVMwareWorkstation8をインストールする方法

  3. Arch Linuxで「エラー:トランザクションのコミットに失敗しました(ファイルの競合)」を解決する方法

  1. CentOSで「semanageコマンド」が見つからないというエラーを修正する方法

  2. CentOSでgitを最新バージョンにアップグレードする方法

  3. CentOSのIptablesでHttpポート(80)を開く方法

  1. CentOS7に求人広告をインストールする方法

  2. CentOS / RHEL 7 でポートを開く方法

  3. CentOS / RHEL でポートを開くように IPtables を構成する方法