mariadbを10.11(jammy)から11.4(noble numbat)へ切り替え
母艦として利用してるローカルlinuxも、xrdpコンテナもベースosをjammyからnumbatへ切り替えた。 ローカルkubernetesもminikubeからmicrok8sに切り替えて、利用イメージをnumbatへ切り替えた。 google cloudの中のベースosもxrdpも同じくnumbatへ切り替えた。 面倒やし書かへんけど、業務利用してるawsの中のamazonlinux2023で動かしてるコンテナもnumbatのxrdpに変えてみた。 今月けっこうがんばったな。 もしかしてと思ってdockerhub見たら、mariadbもベースosがnumbatのが出てるやん。 ただ上がるだけやったら放置やけど、LTSが出とる。 コンテナのバージョンアップしたほうがええな。 検証利用やし、メモなしで業務利用のawsの中のmariadbをnumbatにバージョン上げてダンプファイル突っ込んだら、あっさり動いた。 今回は母艦の中のdockerで動いてるmariadbをnumbatに上げる。 mariadbのダンプファイルはテキストになってて、createしたりinsertしたりするからデータの保全はほぼ常にできてる。 バージョンの特定 世間一般へのアナウンスは11.4がLTSってなってた。 MariaDB | endoflife.date endoflife.date dockerhubにタグがあって11.4がある。 hub.docker.com 11.4-nobleは11.4.2ってのと同じdigestになってるから、11.4.2を使えばええっぽい。 11.4.2より新しい11.5ってのもあるけど、LTSやないみたいやから要らん。 ubiってもしや? なんと、タグ名にubiってのがついてるのがある。 もしかしてUniversalBaseImageの略? redhatのこととちゃうんか? ググったら出てきた。 UBI based Docker Official Images - MariaDB.org mariadb.org 「エンタープライズ向けユーザにお知らせでーす」って赤い帽子かぶってるやん。 いろんなプラットフォームで動いてくれるのはええことかなって思う。 サポートの都合でredhat一択っていうユーザ企業もあるやろし。 redhatは母艦にあるubuntuに比べたら、使ってるカーネルが古い傾向があったはず。 dockerは親ホストとコンテナがカーネル共有するから、わけわかめな誤動作出たらイヤやしubiは使わん。 ibmの息がかかったプロダクトはredhat/centosみたいな末路たどるんとちゃうかってイヤな予感。 mysqlがubi使ってもええけど、mariadb大丈夫か? もしDBMSを切り替えるとしたら、postgresqlでもええけど、あのデータベースは運用途中で勝手に最適化動いて遅くなるのがイマイチ。 何年か前に業務で、javaのガベージコレクションがまとめて動いたときみたいな、悲惨な応答速度になることが夜間バッチであったな。 別のデータベースの可能性を探しながら様子見るしかないな。 どのへんが変わったか データベースそのものを変えるときはsql発行で使えんようになったものとか、使ってる処理に制限が出て影響出えへんかを気にする。 シンプルなsqlだけ使ってたら気にせずでええんやけど、ストアドとか使ってたらdbmsの変更すらできん。 世の中にはこのせいでoracleから抜け出せへんユーザ企業あるやろしな。 同じデータベースで、しかもバージョン変更だけやし、djangoから利用するのが前提やから、それほど気にせずアプリケーションテストでほぼ大丈夫なはずやけど、リリースノートは軽く読む。 MariaDB 11.4.2 Release Notes | MariaDB Documentation mariadb.com けっこういっぱい書いてある。 LTSやししゃぁないんかもしれん。 mysqldumpはmariadb-dumpに変わったんかな。 データの流し込みのとき気をつけなアカンかもな。 真面目に英語読んだのは5行。あとは読む気が萎えた・・・。 バグ対処とかいろいろあるんやろな。 型とかsqlは致命的な変更なさそうに思うけど大丈夫なんかなぁ。 事実を列挙するだけやのうて、使う側目線でもうちょっと読みやすかったらええのに。 どう保全するか 扱ってるデータベースには、djangoアプリからお金の情報/時間の情報/活動記録として数値とテキスト、名刺とか受け取り資料のpdf/jpegがblob列に入ってる。 帳簿は7年分を別途でpdf保管してるから、数字とかテキストを目検で追いかけたり、登録可否を確認する。 古いほうのバージョンのdbmsからのダンプを登録できる(インポート) 7年分の合計金額が1円単位であう(sql集計の確認) djangoのmatplotlibで円グラフ表示させてるパーセンテージが小数点以下でズレてへん(djangoでの集計) 月次の活動記録のテキストとpdf/jpegを任意で拾って化けてたり読み取り不良になってへん(blob列のデコード) mariadbに設定してるmax_allowed_packetを超えへんサイズのpdfがblob列にinsertできる(blob列へのbase64保管) 極端に挙動が遅くなってたりせんか(django画面での応答速度) 意識しながらdjangoの画面を開いて確認やな。 ...