先日からワードプレスが引き金となって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!」って出るのが個人的にツボる。