
1995 年以来、MySQL はリレーショナルデータベース管理システムとして、世界中で何百万もの企業で選ばれてきました。
MySQL で使用されている柔軟性の高い構造化照会言語(SQL)アーキテクチャと、低コストのオープンソースライセンシングにより、会計からERPソフトウェア、Joomla や WordPress のような Web サーバーアプリケーションまで幅広いアプリケーションの理想的なデータリポジトリになっています。実際に、iDatalabs レポートによると、中規模から大規模のすべての企業の約25%がさまざまな形でMySQL 使用しています。MySQL がビジネスに提供しているものを考慮すると、MySQL データベースには、さまざまな規模の組織のデータ可用性と事業継続を確保するための適切な保護が必要です。
この記事では、独自のバックアップ戦略を設計して効果的に実装できるように、さまざまな MySQL バックアップ方法について説明します。
MySQL データベースのバックアップとは
MySQ Lデータベースバックアップとは、MySQL Server によって使用される企業の構造化データのコピー (バックアップファイル) を作成するプロセスを指します。SQL データベースバックアップは、Microsoft SQL Server によって使用される組織の構造化データのバックアップを指すこともあります。データベースバックアップの目的は、偶発的な削除、人為的ミス、システムクラッシュ、自然災害、またはサイバー攻撃の後に元のデータベースを再構築できるよう、すぐに利用できる復元方法を準備することです。
SQL データベースのバックアップを作成するには、さまざまな方法があります。一般的な方法もあれば、特定ケースで使用される方法もあります。この記事では、SQL バックアップの理解を深め、独自のバックアップ戦略を実装するのに役立つように、MySQL と SQL Server の両方のバックアップ方法について説明します。
SQL におけるおもなバックアップ方法とは
MySQL バックアップは、次のおもなカテゴリに分類できます。
論理
論理バックアップでは、「CREATE」または「INSERT」SQL ステートメントを生成して、特定のデータベース構造を .sql ファイルに出力します。その後、mysqldump ーティリティを使用してバックアップを復元できます。このアプローチでは、インデックスのないデータのみがバックアップされるため、バックアップサイズが小さくなります。ただし、復元を有効にするにはすべての SQL ステートメントを1つずつ実行する必要があるため、バックアップ速度が遅くなります。
物理 (部分バックアップまたは完全バックアップ)
物理バックアップでは、ソースディスクに格納されている元の形式でデータベースファイルがコピーされます。この方法は論理バックアップよりも高速ですが、同じデータベースエンジンから MySQL サーバーにのみ復元できます。
整合性 (スナップショット)
整合性バックアップでは、サーバーがロックされるか実行が停止した後にのみ、正確な時点 (瞬間) でファイルがコピーされます。
増分バックアップ
増分バックアップは、最後のバックアップ (完全または増分) 以降に変更されたデータで構成されます。増分バックアップは、データの可用性を維持しながら記憶域を最適化するために、大規模なデータセットに適しています。完全バックアップよりも時間と記憶域の容量が少なくなりますが、次のようなリスクが組織に発生する可能性があります。
- l増分バックアップは、目標復旧時間 ( RTO ) に悪影響を与える可能性があります。完全なデータ復旧では、最初の完全バックアップを復元した後、目的の復旧ポイントまですべての増分バックアップを復元する必要があるためです。
- 増分バックアップが壊れると、一連の増分バックアップ全体が無効になる可能性があります。
バイナリログバックアップ
バイナリログファイル ( BinLogs とも呼ばれる) は、システムに変更を加えたすべての SQL クエリのレコードで構成されます。バイナリログバックアップは増分バックアップのサブタイプであり、目標復旧時点 ( RPO ) に対応するように設計されています。企業は、mysqlbinlog を使用してリモートサーバーからバイナリログをストリーミングすることができるため、最後にバックアップされたバイナリログまでリカバリできます。
Microsoft SQL Server に関しては、フル、差分、トランザクションログ、コピーのみ、およびテールログバックアップの5つのバックアップタイプが可能です。ただし、最初の3つの方法はもっとも一般的であるため、以下で最初に説明します。
SQL Server Management Studio による完全バックアップ
完全バックアップは、SQL Server データベース全体で構成され、データベース内に格納されているすべてのテーブル、関数、プロシージャ、ビュー、インデックスなどをバックアップします。次を使用して、SQL Server データベースの完全バックアップファイルを作成できます。
- SQL Server Management Studio
- Transact-SQL (T-SQL)
- PowerShell
- 専用のサードパーティ製データベースバックアップソリューション
完全バックアップでは、バックアップの作成時とまったく同じ状態で SQL Server データベースを復元できます。さらに、完全バックアップは、他のすべてのバックアップの種類(例:差分バックアップでは、最初に作成されたフルバックアップが少なくとも1つ必要)の土台となります。
差分バックアップ
差分バックアップには、最後に完了したデータベースの完全バックアップ以降に変更されたデータのみが含まれます。通常、差分バックアップは、すべてのデータベースオブジェクト (状態に関係なく) ではなく、変更されたデータまたは新しいデータのみをコピーするため、完全バックアップよりも時間がかかりません。
ただし、複数の連続した差分バックアップファイルを作成する場合は、最初の完全バックアップを基盤として使用するため、新しい差分コピーごとに変更されたデータが複製されます。
たとえば、日曜日に完全バックアップを作成した後、火曜日、木曜日、土曜日に3つの差分バックアップを作成できます。
- 最初の差分バックアップには、日曜日 (完全バックアップを作成した日) から火曜日までの変更されたデータと新しいデータが含まれます。
- 1番目の差分バックアップには、日曜日から木曜日までの変更されたデータと新しいデータが含まれます。(したがって、それはより大きくなります)
- 3番目の差分バックアップには、日曜日から土曜日までの変更されたデータと新しいデータが含まれます。(さらに大きくなります)
後続の差分バックアップは、完全バックアップと同じサイズになる可能性があります。その結果、復元には完全バックアップと対応する差分バックアップの両方が必要になるため、復元時間が長くなります。復元時間と記憶域の使用量を最適化するには、定期的に完全バックアップを作成し、既存のすべてのバックアップに適切な保存期間を設定することが最善です。データベースを復元する必要がある場合は、最後の完全バックアップと、問題が発生した時点にもっとも関連する差分バックアップを復元する必要があります。これにより、かなり前に作成された完全バックアップのみを復元するよりも、迅速かつ最新の状態で復元できます。
トランザクションログのバックアップ
トランザクションログ (T-Log) バックアップは、もっとも詳細な SQL Server データベースバックアップの種類です。これらは、最後の T-Log バックアップ以降に特定の SQL データベースに対して行われた変更のみで構成されるため、増分バックアップと見なすことができます。信頼性の高いポイントインタイム復元を可能にし、データ損失を最小限に抑え、最短の時間枠 (数分ごとなど) で開始できます。
どのバックアップ方法を選択する必要があるか
SQL サーバーにはさまざまなアプリやプロジェクトに不可欠なデータが格納されているため、MySQLデータベースのバックアップはすべてのビジネスにとって重要です。ただし、MySQL バックアップの最適な戦略を定義することは困難な場合があります。ニーズと好みに合わせてバックアッププロセスを調整するには、さまざまな要因 (サイズ、パフォーマンス、可用性、RTO 、RPO ) を考慮する必要があります。以下では、SQL データベースのバックアップ戦略を設計するときに考慮すべき主な要因について説明します。
バックアップ方法
上で述べたように、MySQL データベースのおもなバックアップ方法として、論理、物理、一貫性があります。SQL Server データベースでは、完全バックアップ、差分バックアップ、およびトランザクションログバックアップの選択肢があり、それぞれ利点と欠点があります。
たとえば、完全バックアップでは、データベース全体をコピーし、追加工程なしで特定の時点に復元できます。ただし、完全バックアップにはもっとも 多くの時間とストレージ領域が必要です。一方、差分バックアップファイルに必要な時間とストレージ領域は少なくなりますが、後続の差分バックアップはすぐに蓄積され、ストレージ領域の問題が発生する可能性があります。増分バックアップはもっとも 迅速に作成でき、その時点がバックアップ間隔内にある限り、データベースを特定の時点に復元できます。ただし、必要なポイントインタイムリカバリに到達するには、複数の増分バックアップ (および最初の完全バックアップ) から回復させる必要があり、ダウンタイムに影響する可能性があります。
RTO (目標復旧時間) と RPO (目標復旧時点) を満たすには、3つの方法を組み合わせることをおすすめします。この戦略では、ストレージ領域を最適化し、バックアップと復元のプロセスにかかる時間を短縮し、ダウンタイムを最小限に抑えることもできます。
バックアップ頻度
バックアップ頻度は、おもに次の2つの要因を考慮します。
- データ変更または作成の頻度
- 障害発生時に損失を許容できるデータの量
たとえば、データセットが比較的静的であり、ある程度のデータ損失を許容できるとします。その場合は、月単位の完全バックアップ、週単位の差分バックアップ、および日単位の増分バックアップを使用できます。ただし、非常に動的なデータ負荷を処理し、データ損失を最小限に抑える場合は、数分または数時間ごとの増分バックアップと組み合わせて、より頻繁な完全バックアップと差分バックアップを実装する必要があります。
さらに、ネットワーク帯域幅、ストレージ領域、およびデータベース全体のパフォーマンスに対するバックアップの影響を考慮する必要があります。
バックアップ保存先
バックアップ保存先は、データベースバックアップ戦略のもう1つの重要な側面です。一般に、ハードウェア障害、自然災害、盗難などからデータベースを保護するために、リモートサーバー(たとえば、物理的なデータセンターではクラウド)に少なくとも1つの運用バックアップコピーを保持することをおすすめします。
バックアップの保存には、テープドライブ、ローカルディスク、NAS、クラウドストレージなど、さまざまな方法を使用できます。各ストレージには、バックアップと復元の速度、データセキュリティ、信頼性、およびスケーラビリティに関する利点と欠点があります。すべての組織は、最適な復旧とビジネス継続性を確保するために、可用性、予算、コンプライアンス要件に基づき、最適な保存先を選ぶ必要があります。
自動化
自動化することで SQL データベースバックアップは大きく変わります。これにより、バックアップの一貫性、効率性、信頼性が確保され、すぐに復旧できるようになります。データベースバックアップの自動化に役立つネイティブオプション (SQL Server Management Studio 、 Azure Data Studio ) を使用して、T-SQL スクリプトとタスクスケジューラを活用し、SQL Server Express データベースバックアップを自動化できます。
また、サードパーティの専用バックアップソリューションを選択して、SQL Server または MySQL のバックアップをスケジュールし、その状態を監視し、バックアップの整合性を確認し、データ保持レベルを管理して保存領域を効率的に最適化することもできます。データベースバックアッププロセスを自動化すると、人為的ミスを減らし、時間を節約し、復旧工程を向上させられます。
バックアップテスト
バックアップテストは、信頼性の高いデータベースバックアップ工程の最後の基本要素です。バックアップテストは、すべてのデータベースバックアップの有効性、完全性、および可用性を検証するために不可欠です。一般に、バックアップを別のサーバー (空のデータベース) に復元し、現在のデータの品質、機能、および一貫性を確認できます。また、移行先データベースからの部分バックアップ、ポイントインタイムバックアップ、ログ末尾のバックアップ復旧など、さまざまな復旧オプションについてテストすることもできます。
バックアップテストは、データベースバックアップ戦略内の潜在的な問題やセキュリティの脆弱性を見つけ修正し、障害発生時に迅速かつ効率的なデータベース復旧工程にするのに役立ちます。
SQL バックアップは自動化できるか
簡単に言えば、組織が生産性の中断を懸念している場合、または回復ポイントオブジェクト ( RPO ) を改善したい場合は、MySQL バックアップを自動化できます。MySQL バックアップの自動化は、組織の時間、リソース、または収益を犠牲にすることなく、組織がデータ損失に対して実行できるもっとも 影響力のある手段です。自動化されたスケジュールを使用すると、企業は MySQL バックアップを実行するタイミングを制御して、予期しないダウンタイムや運用の中断を回避できます。MySQL 環境に保護を拡張するバックアップソリューションは、通常、次の手順で実装できます。
- 適切なソリューションをインストールし、MySQL データベースがホストされているサーバーに保護ソリューションがインストールされていることを確認します。または、MySQL サーバーへのアクセスが許可されているネットワークに接続されたコンピューターに保護ソリューションをインストールすることもできます。
- 必要な資格情報を用意しておく必要があります。MySQL データベースへのアクセスとバックアップに不可欠なユーザー名とパスワードを用意しておきます。
- MySQL バックアップ目的のバックアップ保護計画を作成します。
- MySQL データベースをバックアップのソースとして指定します。たとえば、Acronis Cyber Protect では、ログイン資格情報、サーバーアドレス、およびポートの詳細を指定する必要がある場合があります。
- バックアップ方法を検討します。完全バックアップではデータベース全体をバックアップできますが、増分バックアップは最後のバックアップ以降に行われた変更にのみ適用されます。さらに、日常業務に適したスケジュールを選択できます。バックアップの頻度は、 MySQL データベースの重要度によって異なります。毎日、毎週、またはカスタム間隔は、広く知られている設定項目です。
- MySQL バックアップを保存する場所を慎重に選択します。これには、ローカルディスク、ネットワークストレージ、またはサポートされているクラウドストレージサービス環境を含めることができます。
Acronis Cyber Protect を使用して SQL バックアップを自動化するには
Acronis Cyber Protect を使用して MySQL バックアップを自動化すると、MySQL データベースと対話して定期的なバックアップを実行するように設定できます。Acronis Cyber Protect は、MySQL などのデータベースをバックアップする機能を含むさまざまな機能を提供する包括的なバックアップソフトウェアです。以下は、Acronis Cyber Protect を使用して自動 MySQL バックアップを設定する方法を示します。
初期セットアップ
1. Acronis のインストール: MySQL データベースがホストされているサーバー、または MySQL サーバーにアクセスできるネットワーク接続されたコンピューターに Acronis Backup がインストールされていることを確認します。
2. MySQL 資格情報: MySQL データベースにアクセスしてバックアップするために必要な資格情報(ユーザ名、パスワード)とアクセス許可があることを確認します。
MySQL バックアップ用の Acronis の設定
1. 新しいバックアップ計画の作成: Acronis を開き、バックアップ計画の作成セクションに移動します。を選択して、新しいバックアップ計画を作成します。
2. バックアップソースの選択: バックアップのソースとして MySQL データベースを選択します。サーバーアドレス、ポート、ユーザー名、パスワードなどの接続の詳細を指定する必要がある場合があります。
3. バックアップオプション:
4. 完全または増分: 完全バックアップ (データベース全体) または増分バックアップ (最後のバックアップ以降の変更のみ) のどちらを実行するかを決定します。
5. スケジュール: バックアップのスケジュールを設定します。これは、毎日、毎週、または任意のカスタム間隔にできます。
6. ストレージの保存先: バックアップの保存先を選択します。これは、ローカルディスク、ネットワークストレージ、または Acronis でサポートされているクラウドストレージサービスにできます。
7. バックアップの検証:バックアップファイルの自動検証を有効にして、データの整合性を確保します。
8. 暗号化とセキュリティ:必要に応じて、バックアップファイルを保護するための暗号化設定を構成します。
SQL データベースをバックアップすることがなぜ重要なのか
データベースは、重要なアプリデータを格納、管理するため、ほとんどのアプリケーションでもっとも重要な要素です。また、動作するデータベースがなければ、データベースに依存するほとんどのアプリケーションは基本的に役に立ちません。したがって、 MySQL に依存するビジネスまたはサーバーアプリケーションがある場合は、データベースファイルの適切なバックアップを維持することが重要です。適切な MySQL バックアップは、障害が発生した場合やシステムを新しいハードウェアに移行する必要がある場合に、チームの多大な労力、不満、収益の損失を節約できます。
再インストールと移行のためのデータの保存
ほぼどんな事業環境でも、ソフトウェアとハードウェアの変更は避けられません。
ほとんどの情報システム部門で新規インストール、再インストール、移行の一般的な理由が、ソフトウェアのアップグレード、新しいシステムの追加、または新しいサーバーへの移行です。これらのアクティビティのいずれかに関与していたら、アプリケーションのインストールや再インストールは簡単で、古いデータの移行がもっとも困難であるとおそらくご存じでしょう。
ソフトウェアを再インストールすると、通常、インストールまたはセットアップ作業によってプログラムの新しいデータベースが生成されます。一部のアプリケーションには、 MySQL データベースファイルをエクスポート、インポート、および移行できるツールが含まれていますが、ほとんどのアプリケーションには含まれていません。したがって、新しいマシンにデータを移行する必要がある場合、または新規インストール/再インストールの場合は、古い MySQL データベースファイルを手動で移動する必要があります。これは MySQL データベースの適切なバックアップを保持するもう1つの理由です。
MySQL レコード破損を回避するための事前バックアップ手順
MySQL データベースをバックアップする前に、バックアップファイルが処理中に破損しないように、いくつかの手順を踏むことが重要です。アクティブで実行中の MySQL データベースをすぐにバックアップしようとすれば、バックアップが不完全で終わったり、あるいはデータベースの整合性が損なわれたりする可能性があります。MySQL データベースバックアップ内のレコードの破損を回避する一番良い方法は、バックアップ実行中にデータベースが完全に閉じてあり、実行していないことを確認することです。これには通常2つの異なる手順が必要です。
- MySQL データベースにアクセスしているアプリケーションを閉じる
- MySQL サーバーアプリケーションをシャットダウンする
MySQL がアクティブでも使用中でもないことを確認したら、レコードやテーブルが破損を心配することなく、データベースを安全にバックアップできます。
ミッションクリティカルアプリケーションのバックアップ
MySQL データベースサーバーと接続されているアプリケーションをシャットダウンすることがデータ破損を防ぐ最善の方法ですが、事業経営に重大な悪影響をおよぼすことがあります。たとえば、MySQL データベースが販売時点管理やその他のエンタープライズソフトウェアに使用されている場合、あるいはコーポレートウェブサイトのバックエンドである場合、 MySQL サーバーのシャットダウンは著しいダウンタイムや収益減の原因となりえます。よって、ミッションクリティカルアプリケーションで使用する MySQL データベースをバックアップする際、データベースダウンタイムをできる限り制限することが必要不可欠です。
どのような SQL Server データのバックアップ方法があるか
企業は、いくつかのバックアップの種類を使用して SQL Server データを保護できます。以下で詳細を説明します。
コピーのみのバックアップ
コピーのみの SQL サーバーバックアップは、企業がデータを保護するために使用する専用のバックアップスケジュールの一部ではありません。この方法は、従来のバックアップシーケンスに影響を与えず、通常の従来のバックアップの代わりに使用することはできません。代わりに、名前が示すように、この方法では、特定のバックアップデータをコピーして、そのコピーをテストまたは開発目的で使用します。
ログ末尾のバックアップ
ログ末尾のサーバーバックアップは、まだバックアップされていないライブトランザクションログ内のすべてのトランザクションで構成されます。通常、ログ末尾のバックアップは、トランザクションログチェーンの整合性を確保するために、トランザクションログのバックアップを開始する前に実行されます。
ファイルとファイルグループのバックアップ
SQL サーバーで表示されるファイルは、データまたはオブジェクトを格納するために使用されるデータベース内の物理要素です。ファイルグループは、論理的にまとめられた SQL ファイルで構成されます。このバックアップ方法では、特定の SQL ファイルをバックアップデータベースにコピーできるため、指定された定期的なバックアップの実行、ストレージ領域の最適化、バックアッププロセスにかかる時間の最小化に最適です。
部分バックアップ
SQLの部分バックアップにより、組織は特定のデータベースセクションにさらに集中できます。この方法では、ファイルやファイルグループのバックアップよりも小さいデータベース部分をバックアップできます。高度にカスタマイズされた SQL Server バックアップのために、ファイルまたはファイルグループのサブセクションをバックアップできます。
SQL Server Management Studio (SSMS) を使用して SQL Server データベースをバックアップするには
SSMS を使用して SQL Server データベースをバックアップそして復元するには、動作する SQL Server と SQL Server Management Studio が必要です。
テストデータベースの作成
1. SSMS を起動し、SQL Server インスタンスに接続します。
2. [新しいクエリ] ウィンドウを開きます。
3.
次の T-SQL コードを実行して、テストデータベースを作成します。
USE [master]; GO BACKUP DATABASE [SQLTestDB] TO DISK = N'C:\Program
Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak' WITH
NOFORMAT, NOINIT, NAME = N'SQLTestDB-Full Database Backup', SKIP, NOREWIND,
NOUNLOAD, STATS = 10; GO
4. 「オブジェクトエクスプローラー」で、「データベース」ノードをリフレッシュして新しいデータベースを表示します。
バックアップの作成 (SSMS)
1. SSMS を起動し、SQL Server インスタンスに接続します。
2. [オブジェクトエクスプローラー] で、[データベース] ノードを展開します。
3. バックアップするデータベースを右クリックし、[タスク] をポイントして、[バックアップ] をクリックします。[保存先] で正しいバックアップパスを確認します。パスを更新する必要がある場合は、[削除] をクリックして既存のパスを削除し、[追加] をクリックして新しいパスを入力します (省略記号を使用して移動できます) 。 [OK] をクリックしてデータベースのバックアップを作成します。
4. [保存先] で正しいバックアップパスを確認します。パスを更新する必要がある場合は、[削除] をクリックして既存のパスを削除し、[追加] をクリックして新しいパスを入力します。(楕円記号を使用して移動できます) 。
5. [OK] をクリックしてデータベースバックアップを作成します。
バックアップの作成 ( T-SQL )
次の T-SQL コマンドを実行して、特定のデータベースをバックアップできます。パスは環境によって異なる場合があります。
USE [master]; GO CREATE DATABASE [SQLTestDB]; GO USE [SQLTestDB]; GO CREATE TABLE SQLTest ( ID INT NOT NULL PRIMARY KEY, c1 VARCHAR(100) NOT NULL, dt1 DATETIME NOT NULL DEFAULT GETDATE() ); GO USE [SQLTestDB] GO INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1'); INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2');
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3'); INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4'); INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5'); GO SELECT * FROM SQLTest; GO
バックアップの復元 ( SSMS )
1. SSMS を起動し、SQL Server インスタンスに接続します。
2. [オブジェクトエクスプローラー] で、 [データベース] ノードを右クリックし、 [データベースの復元…] を選択します。
3. [デバイス] をクリックし、省略記号 (...) を選択してデータベースのバックアップファイルを見つけます。
4. [追加] を選択し、.bak ファイルの場所に移動します。.bak ファイルを選択し、[OK] をクリックします。
5. [OK] をクリックして、Select backup devices ダイアログボックスを閉じます。
6. [OK] をクリックして、バックアップデータベースを復元します。
バックアップの復元 (T-SQL)
次の T-SQL スクリプトを実行して、データベースバックアップを復元することもできます。
USE [master]; GO RESTORE DATABASE [SQLTestDB] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak' WITH FILE = 1, NOUNLOAD, STATS = 5; GO
MySQL Server データのバックアップに使用するコマンド
標準的なデータベースのバックアップと復元操作するのが、mysqldump コマンドラインユーティリティによる方法です。 MySQL に加えて MariaDB もバックアップできます。以下では、企業が mysqldump コマンドを使用して利用できるバックアップオプションについて説明します。
単一データベースのバックアップ
mysqldump コマンドラインユーティリティのもっとも一般的な用途は、単一データベースのバックアップです。次の例では、ユーザー root を使用して database_name というラベルのバックアップを作成し、database_name.sql というラベルのファイルにバックアップを保存する方法について説明します。次のコマンドを使用する場合は、次のように置き換えます。
database_nameをデータベースの実際の名前にする (両方のオプションで)
root をユーザーアカウントの実際のユーザー名にする
個々のデータベースバックアップを作成するには、次のコマンドを実行します。
mysqldump-u root-p database_name>database_name.sql
プロセスを認証するために root パスワードを入力するように求められます。認証後、コマンドラインユーティリティによりダンプファイルの作成を開始します。バックアップ (エクスポート) の実行に使用しているのと同じユーザーとしてログインしていて、ユーザーがパスワードを必要としない場合には、コマンドを次のように短縮できます。
mysqldump database_name>database_name.sql
複数 (またはすべて) の MySQL データベースをバックアップ
複数のデータベースを同時にバックアップするには、バックアップするデータベースのリストと組み合わせて --database オプションを使用する必要があります。各データベース名はスペースで区切る必要があることに注意してください。
mysqldump-u root-p--databases database_name_a database_name_b>databases_a_b.sql
使用可能なすべての MySQL データベースをバックアップする必要がある場合は、次のコマンドを使用します。
mysqldump-u root-p--all-databases>all_databases.sql
どちらのコマンドも、指定 (またはすべて) のデータベースで構成される単一のダンプファイルを作成します。
MySQLデータベース構造のバックアップ
データベーステーブル構造のみをバックアップするには、 -no-data オプションを使用します。
mysqldump-u root-p--no-data database_name>database_name_structure_only.sql
MySQLデータベースのデータのみをバックアップ
データベースのデータのみをバックアップするには、-no-create-info オプションを使用します。
mysqldump-u root-p database_name--no-create-info>database_name_data_only.sql
MySQL 特定のテーブル (またはすべてのテーブル)バックアップ
特定のテーブル (またはすべてのテーブル) をバックアップするには、コマンドにテーブル名を追加する必要があります。複数のテーブルをバックアップするには、データベース名の後にスペースで区切られたテーブル名を追加する必要があります。
mysqldump-u root-p database_name x y z>x_y_z_table.sql
ここで、x、y、z を実際のテーブル名に置き換えます。
圧縮された MySQL データベースバックアップファイルの作成
大きなデータベースをバックアップする必要がある場合は、 gzip ユーティリティを使用して出力ファイルを圧縮し、次の例のようにファイルにリダイレクトすることをおすすめします。
mysqldump database_name|gzip>database_name.sql.gz
タイムスタンプバックアップの作成
複数のバックアップを同じバックアップ場所に保持することを計画している場合は、バックアップコピーファイル名に現在の日付を追加すると、バックアップナビゲーションが向上します。
mysqldump database_name>database_name-$ (date+%Y%m%d) .sql
MySQL データベースを復元するには
一般に、バックアップファイルをインポートする新しいデータベースを作成する必要があります。ターゲットデータベースがすでに存在する場合は、まずそれを削除する必要があります。これら2つの要件を満たしていると仮定すると、次の SQL ステートメントを使用して MySQL バックアップを復元できます。
mysql-u root-p database_name<database_name.sql
database_name はホストマシンのルートディレクトリに存在する可能性が高いため、特定のパスを追加する必要はないかもしれません。ただし、(必要に応じて) サーバー名を含めて、ダンプファイルバックアップの正確なパスを指定する必要があります。
完全な MySQL ダンプファイルから単一のデータベースを復元
--all-databases オプションを使用してすべてのデータベースをバックアップしたが、バックアップファイルから個々のデータベースを復元する必要がある場合は、次に示すように --one-database オプションを使用できます。
mysql--one-database database_name<all_databases.sql
MySQL コマンドを1つ使用して1つのデータベースをエクスポートおよびインポート
1つのデータベースからダンプファイルを作成し、作成したバックアップを別の MySQL データベースにインポートする代わりに、次の SQL ステートメントを選択できます。
mysqldump-u root-p database_name|mysql-h remote_host-u root-p remote_database_name
このコマンドは、出力ファイルをリモートサーバー (リモートホスト) 上の MySQL サーバークライアントに転送し、remote_database_name というラベルのデータベースにインポートします。データベースがすでにリモートサーバー上に存在することを確認する必要があります。
phpmyadmin を使用して MySQL データベースをバックアップおよび復元するには
phpMyAdminでは、export 機能をバックアップとして使用し、import 機能を使用してデータベースのバックアップファイルを復元します。
バックアップ SQL ファイルの作成
1. phpMyAdmin を開きます。ディレクトリツリー (左側) でバックアップするデータベースをクリックします。
2. 画面上部の [Export] タブで [Export] をクリックします。
3. ここでは、[Quick Export Method] を使用してデータベース全体をバックアップするか、 [Custom Export Method] を使用して特定のテーブルまたはその他の特別なオプションを選択できます。
4. format フィールドは、変更する必要がない限り、[SQL] に設定する必要があります。
5. [Go] をクリックします。Quick オプションを選択した場合、ブラウザーはデータベースのコピーを優先するダウンロードフォルダーにダウンロードします。その後、バックアップを安全な場所にコピーできます。
古いデータの消去
バックアップを復元する前に古いデータを消去することが重要です。復元中にデータが正しく上書きされないと、復元工程でテーブルが重複したり、競合やエラーが発生したりする可能性があります。
phpMyAdmin を開きます。ナビゲーションペイン (左側) から復元するデータベースを選択します。
下部にある [すべてチェック] ボックスを選択します。次に、[選択済み] というラベルのドロップダウンメニューから [削除] を選択します。
処理する選択を確認するように求められます。[はい] をクリックします。
プロセスを承認すると、既存のデータがクリアされ、クリーンな復元が可能になります。
MySQLのバックアップを復元
1. phpMyAdmin インターフェイスで、ページの上部にある [Import] をクリックします。
2. ここの最初のセクションには、[File to import] というラベルが付いています。その数行下に、[Browse your computer] という行と、[Choose file] というラベルの付いたボタンがあります。このボタンをクリックします。
3. ダイアログボックスを使用して、復元したいエクスポートファイルがあるバックアップの場所に移動します。バックアップの作成時にカスタムオプションを使用していない限り、すべての復元オプションに既定の設定を使用できます。
4. [Go] をクリックします。
PhpMyAdmin を使用せずに MySQL データベースをバックアップするには
[phpMyAdmin] を使用せずに MySQL データベースをバックアップするには、[Mysqldump] コマンドラインユーティリティ、[MySQL Workbench]、サードパーティのバックアップソリューションなど、さまざまな方法があります。
ニーズ、好み、および予算に応じて、適切なバックアップアプローチを選択したり、複数のユーティリティを組み合わせてさまざまなバックアップタイプを合理化したり、Acronis Cyber Protect などのサードパーティのバックアップソフトウェアを使用して、リカバリシナリオに関係なくすべてのバックアップおよび復元要件を満たすことができます。
MySQL Workbench を使用して MySQL データベースをバックアップするには
MySQL Workbench を使用してデータベースをバックアップする手順を次に示します。
1. [Administration] パネルの [Data Export] をクリックします。 [Administration - Data Export] ドキュメントが開きます。
2. [Object Select]-[ Tables to Export] タブで、database_nameスキーマを選択します。
3. データベーステーブルを個別の.sqlファイルに格納する場合は [Export Options]の下の [Export to Dump Project Folder] を選択し、データベースバックアップを単一の .sql ファイルに格納する場合は [Export to Self-Contained File] を選択します。
4. バックアッププロセスを開始するには、[Start Export] をクリックします。進行状況バーでプロセスを追跡できます。
MySQL Workbench では、バックアップの自動化やスケジュール設定が有効になっていないことに注意してください。
Linux サーバーの MySQL データベースをバックアップするには
Acronis Cyber Protectなら、数回マウスをクリックするだけで、Linuxサーバーシステムのフルバックアップを非常に簡単に作成できます。
MySQLデータベースを使用するアプリケーションを実行している場合、バックアップにはもうひと手間必要になります。それでも、バックアップ処理は比較的簡単です。MySQLデータベースをLinuxサーバーマシン上でローカルまたはネットワークハードドライブへバックアップするには、下記手順にしたがってください。
パートI - マネジメントコンソールのインストール
手順1 - まだ Acronis アカウントがなければ、アカウントを作成します。Acronis から受信する確認メールにあるリンクを使って、アカウントを必ずアクティブ化します。

