注意:説明画像内において、以下のような黄緑色のチェックマークで示されている項目、また、各項目・機能の説明において有料オプションであると記載されている項目は、有料のオプションパックに含まれる内容です。オプションを購入されていないお客様の環境では、オプションの設定項目は表示されません。
注意:この機能・設定は有料のオプションパック (Advanced Backup) に含まれる内容です。
CloudBackupでは、MySQLやMariaDBのデータのバックアップが可能です。
また、インスタンス、データベース、テーブルの各レベルでの復元が可能です。
本機能を利用するための前提条件は以下の通りです。
- MySQLまたはMariaDBインスタンスが動作する物理マシンまたは仮想マシンに、rootユーザーとして、MySQL/MariaDBエージェントをインストールする必要があります。
- MySQLおよびMariaDBデータのバックアップは、64-bitのLinuxベースのオペレーティングシステムにのみご利用可能です。
本機能の制限事項は以下の通りです。
- MySQL/MariaDBのクラスター構成はサポート対象外です。
- Dockerコンテナで実行中のMySQL/MariaDBインスタンスは、サポート対象外です。
- BTRFSファイルシステムを使用するオペレーティングシステム上で実行中のMySQL/MariaDBインスタンスは、サポート対象外です。
- システムデータベース(sys、mysql、information-schema、performance_schema)とテーブルを含まないデータベースは、稼働中のインスタンスにリカバリできません。ただしこれらのデータベースは、インスタンス全体を復元する際にファイルとして復元できます。
バックアップしたインスタンスと同一またはそれ以降のバージョンのターゲットインスタンスに対する復元のみが、サポートされます。ただし、以下の制約があります。
・MySQL 5.xインスタンスからMySQL 8.xインスタンスへの復元はサポートされていません。
・MySQL 5.x(マイナーバージョンを含む)以降のバージョンへの復元は、インスタンス全体をファイルとして復元する場合のみサポートされます。復元を実行する前に、ターゲットバージョンの公式MySQLアップグレードガイド(『MySQL 5.7アップグレードガイド』など)を参照してください。Secure Zoneに保存されたバックアップからの復元はサポートされていません。
Secure Zoneについての詳細は、こちらAppArmorがインストールされているマシン上で動作するMySQL/MariaDBエージェントでは、データベースおよびテーブルを復元することはできません。インスタンスをファイルとして復元すること、またはマシン全体を復元することは可能です。
シンボリックリンクで構成されたターゲットデータベースへの復元はサポートされていません。バックアップされたデータベースは、名前を変えて新しいデータベースとしてリカバリすることができます。
【MySQLおよびMariaDBデータのバックアップ】
手順は以下の通りです。
- MySQLまたはMariaDBインスタンスが動作する物理マシンまたは仮想マシンに、
64bitのLinuxエージェントをインストールするために、
右上にあるアカウントアイコンをクリック→[ダウンロード] →[Agent for Linux (64-bit) ] をクリックしてインストールファイルをダウンロードします。 - こちら の手順でインストールを進めて、「エージェント for MySQL/MariaDB」のチェック ボックスを選択します。
- Linuxエージェントをインストールしたマシンにバックアップ計画を作成します。
左メニュー「デバイス」→マシンを選択→右アクションメニュー「保護」→計画の追加→計画の作成→保護 - 計画作成時、[バックアップの対象] は [マシン全体] を選択します。
(本機能は、 [マシン全体] が選択されている場合にのみ利用可能です。) - [アプリケーションバックアップ] をクリックします。
- [MySQL/MariaDBサーバー] の横にあるスイッチを有効にします。
- MySQLまたはMariaDBインスタンスを指定する方法を選択します。
・すべてのワークロードを許可
このオプションは、複数のサーバーで同一構成のインスタンスを実行する場合に使用します。
すべてのインスタンスで同じ接続パラメータとアクセス認証が使用されます。
・特定のワークロード向け
このオプションは、各インスタンスの接続パラメータとアクセス認証を指定します。 - [インスタンスを追加] をクリックして、接続パラメータとアクセス認証を指定します。
8-1)接続タイプを選択し、以下を指定します。
・(TCPソケットの場合)IPアドレスとポート
・(Unixソケットの場合)ソケットパス
8-2)インスタンスに対して以下の権限を持つユーザーアカウントの資格情報を指定します。
・すべてのデータベースおよびテーブル(*.*)に対応するFLUSH_TABLESまたはRELOAD
・information_schema.tablesのSELECT
8-3)[OK] をクリックします。 - [完了] をクリックします。その他の機能の設定を行い(詳細はこちら)計画を保存します。
【MySQLおよびMariaDBデータの復元】
MySQL/MariaDBのインスタンス、データベース、およびテーブルを復元することができます。
また、インスタンスが動作しているサーバーまるごと復元や、ファイル/フォルダ単位で復元することもできます。
復元元 | 復元データ | 復元先 |
MySQLサーバー MariaDBサーバー | マシン全体 | Linuxエージェントがインストールされているマシン* |
MySQLサーバー MariaDBサーバー | ファイルとフォルダ | Linuxエージェントがインストールされているマシン* |
インスタンス | ファイル | MySQL/MariaDBエージェントがインストールされているマシン* |
データベース | 同じデータベース 新しいデータベース | MySQL/MariaDBエージェントがインストールされているマシン*
|
テーブル | 同じテーブル 新しいテーブル | MySQL/MariaDBエージェントがインストールされているマシン*
|
*エージェントがインストールされている仮想マシンは、エージェントは物理マシンとして扱います。
〔サーバー全体を復元する〕
手順は こちら をご参照ください。
〔インスタンスを復元する〕
MySQL/MariaDBのインスタンスをファイルとして復元することができます。
- 左メニュー[デバイス]→マシンを選択→右アクションメニュー[復元]をクリックします。
- ご希望の復元ポイントをクリックします。
※マシンがオフラインの場合は復元ポイントが表示されないため、以下のどちらかの手順となります。
・バックアップ先がクラウドストレージまたは共有ストレージである場合は、
[マシンを選択] をクリックして、MySQL/MariaDBエージェントがインストールされているオンラインの、
他のマシンを選択すると、復元ポイントが表示されます。
この時選択したマシンが、復元先のマシンになります。
・左メニュー[バックアップストレージ] タブから復元ポイントを選択します。
参照元に指定されているマシンが、復元先のマシンになります。 - [復元] >[MySQL/MariaDBデータベース] の順にクリックします。
- 復元するインスタンスを選択してから、[ファイルとして復元] をクリックします。
- [パス] で、ファイルの復元先となるディレクトリを選択します。
- [復元を開始] をクリックします。
〔データベース/テーブルを復元する〕
稼働中のMySQL/MariaDBインスタンスにデータベース/テーブルを復元することができます。
- 上記の〔インスタンスを復元する〕の手順3まで進みます。
- 復元するインスタンスの名前をクリックし、復元対象のデータベース/テーブルを選択します。(複数選択可)
- [復元] をクリックします。
- [ターゲットMySQL/MariaDBインスタンス] をクリックし、ターゲットインスタンスの接続パラメータとアクセス認証を指定します。
4-1) データの復元先のインスタンスを確認します。デフォルトでは、元のインスタンスが選択されます。
4-2) ターゲットインスタンスにアクセスできるユーザーアカウントの資格情報を指定します。
このユーザーアカウントには、すべてのデータベースおよびテーブル(*.*)に対応する、
以下の権限を割り当てる必要があります。
・NSERT
・CREATE
・DROP
・LOCK_TABLES
・ALTER
・SELECT
4-3) [OK] をクリックします。 - ターゲットデータベース/テーブルを確認します。
デフォルトでは、元のデータベース/テーブル が選択されています。
新しいデータベース/テーブル として復元する場合は、ターゲットデータベース/テーブル の名前をクリックして、変更します。
この操作は、単一のデータベース/テーブル を復元する場合にのみ使用することができます。 - [既存のデータベース/テーブル を上書き] から、上書きモードを選択することができます。
デフォルトでは、上書きが有効になっており、バックアップされたデータベース/テーブル が、同じ名前のターゲットデータベース/テーブル と置き換えられます。
上書きが無効になっている場合、バックアップされたデータベース/テーブル は復元操作中にスキップされ、同じ名前のターゲットデータベース/テーブル と置き換えられることはありません。 - [復元を開始] をクリックします。
〔ストアドルーチンを復元する〕
MySQL インスタンス全体を復元する場合、ストアドルーチンは自動的に復元されますが、
個々のデータベースをオリジナルでないインスタンスに復元する場合、または、新しいデータベースとして復元する場合、ストアド ルーチンは自動的に復元されません。
SQL ファイルにエクスポートし、復元したデータベースに追加することで、手動でストアドルーチンを復元することができます。
- 元のMySQLインスタンスが存在するマシンで、ターミナルを開きます。
- 以下のコマンドを実行して保管済みルーチンをエクスポートします。
mysqldump -p [source_database_name] --routines --no-create-info --no-data > [exported_db_routines.sql]
データベースを復元したマシンで、MySQLコマンドラインクライアントを開きます。
以下のコマンドを実行して、復元したデータベースにルーチンを追加します。
mysql> use [recovered_database_name];
mysql> source [path_to_exported_db_routines.sql];
以上