MySQL Backup · 1 min read · Dec 13, 2025
Ubuntu 16.04でPercona XtraBackupを使用してMySQLデータベースのホットバックアップを実行する
Percona XtraBackupはMySQL用のオープンソースバックアップユーティリティです。Percona Server、MariaDB、(Oracle) MySQLなど、すべてのMySQLフレーバーをサポートしています。Percona XtrabackupはMySQLのホットバックアップを実行します。ホットバックアップとは、ダウンタイムなしで実行中のMySQLサーバーのバックアップを作成することを意味します。
このチュートリアルでは、Ubuntu 16.04 (Xenial Xerus)上でオープンソースツールPercona XtraBackupを使用してホットMySQLデータベースバックアップを作成する方法を示します。バックアップを実行するためにMariaDBをデータベースサーバーとして使用しますが、同じセットアップはMySQLサーバーでも機能します。
前提条件
- Ubuntuサーバー16.04 - (Xenial Xerus)
- MySQLまたはMariaDBサーバー
- ルート権限
ステップ1 - Percona XtraBackupをインストールする
最初のステップは、最新のPercona XtraBackupソフトウェアをUbuntuサーバーにインストールすることです。SSH(またはコンソール)でサーバーにログインします:
ssh [email protected]
TYPE YOUR PASSWORDPercona XtraBackupはUbuntuリポジトリにありますが、最新バージョンをPerconaリポジトリから使用したいと思います。
ウェブからdebパッケージをダウンロードして、dpkgコマンドでインストールすることでPerconaリポジトリを追加します:
wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb次に、リポジトリを更新し、Percona XtraBackup 2.4(現時点での最新バージョン)をインストールします:
sudo apt-get update
sudo apt-get install percona-xtrabackup-24Percona XtraBackupがインストールされました。
ステップ2 - ユーザーとバックアップディレクトリを設定する
ホットバックアップを実行するには、特別な権限と許可を持つ新しいmysqlユーザーを作成する必要があります。このチュートリアルでは、データベースサーバーとしてMariaDB 10.0を使用します。MySQL互換のデータベースをまだインストールしていない場合は、以下のコマンドでインストールできます:
sudo apt-get install mariadb-server mariadb-clientこのコマンドでrootユーザーの安全なパスワードを設定します:
mysql_secure_installationMariaDBがインストールされている場合、mysqlクライアントコマンドでrootユーザーとしてMariaDB/MySQLシェルにアクセスします:
mysql -u root -p
TYPE MySQL PASSWORD‘ bekupuser ‘という名前の新しいユーザーを’ mypassword ‘というパスワードで作成します(サーバー用に安全なパスワードを選択してください!):
CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';ユーザーに次の権限を付与します:’RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT’。
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';
FLUSH PRIVILEGES;
exit次に、MySQLバックアップファイルを保存するための新しいディレクトリを作成します:
mkdir -p /data/backups/mysql/新しいバックアップユーザーとバックアップディレクトリが作成されました。
ステップ3 - Innobackupexでバックアップを実行する
InnobackupexはxtrabackupプログラムのためのPerlスクリプトラッパーです。これは、Oracleによって提供されるinnobackupスクリプトのパッチバージョンで、InnoDB Backupツールと共に配布されています。Innobackupexは、xtrabackupをxbstreamおよびxbcryptと組み合わせて使用して、MySQLデータベースインスタンス全体のバックアップを提供します。
このステップでは、MySQLインスタンスの完全バックアップを作成して準備します。
A. Innobackupexでバックアップを作成する
ステップ2では、バックアップ用の新しいディレクトリを作成し、新しいmysqlバックアップユーザーを追加しました。これらを使用してinnobackupexコマンドでバックアップを作成します。
新しいディレクトリ’/data/backups/my_backup’にinnobackupexでMySQLバックアップを作成します:
innobackupex --user=bekupuser --password=mypassword --no-timestamp /data/backups/my_backup注意:
–user = 必要なバックアップ権限を持つユーザー(ステップ-2)。
–password = バックアップユーザーのパスワード。
–no-timestamp = バックアップルートディレクトリに新しいタイムスタンプ付きサブディレクトリの作成を無効にします。
/data/backups/my_backup = バックアップ用のディレクトリで、バックアッププロセス中に自動的に作成されます。ディレクトリが存在する場合、エラーメッセージが表示されます。

別のオプション:
mkdir -p /data/backups/my_backup2
innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2
or
innobackupex --user=bekupuser --password=mypassword /data/backups/注意:
‘ my_backup2 ‘というディレクトリがない場合、’ timestamp ‘形式に基づいてディレクトリが作成されます。
結果:
B. Innobackupexで完全バックアップを準備する
新しいバックアップを作成した後、データは復元の準備ができていません。データが復元できるようにするためには、もう1つのステップが必要です。データが復元できるようにするために「準備段階」が必要です。
バックアップディレクトリ ‘/data/backups/my_backup ‘に対して、innobackupexを使用してバックアップを準備します:
innobackupex --apply-log /data/backups/my_backupプロセスがエラーなしで完了することを確認してから、次に進んでください。

十分なメモリがあり、大きなデータベースがある場合は、オプション –use-memory=memorynumber を使用してinnobackupexに使用可能なメモリ量を指定できます:
innobackupex --apply-log --use-memory=4G /data/backups/my_backupデータは復元の準備が整いました。これを同じサーバーまたはMariaDBを実行している別のサーバーに復元できます。
ステップ4 - Innobackupexで完全バックアップを復元する
このステップでは、innobackupexを使用してMySQLインスタンスを復元します。
MySQLインスタンスを復元する前に、systemctlコマンドでMySQLプロセスを停止する必要があります(MariaDBプロセスはmysqlと呼ばれます):
systemctl stop mysql古いMySQLデータディレクトリのバックアップを作成します:
mkdir ~/mysql_old/
mv /var/lib/mysql/* ~/mysql_old/次に、innobackupexを使用して完全バックアップからmysqlインスタンスを復元します:
innobackupex --copy-back /data/backups/my_backup‘ innobackupex: completed OK ‘という結果が表示されたら、MySQLインスタンスが正常に復元されたことになります。
次に、MySQLデータディレクトリの所有者をmysqlユーザーに変更し、サービスを再起動します:
chown -R mysql:mysql /var/lib/mysql
systemctl start mysql
MySQLインスタンスはpercona-xtrabackupで正常に復元されました。
参考文献
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。