手順2 - Acronis アカウントにログインします。

手順3 - 管理コンソールアプリケーションを実行するマシンに適用できるインストーラーをダウンロードしてインストールします。


手順4 - Acronis Cyber Protect セットアップファイルを起動します。画面の指示にしたがって、管理コンソールを実行するコンピューターにアプリケーションをダウンロードしてインストールします。
手順5 - 管理者のユーザー名とパスワードを使用して、新規の Acronis Backup サーバーにログインします。必要に応じて、Acronis のインストールに必要なライセンスキーを追加します。



パートII - Linuxサーバーマシン上にバックアップエージェントをインストール
手順1 - コンソール管理ウィンドウから、Linux バックアップエージェントインストールファイルをダウンロードします。
手順2 – 任意の端末や FTP アプリケーションから Linux サーバーにログインします。サーバーに[AcronisBackup] などの名前を付けた新しいフォルダーを作成します。
手順3 - Linux バックアップエージェントインストールファイルを Linux サーバーへコピーします。
手順4 - Linux サーバーへ戻り、端末のアプリケーションを開きます。 Linux バックアップエージェントインストールファイルを含むフォルダーへ移動します。Linux サーバー上のインストールファイルを実行して、バックアップエージェントをインストールし、 Acronis コンソール管理アプリケーションがインストールされたマシンに接続します。
手順5 - Acronis コンソール管理アプリケーションを実行しているシステムに戻ります。Web ブラウザで新しいタブまたはウィンドウを開き、Acronis Knowledge Base (文書番号 58136)「Acronis Backup:Backing Up MySQL」に移動します。「Download and unpack scripts」というタイトルのリンクをクリックします。

