Percona Monitoring and Management(PMM)によるMySQLバックアップが便利そう

技術本部 サービスリライアビリティグループ(SRG)の鬼海(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、SRG 内にある DBWG(DBワーキンググループ)が全社内向けに提供しているデータベースに関する資料を公開します。
なにかの役に立てば幸いです。
 

はじめに


MySQLを運用したことのある方ならPercona社の名前は聞いたことがあるかと思います。
MySQLの運用を便利にしてくれるPercona-ToolkitやバックアップツールのXtraBackupなどのツールを開発している会社です。
そんなPerconaがリリースしているPercona Monitoring and Managementというツールのバックアップ管理機能が便利そうだったので触ってみました。
 

Percona Monitoring and Management(PMM)とは


PMMの紹介

Percona Monitoring and Management(PMM)は、Percona社が開発したモニタリングおよび管理ツールです。
MySQLだけではなくPostgreSQLやMongoDBなども管理できます。
クエリ解析やAlertingの機能などもあり非常に多機能な管理ツールとなっています。
 
公式Demoページからどんな管理ツールなのか触って体験することが可能です。
PMMには2016年頃からリリースされている1.xというバージョンと、2019年10月にGAリリースされたPMM2が存在します。
2023年2月現在の最新リリースは2.34.0となっています。
 

バックアップ管理機能

本日はバージョン2.18.0からテクニカルプレビュー機能でリリースされているバックアップ管理機能を試してみます。
MySQLのバックアップ機能は2023年2月現在もテクニカルプレビューのままとなっています。
 
MySQLのバックアップ管理機能のテクニカルプレビューの制限は下記の通りです。
  • 物理バックアップのみ。論理バックアップは非対応
  • 保存先はS3(またはS3互換API対応ストレージ)でローカル上や別サーバに出力不可
 
MongoDBのバックアップ機能については2022年11月リリースの2.32.0にてGAリリースとなっていて、上記の制限はありません。
MongoDBについては後日別の記事で紹介したいと思います。
 

PMMインストール手順


検証環境

ホスト名役割OSMySQL
DB1ソースCentOS 5.78.0.28
DB2レプリカCentOS 5.78.0.28
PMM01PMMサーバCentOS 5.7
 

PMMサーバの構築

公式ドキュメントのDockerをつかった構築方法に従います。
 
【PMM01にて】
Dockerインストール
 
PMM Serverのコンテナ起動まで
 
これで管理コンソールが立ち上がっているのでブラウザから確認可能です。
で先ほど指定したパスワードでログイン可能となります。
 

PMM Clientのインストールとノードの追加

【DB1,DB2にて】
 
管理対象のMySQLサーバにClientをインストールします。
 
PMM clientからMySQL接続できるユーザを作成します。
 
CLIでノード追加します。
 
※GUIからノード追加することもできますが、その場合は作成するMySQLユーザはPMM Serverからアクセスできるようにする必要があります。
GUIからノード追加する場合、左上のメニューの>矢印を押します。
 
[Configuration]→ [Add Instance to PMM]を選択します。
 
MySQLを選択します。
 
接続情報など必要情報を入力してAdd serviceを押します。
 
これでGUI上からノード追加することができます。

バックアップとリストアの実行


PMM Serverのバックアップマネジメント機能を有効にする

MySQLのバックアップ管理機能はテクニカルプレビューなので、別途有効にする必要があります。
左側メニューバーの歯車アイコンを選択→[PMM Settings]
 
[Advanced Settings[→[Backup Management]のボタンを有効化します。
 

PMM バックアップ機能の前提条件

バックアップ管理機能を利用するにはいくつかの前提条件があります。
  • PMM Clientがインストールされている
  • PMM ClientがMySQLに接続するユーザがBACKUP_ADMIN権限を持っている
  • MySQLがsystemdで起動している
  • mysqlユーザ、mysqlグループが存在している
  • データディレクトリが/var/lib/mysql である
  • pmm-agentユーザが/var/lib/mysqlディレクトリの読み書きできるようにする
  • パッケージをインストールして下記コマンドが実行できる