MariaDBのアップデートで四苦八苦

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

先ほど今使っているサーバーのMariaDB ((MySQLの派生RDBMSで、基本的にMySQLそのものとして使える)) のバージョンを10.0から10.1に切り替える作業を行っていたが、パッケージのアップグレード作業でエラーが発生、一度はしくじった結果となった。最終的には解決されたのだが、どうやって対処したのかを述べてみたい。

まず、原因を自分なりに確認したら、今回の場合は大体以下に集約された。

  • /etcディレクトリーが割り当てられているパーティション、今回はルートディレクトリに割り当てられているパーティションの空容量が少なかった
  • しかもetckeeperのデータがが容量の圧迫をより悪化させていた
  • 上記が重なった結果、使用率が100%に達していた

まずは一旦etckeeperをアンインストール、/etc内の.gitのデータを消し、mariadbもデータベース情報を残したまま一旦削除し、再度10.0を再インストール、このままではうまくいかないので、/var/lib/mysql/debian-10.1.flag ((Debian環境下でMariaDB 10.1以降を使用していることを示すフラグファイル)) を削除した上でmariadb-serverとmariadb-client(共に10.0)を再インストール、さらにphp5-mysqlをインストールして動作が復旧したのを確認した上で、パッケージのリポジトリを10.1のものに変更し、アップグレードしなおすという作業を行った。今度は成功し、ようやくMariaDB 10.1で動くようになった。

パーティションの割り当てがあまり適切ではなかったようで、ついでにパーティションの割り当てにも修正を加えた。具体的には空容量が非常に多い/homeに割り当てられているパーティションの割り当てを減らし、ルートディレクトリーに割り当てられているパーティションの割り当てを増やすようにした。当方の環境ではLVMを使っているため、比較的容易に行えた。

まずは、パーティションのリサイズを行う。一旦シングルモードで再起動したうえで、以下のコマンドを入れる。なお、以下の場合はhomeパーティションが100GBの状態で、うち1GBをルートパーティションに割り当て直す場合である。

[code lang=”bash”] $ e2fsck (homeディレクトリーのパーティション)
$ resize2fs (homeディレクトリーのパーティション) 99G
$ lvresize -L 99G (homeディレクトリーのパーティション)
$ lvresize -L +1G (ルートディレクトリーのパーティション)
$ resize2fs (ルートディレクトリーのパーティション)[/code]

(注: 警告等は割愛した)

今回は1GBのリサイズで行ったが、任意のサイズにしたい場合は、1Gの部分を適宜適切なものにすれば良い。

作業が終わったら再起動すれば、完了だ。

(5月6日追記・訂正など)
LVMによるパーティションの割り当てし直しについて、コマンドの順番に不適切なものがありました。パーティションの割り当てを減らす場合、まず割り当てを減らしたいパーティションのfsck及びresize2fsを行ってからlvresizeを行わないと、パーティションのデータが壊れる危険性が高いです。現在のバージョンではその部分を修正しています。

なおパーティションの割り当てを大きくする場合は従来通りlvresizeをかけてからresize2fsをかける方法で行ってください。

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