手順6 - FTP アプリケーションを使い、スクリプトファイルを SQL データベースファイルのある Linux サーバー上のディレクトリへ移動します。スクリプトを移動したら、Linuxサーバーマシン上の選択したフォルダーでファイルを展開します。
パートIII - MySQL サーバーのバックアップ
手順1 - Acronis コンソール管理アプリケーションを実行しているシステムに戻ります。
手順2 - サイドバーメニューで [すべてのマシン] を選択します。 Linux サーバーマシンのコンピューター名の下にある [バックアップを有効にする] ボタンをクリックします。



手順3 - [バックアップ対象] の右側にあるドロップダウンリストボタンをクリックし、 [ファイル/フォルダー] を選択します。

手順4 - [バックアップする項目] の右側にある [指定] リンクをクリックします。次のペインで、 [ファイルとフォルダーを選択する] をクリックします。バックアップしたい MySQL データベースファイルを含むフォルダーへ移動します。MySQL データベースファイルでフォルダー名の横にあるチェックボックスをクリックします。[完了] ボタンをクリックします。


手順5 – [OK] ボタンをクリックします。

手順6 - [バックアップする場所] の右側にある [指定] をクリックします。[バックアップする場所] ウィンドウで、[場所の追加] をクリックします。[ローカルフォルダー] または [ネットワークフォルダー] をクリックします。MySQL バックアップファイルを保存したいローカルまたはネットワークドライブのフォルダーへ移動し、[追加] をクリックします。[バックアップする場所] ペインで、選択したローカルまたはネットワークバックアップフォルダーへのパスをクリックします。





