毎日のデータベースバックアップ、ちゃんとできていますか?実は、データベースのクラウドバックアップを活用すれば、手間をかけずに安全なデータ保護が可能です。本記事では、オンラインでのデータベースバックアップの具体的な手順をやすく解説します。データ損失のリスクをゼロにしましょう!
ユーザーケース:
データベースのバックアップとリカバリ戦略について、いくつかの方法を教えてください
- Yahoo知恵袋からの質問
ご質問でいただいたように、データベースのバックアップとリカバリ戦略にはいくつものアプローチがあり、それぞれにメリットや注意点があります。特に「どのような方法でデータベースバックアップを取得すればよいのか」「オンラインで稼働中のシステムを止めずに安全にバックアップできるのか」といった点は、多くの方が最初にぶつかる壁です。
また、バックアップ先をオンプレミスにするか、データベースクラウドバックアップを活用するかという選択も、運用の手間やコストに大きく影響します。さらに、いざという時に備えてデータベース完全バックアップを定期的に取得しておくことは、リカバリの確実性を高める基本中の基本と言えるでしょう。
そこで本記事では、こうした疑問や不安を解消するために、オンラインでのデータベースバックアップの具体的な手順を、初心者の方にもわかりやすく順を追って紹介していきます。
一口にデータベースバックアップの方法といっても、利用するツールやアプローチによって特性が大きく異なります。ここでは、初心者から上級者まで、またデータサイズや運用環境に応じて最適な選択ができるよう、代表的な3つの手法を段階的に紹介します。
mysqldumpはMySQLに標準で付属している論理バックアップツールです。データベースの構造とデータをSQL文としてエクスポートするため、バックアップファイルはテキストエディタで中身を確認できるという利点があります。
また、生成されたSQLファイルは異なるMySQL互換のデータベース環境でもそのまま利用できるため、データベースバックアップの入門としても最適な手法です。
ステップ 1:ターミナルまたはコマンドプロンプトから、SSHを使用してデータベースサーバーにログインします。
ステップ 2:以下のコマンドを実行し、データベースのバックアップを作成します。
mysqldump -u [ユーザー名] -p --single-transaction [データベース名] > backup.sql
すべてのデータベースを一度にバックアップしたい場合は、--all-databasesオプションを使用します。
mysqldump -u [ユーザー名] -p --single-transaction --all-databases > all_backup.sql
さらに詳しい仕様やパラメータについては、MySQL公式ドキュメントを参照してください。
ステップ 3:コマンドを実行したディレクトリにbackup.sqlファイルが作成されます。このファイルを安全な場所(ローカルPCやクラウドストレージなど)にダウンロードして保管してください。
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
ステップ 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
これまで解説してきたmysqldumpやXtraBackupはどちらもコマンドラインやサーバー操作に慣れている方向けの手法でした。しかし、データベースバックアップの方法として「もっと手軽に」「サーバーに直接ログインしなくても」「クラウド上のストレージに直接バックアップしたい」というニーズも少なくありません。
特に最近では、データベースクラウドバックアップの需要が高まっており、バックアップ先をGoogle DriveやDropboxといった使い慣れたクラウドストレージにしたいと考える方も増えています。そこで登場するのが、MultCloudというオンラインサービスです。
MultCloudは、複数のクラウドストレージサービスを一元的に管理できるオンラインプラットフォームです。40以上のクラウドサービス(Google Drive、Dropbox、OneDrive、MEGAなど)やFTP/SFTP/WebDAVプロトコルに対応しており、異なるクラウド間でのファイル転送や同期、バックアップをブラウザ上で直感的に行えます。
それでは、MultCloudの「ウェブサイトバックアップ」機能を使って、データベースをバックアップする手順を説明します。
ステップ 1:MultCloudの公式サイトにアクセスし、メールアドレスとパスワードを入力して無料アカウントを作成します。
ステップ 2:ダッシュボード左側のメニューから「ウェブサイトバックアップ」を選択し、「バックアップ対象のウェブサイト」をタップしてバックアップしたいウェブサイトを追加します。
ステップ 3:次に、バックアップ先となるクラウドストレージを「クラウドを管理する」で画面の指示に従ってアカウント連携を完了させましょう。
ステップ 4:バックアップしたいデータベースやテーブルを選択し、先ほど追加したクラウドストレージを指定して「今すぐバックアップ」をクリックします。
MultCloudのウェブサイトバックアップ機能には、実運用を支える便利なオプションが充実しています。
そして、MultCloudの特筆すべきポイントは、バックアップ先としてクラウドストレージだけでなく、別のWebサイト(サーバー)を指定できることです。具体的には、FTP接続情報を持つ別のサーバーをバックアップ先として追加すれば、サイトAのデータをサイトBへ直接バックアップすることが可能になります。
MultCloudは無料プランでも十分な機能を利用できますが、より高速な転送速度や大容量の転送トラフィックが必要な場合は、有料プランへのアップグレードもご検討ください。
また、MultCloudは以下の機能を提供しています。
本当に価値を発揮するのは、サーバー障害や誤操作が発生した際に、データを迅速に復旧できる体制が整っているかどうかです。ここでは、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の場合は、タスクリストから復元したいバックアップを選択し、「戻す」をクリックするだけです。復元先は元の場所か新しい場所かを選べます。
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