ユーザーケース:データベースのバックアップ方法は?
ユーザーケース:
データベースのバックアップとリカバリ戦略について、いくつかの方法を教えてください
- Yahoo知恵袋からの質問
ご質問でいただいたように、データベースのバックアップとリカバリ戦略にはいくつものアプローチがあり、それぞれにメリットや注意点があります。特に「どのような方法でデータベースバックアップを取得すればよいのか」「オンラインで稼働中のシステムを止めずに安全にバックアップできるのか」といった点は、多くの方が最初にぶつかる壁です。
また、バックアップ先をオンプレミスにするか、データベースクラウドバックアップを活用するかという選択も、運用の手間やコストに大きく影響します。さらに、いざという時に備えてデータベース完全バックアップを定期的に取得しておくことは、リカバリの確実性を高める基本中の基本と言えるでしょう。
そこで本記事では、こうした疑問や不安を解消するために、オンラインでのデータベースバックアップの具体的な手順を、初心者の方にもわかりやすく順を追って紹介していきます。
オンラインでのデータベースバックアップの具体的な手順
一口にデータベースバックアップの方法といっても、利用するツールやアプローチによって特性が大きく異なります。ここでは、初心者から上級者まで、またデータサイズや運用環境に応じて最適な選択ができるよう、代表的な3つの手法を段階的に紹介します。
方法1:mysqldumpを使う方法
mysqldumpはMySQLに標準で付属している論理バックアップツールです。データベースの構造とデータをSQL文としてエクスポートするため、バックアップファイルはテキストエディタで中身を確認できるという利点があります。
また、生成されたSQLファイルは異なるMySQL互換のデータベース環境でもそのまま利用できるため、データベースバックアップの入門としても最適な手法です。
ステップ 1:ターミナルまたはコマンドプロンプトから、SSHを使用してデータベースサーバーにログインします。
ステップ 2:以下のコマンドを実行し、データベースのバックアップを作成します。
mysqldump -u [ユーザー名] -p --single-transaction [データベース名] > backup.sql
- -u:MySQLのユーザー名を指定します。
- -p:パスワード入力を促します。
- --single-transaction:InnoDBテーブルに対して一貫性のあるスナップショットを取得し、バックアップ中もデータベースへの書き込みをブロックしません。
- [データベース名]:バックアップ対象のデータベースを指定します。
- > backup.sql:出力先のファイル名を指定します。
すべてのデータベースを一度にバックアップしたい場合は、--all-databasesオプションを使用します。
mysqldump -u [ユーザー名] -p --single-transaction --all-databases > all_backup.sql
さらに詳しい仕様やパラメータについては、MySQL公式ドキュメントを参照してください。
ステップ 3:コマンドを実行したディレクトリにbackup.sqlファイルが作成されます。このファイルを安全な場所(ローカルPCやクラウドストレージなど)にダウンロードして保管してください。
方法2:XtraBackupを使う方法
Percona XtraBackupは、MySQLデータベースの物理バックアップを行うためのオープンソースのツールです。mysqldumpがSQL文を生成するのに対し、XtraBackupはデータファイルを直接コピーするため、大規模なデータベースでも高速にバックアップを取得できます。
何より、データベースを停止することなくオンラインバックアップが可能で、MySQLデータベースバックアップにおいては特に大容量DBや高負荷な本番環境での採用が推奨されています。
ステップ 1:使用しているOSに合わせてXtraBackupをインストールします。XtraBackup 8.0はMySQL 8.0との互換性が必要なため、バージョンに注意してください。
ステップ 2:以下のコマンドを実行し、バックアップを作成します。
xtrabackup --backup --target-dir=/path/to/backup
- --backup:バックアップモードで実行します。
- --target-dir:バックアップファイルの保存先ディレクトリを指定します。
ステップ 3:バックアップが完了したら、以下のコマンドでバックアップを適用可能な状態にします。
xtrabackup --prepare --target-dir=/path/to/backup
バックアップ中にコピーされたデータファイルは、異なるタイミングでコピーされたため、そのままでは時点整合性が取れていません。この--prepare処理によって、コピーされたログファイルを使ってクラッシュリカバリを実行し、データファイルを一貫性のある状態に仕上げます。
ステップ 4:MySQLサーバーを停止した後、準備済みのバックアップをデータディレクトリにコピーします。
sudo systemctl stop mysql
xtrabackup --copy-back --target-dir=/path/to/backup
または、rsyncなどを使って手動でコピーすることも可能です。
ステップ 5:コピーしたファイルの所有者をMySQLユーザーに変更し、MySQLを再起動します。
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mysql
方法3:GUIツールを使う方法
これまで解説してきたmysqldumpやXtraBackupはどちらもコマンドラインやサーバー操作に慣れている方向けの手法でした。しかし、データベースバックアップの方法として「もっと手軽に」「サーバーに直接ログインしなくても」「クラウド上のストレージに直接バックアップしたい」というニーズも少なくありません。
特に最近では、データベースクラウドバックアップの需要が高まっており、バックアップ先をGoogle DriveやDropboxといった使い慣れたクラウドストレージにしたいと考える方も増えています。そこで登場するのが、MultCloudというオンラインサービスです。
MultCloudは、複数のクラウドストレージサービスを一元的に管理できるオンラインプラットフォームです。40以上のクラウドサービス(Google Drive、Dropbox、OneDrive、MEGAなど)やFTP/SFTP/WebDAVプロトコルに対応しており、異なるクラウド間でのファイル転送や同期、バックアップをブラウザ上で直感的に行えます。
- ★MultCloudを使うメリット:
- サーバー知識が不要:コマンドラインを使わず、ブラウザ上のGUIで完結するため、初心者でも簡単にデータベースバックアップを始められます。
- ダウンロードとアップロードの手間がゼロ:データを一度自分のPCにダウンロードしてからクラウドにアップロードする必要がなく、クラウド間で直接転送されるため、時間と通信量を節約できます。
- 自動バックアップが可能:スケジュール機能を使えば、定期的なデータベースの完全バックアップを自動化でき、うっかり忘れを防げます。
- セキュリティ対策も万全:転送中および保存中のデータはAES-256暗号化で保護され、MultCloud自体はユーザーのデータを保存しない設計です。
それでは、MultCloudの「ウェブサイトバックアップ」機能を使って、データベースをバックアップする手順を説明します。
ステップ 1:MultCloudの公式サイトにアクセスし、メールアドレスとパスワードを入力して無料アカウントを作成します。
ステップ 2:ダッシュボード左側のメニューから「ウェブサイトバックアップ」を選択し、「バックアップ対象のウェブサイト」をタップしてバックアップしたいウェブサイトを追加します。
ステップ 3:次に、バックアップ先となるクラウドストレージを「クラウドを管理する」で画面の指示に従ってアカウント連携を完了させましょう。
ステップ 4:バックアップしたいデータベースやテーブルを選択し、先ほど追加したクラウドストレージを指定して「今すぐバックアップ」をクリックします。
MultCloudのウェブサイトバックアップ機能には、実運用を支える便利なオプションが充実しています。
- メール通知機能では、バックアップタスクが完了したタイミングで指定したメールアドレスに自動で完了通知が届くため、手動で進捗を確認する手間が省けます。
- スケジュール設定にも対応しており、バックアップの実行頻度を「毎日」「毎週」「毎月」などから自由に選択できます。一度設定しておけば、あとは自動で定期的なバックアップが実行されるため、うっかり忘れを防ぎます。
そして、MultCloudの特筆すべきポイントは、バックアップ先としてクラウドストレージだけでなく、別のWebサイト(サーバー)を指定できることです。具体的には、FTP接続情報を持つ別のサーバーをバックアップ先として追加すれば、サイトAのデータをサイトBへ直接バックアップすることが可能になります。
MultCloudは無料プランでも十分な機能を利用できますが、より高速な転送速度や大容量の転送トラフィックが必要な場合は、有料プランへのアップグレードもご検討ください。
また、MultCloudは以下の機能を提供しています。
- クラウド転送:大量のファイルを高速であるクラウドから別のクラウドに転送可能です。スケジュール設定やファイルフィルター機能を利用して効率的に管理できます。
- チーム転送:ビジネス向けクラウドアカウント間で、対応するユーザーリストを使用してデータを移行できます。
- クラウド同期:ワンクリックでクラウド間のデータを同期可能です。リアルタイム同期やシンプル同期などの4つの基本モードに加え、6つの高度な一方向同期モード(サブスクライバーのみ利用可)を選択できます。
- クラウドバックアップ:オフライン機能を備えたクラウド間のバックアップが可能です。便利なバックアップバージョン管理でデータを安全に保管できます。
- リモートアップロード:オンラインファイルのリンクをMultCloudに入力するだけで、直接クラウドに保存可能。
- メールからPDFへ:メールをPDFに変換し、添付ファイル付きでローカルまたはクラウドに保存できます。
おまけ:いざという時の復旧手順
本当に価値を発揮するのは、サーバー障害や誤操作が発生した際に、データを迅速に復旧できる体制が整っているかどうかです。ここでは、MultCloudのウェブサイトバックアップ機能を使って作成したバックアップをもとに、実際にサイトを復元する手順をステップバイステップで解説します。
復元作業をスムーズに進めるため、事前に以下の項目をチェックしておきましょう。
- バックアップファイルが正しく作成されていること(タスクリストでステータスが「成功」となっていることを必ず確認してください)
- 復元先となるサーバーやデータベースへのアクセス情報が利用可能であること
- 念のため、現在のサイトデータを別途保存しておくこと(復元時の上書きによる思わぬトラブルを防ぎます)
ステップ 1:MultCloudにサインインしたら、左側のメニューから「タスクリスト」タブを選択します。ここには、これまでに作成したすべてのバックアップタスクが一覧で表示されます。
ステップ 2:復元対象のタスクの行右端にある「…」(三点リーダー)アイコンをクリックし、表示されたメニューの中から「戻す」を選びます。
ステップ 3:ポップアップウィンドウが表示され、同じタスク内で過去に実行された複数のバックアップバージョンから復元ポイントを選択できます。
ステップ 4:復元先の場所を以下の2つから選択します。
- 「元の場所へ復元する」:元のサーバーやデータベースに対して上書き復元を行います。
- 「新しい場所に復元する」:別のサーバーや別のデータベースを復元先として指定できます。
すべての設定が完了したら、ウィンドウ右下の「戻す」ボタンをクリックします。復元処理が開始され、進捗状況はタスクリスト上でリアルタイムに確認できます。
復元作業はバックアップ運用の最終工程であり、データベースバックアップの完全性を担保するためにも、定期的に復元テストを実施することをおすすめします。
まとめ
データベースバックアップは「手段」であって「目的」ではありません。本記事では、コマンドライン初心者でも扱いやすいmysqldump、大規模・高負荷環境に適したXtraBackup、そしてサーバー知識が不要でデータベースクラウドバックアップを実現できるMultCloudという3つのオンラインバックアップ手法を紹介しました。どの方法を選ぶにせよ、定期的なデータベース完全バックアップの取得と、復元テストの実施が最終的なデータ保護の要となります。
MultCloudはウェブサイトバックアップのほかにも、異なるクラウドストレージ間でファイルを直接同期できる「クラウド同期」機能で、Synology NASとOneDriveを同期できて、クラウド運用の幅をさらに広げてくれます。
よくある質問
1.データベースのバックアップとは何ですか?
データベースのバックアップとは、障害や誤操作、サイバー攻撃などに備えて、データベース内の構造やデータを複製し、別の場所に保存しておくことです。万が一データが損失した場合でも、バックアップから復元することでシステムを正常な状態に戻せます。
2.データベースのバックアップにはどんな種類がありますか?
主に「論理バックアップ」と「物理バックアップ」の2種類があります。論理バックアップ(mysqldumpなど)はSQL文として出力し、物理バックアップ(XtraBackupなど)はデータファイルを直接コピーします。また、MultCloudのようなクラウドツールを活用すれば、GUIで手軽にバックアップを管理することも可能です。
3.データベースの完全バックアップと差分バックアップの違いは何ですか?
完全バックアップはデータベース全体をすべてコピーする方法で、復元が最も確実ですが容量と時間を要します。差分バックアップは、前回の完全バックアップ以降に変更された部分だけを保存するため、保存容量を抑えられ、復元も比較的高速です。
4.XtraBackupを使ったオンラインバックアップのメリットは何ですか?
XtraBackupはデータベースを停止せずに物理バックアップを取得できるため、大規模データベースや高負荷な本番環境に最適です。データファイルを直接コピーするためバックアップが高速で、--prepare処理により一貫性のある復元が可能になります。
5.コマンドラインが苦手ですが、GUIツールでデータベースバックアップをする方法はありますか?
はい、MultCloudのようなオンラインサービスを使えば、ブラウザ上のGUI操作だけでデータベースバックアップが可能です。コマンドライン不要で、Google Driveなどのクラウドストレージを保存先に指定でき、スケジュール機能を使った自動バックアップも簡単に設定できます。
6.バックアップを取った後、いざという時の復旧手順を教えてください。
復旧手順はツールによって異なります。MultCloudの場合は、タスクリストから復元したいバックアップを選択し、「戻す」をクリックするだけです。復元先は元の場所か新しい場所かを選べます。
MultCloudがサポートするクラウド
-
Google Drive
-
Google Workspace
-
OneDrive
-
OneDrive for Business
-
SharePoint
-
Dropbox
-
Dropbox Business
-
MEGA
-
Google Photos
-
iCloud Photos
-
FTP
-
box
-
box for Business
-
pCloud
-
Baidu
-
Flickr
-
HiDrive
-
Yandex
-
NAS
-
WebDAV
-
MediaFire
-
iCloud Drive
-
WEB.DE
-
Evernote
-
Amazon S3
-
Wasabi
-
ownCloud
-
MySQL
-
Egnyte
-
Putio
-
ADrive
-
SugarSync
-
Backblaze
-
CloudMe
-
MyDrive
-
Cubby