手順7 - MySQL バックアップのスケジュール設定を構成し、[完了] をクリックします。



手順8 - バックアップデータベースのコピーを保管する期間を決めます。必要に応じてクリーンアップ設定を構成して、[完了] ボタンをクリックします。



手順9 - [暗号化] トグルスイッチをクリックします。暗号化用の解読されにくいパスワードを入力します。確認のため、もう一度パスワードを再度入力します。暗号化アルゴリズムを選んで、[OK] をクリックします。





手順10 - ウィンドウの右上隅にある [ギア] アイコンをクリックします。 [バックアップオプション] ウィンドウでスクロールダウンし、 [事前/事後データキャプチャコマンド] をクリックします。




手順11 - [データキャプチャ前にコマンドを実行する] の下にある [はい] のトグルボタンをクリックします。[エージェントのあるマシン上のコマンドまたはバッチファイルパス] フィールドで、 [pre-freeze-script.sh] ファイルへのパスを入力します。
(注意:このファイルは先にダウンロードしたファイルの1つです。)
[作業中のディレクトリ] フィールドで、 MySQL データベースファイルを含むフォルダーへのパスを入力します。



手順12 - [データキャプチャ後にコマンドを実行] の下にある [はい] のトグルボタンをクリックします。 [エージェントのあるマシン上のコマンドまたはバッチファイルパス] フィールドで、 [post-thaw-script.sh] ファイルへのパスを入力します。
(注意:このファイルも先にダウンロードしたファイルの1つです。)
[作業中のディレクトリ]フィールドで、 MySQL データベースファイルを含むフォルダーへのパスを入力します。 [終了] ボタンをクリックします。


