先日からワードプレスが引き金となってPHPやらDB系でupdateを繰り返しおりましたら、なんだか最近yumコマンドの返答が遅い。というかフリーズして返ってきまへん。。。なんて現象サーバ経験者なら一度や二度は経験ありますよね。
以前なら秒で出ていた結果も、1,2分もかかるような始末。。。
同様の現象でお困りの方いましたらどうぞ!
http://memo-off.blogspot.com/2014/06/yumrpm.html
上記のサイトは簡潔にまとめていましたので参考にどうぞ
rpmのデータベースが破損していて、それが原因。
なので破損ファイルを一度削除して、再構築してあげればOKです。
破損ファイルの場所
# cd /var/lib/rpm/
上記ディレクトリ下ににパッケージ系(RPMのデータベース)が保存されているが、今回は以下のファイルが削除対象。
__db.001 __db.002 __db.003
ワイルドカードでサクッと削除
# rm -rf /var/lib/rpm/__db.*
再構築
# rpm -vv --rebuilddb
-vvで実行中のステータスを確認しながら再構築した。
yumの保存してる全キャッシュを削除
# yum clean all
yum clean XXXと細かく(メタデータやDBキャッシュ等を)コマンドを 指定してる参考サイトもあったが個人的には 「clean all」のみで問題ないと思う。
yum clean all
https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-ja.pdf
キャッシュからパッケージおよびメタデータをすべて削除 する
以下 clean XXXと細かく指定する場合
メタデータを削除する
# yum clean metadata
今まで急ぎで作業してるときは実行中のプロセスをCtrl+Cで強制終了したこともあったが、一度メタデータを削除すると再度yum実行時にメタデータが再構築されてエラーが解消される。
DBキャッシュを削除する
# yum clean dbcache
完了
再度yum実行後、速くなりました。
# yum repolist
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel/x86_64/metalink
* base: ftp-srv2.kddilabs.jp
* epel: nrt.edge.kernel.org
* extras: ftp-srv2.kddilabs.jp
* remi-safe: ftp.riken.jp
* updates: ftp-srv2.kddilabs.jp
base
epel
extras
mariadb-main
mariadb-maxscale
mariadb-tools
remi-safe
そもそもDB系(maria db)を10.3>10.5へバージョンアップしようと、現在のインストされているパッケージを確認しようとしたところ、フリーズしてしまったのが事の発端。
ただフリーズは解決したが結局実行した結果・・・・
A manual upgrade is required.
手動でアップデートしろってさ。。。
ということで次回は手動アップデートの手順を書きます。
# yum -y update mariadb-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* epel: nrt.edge.kernel.org
* extras: ftp-srv2.kddilabs.jp
* remi-safe: ftp.riken.jp
* updates: ftp-srv2.kddilabs.jp
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-server.x86_64 0:10.3.15-1.el7.centos will be updated
---> Package MariaDB-server.x86_64 0:10.5.4-1.el7.centos will be an update
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================
Updating:
MariaDB-server x86_64 10.5.4-1.el7.centos mariadb-main 26 M
Transaction Summary
===========================================================================================================================================================================
Upgrade 1 Package
Total download size: 26 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
MariaDB-server-10.5.4-1.el7.centos.x86_64.rpm | 26 MB 00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
******************************************************************
A MySQL or MariaDB server package (MariaDB-server-10.3.15-1.el7.centos.x86_64) is installed.
Upgrading directly from MySQL 10.3 to MariaDB 10.5 may not
be safe in all cases. A manual dump and restore using mysqldump is
recommended. It is important to review the MariaDB manual's Upgrading
section for version-specific incompatibilities.
A manual upgrade is required.
- Ensure that you have a complete, working backup of your data and my.cnf
files
- Shut down the MySQL server cleanly
- Remove the existing MySQL packages. Usually this command will
list the packages you should remove:
rpm -qa | grep -i '^mysql-'
You may choose to use 'rpm --nodeps -ev <package-name>' to remove
the package which contains the mysqlclient shared library. The
library will be reinstalled by the MariaDB-shared package.
- Install the new MariaDB packages supplied by MariaDB Foundation
- Ensure that the MariaDB server is started
- Run the 'mysql_upgrade' program
This is a brief description of the upgrade process. Important details
can be found in the MariaDB manual, in the Upgrading section.
******************************************************************
error: %pre(MariaDB-server-10.5.4-1.el7.centos.x86_64) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package MariaDB-server-10.5.4-1.el7.centos.x86_64
Verifying : MariaDB-server-10.5.4-1.el7.centos.x86_64 1/2
MariaDB-server-10.3.15-1.el7.centos.x86_64 was supposed to be removed but is not!
Verifying : MariaDB-server-10.3.15-1.el7.centos.x86_64 2/2
Failed:
MariaDB-server.x86_64 0:10.3.15-1.el7.centos MariaDB-server.x86_64 0:10.5.4-1.el7.centos
Complete!
失敗してるのにいつも元気に「Complete!」って出るのが個人的にツボる。