手順13 – [作成] ボタンをクリックします。ウィンドウが更新されたら、 [今すぐ実行] ボタンをクリックします。バックアップが実行し、コンソールウィンドウが更新されるまで待ちます。



ヒント - MySQL データベースをセキュアな Acronis Cloud へバックアップすることも選択できます。その場合、[バックアップ先」ウィンドウで Acronis Cloud アカウントを選択します。
重要な注意 – 上記の説明は、すべてのファイルが1つのボリュームに含まれる場合の MySQL データベースでの使用に関するものです。複数のボリュームにわたるデータベースのスナップショットを作成するには、上記の処理では正しく動作しない場合があります。
Acronis Cyber Protect で MySQL データベースを復元するには
Acronis Cyber Protect は、 MySQL データベースの迅速かつ簡単な復元方法です。Acronis を使用して MySQL バックアップを復元するには、次の手順に従います。
手順1 - Linux サーバーシステム上の MySQL サーバーをシャットダウンします。
手順2 - Web ブラウザーで Acronis Cyber Protect コンソール管理アプリケーションを起動します。ユーザー名とパスワードを求められた場合は、ユーザー名とパスワードを使用してログインします。サイドバーメニューの「Devices」をクリックします。



手順3 - [All machines]ページで、MySQL バックアッププランを作成したマシンの下で [Recover] ボタンをクリックします。

手順4 – [ファイル/フォルダーをリカバリ] ボタンをクリックします。

手順5 - MySQL バックアップファイルの暗号化パスワードを入力して、 [OK] をクリックします。


手順6 - MySQL データベースバックアップファイルを復元したいフォルダーへ移動します。ウィンドウ上部近くにある [Type] ラベルの横のチェックボックスをクリックし、ページの右上端にある [Recover] をクリックします。




手順7 - [ファイルの復元] ウィンドウで [元の場所] を選択し、[復元の開始] をクリックします。または、データベースを新しいフォルダーまたはコンピューターに移動する場合は、[カスタムの場所] を選択します。

手順8 - ファイル置換オプションを選択します。[既存のファイルを上書きする]、[既存のファイルがより古い場合は上書きする] 、 [既存のファイルを上書きしない] から選択できます。選択したら、 [続行] ボタンをクリックします。Acronis Cyber Protect が復元処理を実行し、モニターウィンドウが更新されるまで待ちます。



手順9- Linux サーバーで MySQL を再起動します。

MySQL データベースファイルを選択したフォルダーへ正常に復元できました。
まとめ
MySQL および SQL Server データベースは、世界中のあらゆる規模の企業にとって重要です。誤操作による削除、ハードウェア障害、サイバー攻撃、および自然災害からデータを保護するには、オンサイトとクラウドの両方で、 MySQL Server の定期的なバックアップをとり、ストレージを保護する必要があります。
MySQL データベースのバックアップには、 mysqldump コマンドライン、 phpMyAdmin 、専用のバックアップソリューションなど、さまざまな方法が使用できます。 SQL Server データベースについては、 SSMS 、 T-SQL スクリプト、およびサードパーティソリューションを使用できます。
どの方法を選択するにしても、企業固有のニーズと要件、および優れたサイバーセキュリティとデータ保護の標準に合わせて調整することが不可欠です。企業がより大きなデータボリュームを管理し、サイバー脅威がさらに高度になるにつれて、 MySQL バックアップ戦略において、拡張性、データセキュリティ、およびバックアップの可用性を強化して、災害の種類に関係なく迅速な復旧とビジネス継続性を確保する必要があります。
Acronis について
Acronis は、2003 年にシンガポールで設立されたスイスの企業で、世界 15ヵ国にオフィスを構え、50ヵ国以上で従業員を雇用しています。Acronis Cyber Protect Cloud は、150の国の26の言語で提供されており、20,000を超えるサービスプロバイダーがこれを使って、750,000 以上の企業を保護しています。