Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
By: Emma

クラウドストレージやディスクベースのバックアップが現代のIT環境で主流となっているものの、テープは長期的なデータ保護において依然として重要なメディアです。オフラインである特性からランサムウェアに対する強固な防御を実現し、コストが低いため、MySQLの膨大なデータを数年間保持する必要がある組織に適しています。

本ガイドでは、論理バックアップと物理バックアップの2種類の手法を用いてMySQLをテープにバックアップする方法を解説します。各手法の使い分け、バックアップデータのテープへの保存手順、正常にリストア可能かどうかの検証手順についても説明します。

MySQLバックアップにテープを依然として使用する理由

ディスクやクラウドストレージが現在のバックアップ戦略の主流ですが、テープは複数の独自のメリットを持つため、エンタープライズのバックアップ環境において重要な位置を占めています。

  • エアギャップによるランサムウェア対策。テープをドライブから取り外しオフラインで保管することで、ランサムウェアによるバックアップデータの暗号化や削除を防げます。
  • 長期保存におけるコストの低さ。テープは1テラバイトあたりのコストがディスクより安価であり、膨大なMySQLバックアップデータを長年保管するのに適しています。
  • 3‑2‑1‑1バックアップ戦略への対応。テープはオフラインのバックアップコピーを自然に作成できるため、組織のサイバーレジリエンス向上および長期保持要件の充足に貢献します。

how ro back up mysql to tape

MySQLをテープにバックアップする2つの手法

MySQLをテープにバックアップする際は、論理バックアップと物理バックアップのいずれかを選択できます。

  • 論理バックアップは、スキーマとデータを再作成可能なSQL文としてデータベースを出力します。
  • 物理バックアップは、データベースファイルを直接コピーします。

大半の環境では、まずディスク上にバックアップを作成し、その後バックアップソフトまたは標準のテープユーティリティを使用してテープへアーカイブします。

手法1:mysqldump + tar(論理バックアップ)

mysqldumpはMySQL標準の論理バックアップ作成ユーティリティです。データベースのスキーマとデータをSQL文として出力し、圧縮した上でテープにアーカイブできます。

bash
# 手順1:圧縮済み論理バックアップを作成
mysqldump ‑u root ‑p ‑‑single‑transaction ‑‑quick ‑‑all‑databases | gzip > /backup/mysql_dump.sql.gz
  
# 手順2:バックアップをテープにアーカイブ
tar ‑cvf /dev/st0 /backup/mysql_dump.sql.gz
Tip: InnoDBデータベースのバックアップ時には‑‑single‑transactionを使用すると、テーブルをロックせずに一貫性のあるスナップショットを取得できます。

ディスクの空き容量が少ない場合は、一時ファイルを作成せずバックアップを直接テープへストリーム出力できます。

bash
mysqldump ‑u root ‑p ‑‑single‑transaction ‑‑quick ‑‑all‑databases | gzip | dd of=/dev/st0 bs=64k

適した用途

  • 小規模から中規模のデータベース
  • クロスプラットフォーム移行
  • 個別のデータベースまたはテーブルのリストア

考慮事項

  • リカバリ時にMySQLが全てのSQL文を実行する必要があるため、リストアに時間がかかる場合があります。
  • データベースの規模が大きくなるにつれ、バックアップサイズとリストア時間が大幅に増加します。

手法2:Percona XtraBackup / mysqlbackup + テープ(物理バックアップ)

物理バックアップはSQL文を出力するのではなく、データベースファイルを直接コピーします。Percona XtraBackupとMySQL Enterprise BackupはInnoDBデータベースのホットバックアップに対応しており、大規模本番環境で推奨される手法です。

一般的なワークフローとして、ステージィング用ディスク上にバックアップを作成した後、テープへアーカイブします。

bash
# 手順1:物理バックアップを作成
xtrabackup ‑‑backup ‑‑target‑dir=/backup/physical/
  
# 手順2:バックアップをテープにアーカイブ
tar ‑cvf /dev/st0 /backup/physical/  

Percona XtraBackupはストリーミングバックアップにも対応しており、データを直接テープへ書き込むことが可能です。

bash
xtrabackup ‑‑backup ‑‑stream=xbstream | dd of=/dev/st0 bs=64k

適した用途

  • 大規模本番データベース
  • 復旧時間目標(RTO)が低い要件
  • 高性能なバックアップおよびリカバリ

考慮事項

  • 物理バックアップは原則として同一または互換性のあるMySQLバージョンにリストアする必要があります。
  • 論理バックアップと比較して可搬性が低く、データベース移行よりも災害復旧を目的としています。

環境に合ったバックアップ手法の選択

適切なバックアップ手法は主にデータベースのサイズとリカバリ要件に依存します。下記の表を参考にしてください。

データベースサイズ 主な要件 推奨手法
小規模(50GB未満) 可搬性と柔軟性 mysqldump + tar
中~大規模(50GB~1TB) 高速なバックアップとリカバリ Percona XtraBackup または MySQL Enterprise Backup + テープ
超大規模(1TB超) バックアップ時間の最小化と高速リカバリ ストリーム出力による物理バックアップ(xbstream)

テープからのMySQLバックアップの検証とリストア手順

テープにバックアップを作成するだけでは不十分です。定期的な検証とリストア試験を実施し、必要な時にMySQLバックアップを確実に復旧できることを確認してください。

リストア実行前に、テープが読み取り可能でバックアップファイルが存在することを確認します。

bash
mt ‑f /dev/st0 rewind
tar ‑tvf /dev/st0  

標準的なリストアのワークフローは以下の通りです。

  1. テープからバックアップアーカイブを取得する。
  2. リカバリ用サーバーにバックアップファイルを展開する。
  3. 適切な手法でデータベースをリストアする。
  4. MySQLが正常に起動し、データにアクセスできることを確認する。

mysqldumpで作成した論理バックアップの場合は、テープからSQLダンプを展開しMySQLにインポートします。

bash
zcat /tmp/restore/mysql_dump.sql.gz | mysql ‑u root ‑p

Percona XtraBackupで作成した物理バックアップの場合は、まずバックアップを準備処理してからデータベースファイルをリストアします。

bash
# バックアップの準備処理
xtrabackup ‑‑prepare ‑‑target‑dir=/tmp/physical_restore/
  
# データベースファイルをリストア
systemctl stop mysql
xtrabackup ‑‑copy‑back ‑‑target‑dir=/tmp/physical_restore/
  
# パーミッションを修正しMySQLを起動
chown ‑R mysql:mysql /var/lib/mysql/
systemctl start mysql  

リストア完了後、基本的なクエリを実行しデータベースが利用可能でリカバリしたデータにアクセスできることを確認します。本番環境で使用する前に、必ず隔離された環境でリストア試験を実施してください。

MySQLをテープにバックアップする際の一般的なトラブル

MySQLデータベースをテープにバックアップする際には、ハードウェアアクセスのエラーからバックアップの一貫性に関する問題まで、複数の運用上の課題が発生する可能性があります。これらの一般的な問題を理解することで、より信頼性の高いバックアップ・リカバリプロセスを実現できます。

テープデバイスのアクセスおよび権限エラー

テープバックアップ実行時に/dev/st0/dev/nst0へのアクセスで「permission denied」または「no such device」といったエラーが発生することがよくあります。

Linuxシステムでは、テープデバイスは特定のユーザーまたはグループにアクセスが制限されているのが一般的です。バックアップスクリプトが必要な権限を持たないサービスアカウントで実行されると、テープドライブへのアクセスに失敗します。

bash
# テープデバイスの権限を確認
ls ‑l /dev/st0
  
# バックアップ用ユーザーをtapeグループに追加
sudo usermod ‑aG tape backupuser  

権限更新後、バックアップサービスまたはユーザーセッションを再起動し変更を反映させてください。

高負荷データベースにおけるmysqldumpのロック関連の問題

稼働中の本番データベースに対しmysqldumpを使用すると、バックアップ実行時にテーブルロックが発生しパフォーマンス上の問題を引き起こす場合があります。これはMyISAMなどトランザクション非対応ストレージエンジンのテーブルで特に顕著です。

InnoDBテーブルについては‑‑single‑transactionオプションにより、テーブルをロックせずに一貫性のあるバックアップを作成できます。ただし、トランザクション非対応テーブルに対するロック要件は回避できません。

bash
mysqldump ‑u root ‑p ‑‑single‑transaction ‑‑quick ‑‑all‑databases > backup.sql

大規模本番環境では、プライマリデータベースへの影響を抑えるため、読み取りレプリカに対して論理バックアップを実行することを検討してください。

XtraBackupの準備フェーズの失敗

Percona XtraBackupで作成した物理バックアップをリストアする際、メモリ不足またはバックアップファイルの不完全さによりxtrabackup ‑‑prepareフェーズが失敗する場合があります。

大規模データベースの場合は、リソース枯渇を回避するため準備処理時のメモリ使用量を制限してください。

bash
xtrabackup ‑‑prepare ‑‑use‑memory=2G ‑‑target‑dir=/tmp/physical_restore/

バックアップをテープへ保存する前に、元のバックアップジョブが正常に完了し、バックアップファイルが完全かつ一貫性を持っていることを必ず確認してください。

i2BackupによるMySQLテープバックアップの効率化

mysqldumpまたはXtraBackupのジョブを手動でスクリプト化しテープへ転送することは可能ですが、スケジューリング、検証、保持期間管理の全ての負担がDBAにかかります。

i2Backupはテープを保存先として利用しつつ、こうした手作業の大半を解消します。

MySQLのテープバックアップに関連するi2Backupの主な機能:

  • テープライブラリを直接サポート:i2Backupはテープライブラリへ直接データをバックアップし、必要に応じてテープからリストアできるため、データベースダンプ後に別途tarや転送処理のスクリプトを作成する必要がありません。
  • データベース対応バックアップ:スタンドアロンインスタンスとクラスタ環境の両方に対応し、MySQLをはじめ主要データベースのリアルタイムおよびスケジュールバックアップを提供。高負荷の本番システムにおけるロック関連のリスクを低減します。
  • 自動保持・クリーンアップ機能:カスタマイズ可能な保持・アーカイブポリシーにより古いバックアップを自動削除。XtraBackupなど物理バックアップツールで発生しがちな手動の準備処理やクリーンアップ作業を軽減します。
  • データ暗号化:AESおよびSM4標準暗号によりバックアップを保護し、テープの強みであるエアギャップによるランサムウェア対策のユースケースに対応します。
  • 複数のストレージに対応:テープライブラリに加え、ローカルディスク、NAS、オブジェクトストレージをサポート。ツールを切り替えることなく3‑2‑1バックアップ戦略を簡単に実装できます。

i2Backupを使用してMySQLをテープにバックアップする手順は以下の通りです。

手順1. i2Backupプラットフォームにログインし、ストレージユニットにテープライブラリがバックアップ先として登録済みであることを確認します。

step 1 make sure your tape library is registered

手順2. MySQLデータベースとホストノードがクライアントとしてプラットフォームに登録されていることを確認し、新しいバックアップルールを作成します。

step 2 confirm your MySQL database and host node are registered

手順3. バックアップ種別としてMySQLを選択し、次へをクリックします。

step 3 select MySQl as the backup type and click Next

手順4. MySQLデータベースに対応するクライアントを選択し、バックアップ先としてテープライブラリを選択しテーププールを指定します。次へをクリックします。

step 4 choose the client pointing to your MySQL database then select your tape library as the backup target and choose a tape pool Click Next

手順5. バックアップ対象のデータベースインスタンスを選択します。

step 5 select the database instance you want to back up

手順6. バックアップ種別(フルバックアップまたは増分バックアップ)を選択し、バックアップルールの時間枠と実行頻度を設定します。即時実行の1回限りタスクとして実行することも可能です。

step 6 choose the backup type

手順7. 全設定を確認し確定をクリックしバックアップルールを登録します。

step 7 review the settings and Confirm

登録後、バックアップタスクダッシュボードから進捗を監視できます。タスク詳細を開くと転送速度、タスクログ、関連するクライアントとストレージユニット、エラーの有無を確認可能です。タスク完了後、バックアップとリストアからバックアップセットを参照し、ストレージユニット種別がテープライブラリと表示されていることを確認し、テープへの書き込みが正常に完了したことを検証します。

mysqldumpスクリプト、cronジョブ、手動によるテープ検証の組み合わせによる運用から脱却したいチームにとって、i2Backupは処理を単一のスケジュール管理・監査可能なワークフローに統合します。60日間の無料トライアルを申し込み、実際のMySQLバックアップ要件に合わせて動作を試すことができます。

Info2softは幅広いデータ保護ニーズに対応する関連ソリューションも提供しています。定期的なバックアップよりもゼロに近いRPOが必要な場合は、i2CDPが変更データをバイト単位でリアルタイムにレプリケートします。MySQLを他のデータベースやプラットフォームへレプリケーションする企業向けには、i2Streamがリアルタイムデータベースレプリケーションと移行に対応します。

まとめ

テープは特に長期保持とエアギャップによるランサムウェア対策の観点から、MySQLのバックアップ戦略において依然として有用です。論理バックアップにmysqldumpを使用するか、物理バックアップにXtraBackupを使用するかは、データベースのサイズ、RTO/RPO要件、必要なリストア速度に依存します。

どの手法を選択した場合でも、テープバックアップを定期的に検証し、本番で必要になる前にリストア試験を実施してください。手作業を削減したいチームに対し、Info2softはスケジューリング、保持期間管理、テープ対応を一つのワークフローに自動化するバックアップソリューションを提供しています。

概要は準備中です

関連記事

テープ vs ディスクバックアップ:データ保護にはどちらが優れているか
テープバックアップとディスクバックアップは、現代のデータ保護においてそれぞれ異なる役割を担っています。本ガイドではコスト、速度、信頼性、スケーラビリティの観点からテープとディスクのバックアップを比較し、長所と短所を理解した上で適切なバックアップ戦略を選択できるよう解説します。
記事を読む
【10 種以上】VMware 移行ツール紹介:ライブマイグレーション、V2V、クラウド移行ソリューション
本ガイドでは、純正ライブマイグレーションからクラウドプラットフォーム、代替ハイパーバイザー向けまで、主要なVMware移行ツールを解説します。ワークロード、許容停止時間、今後のインフラ計画に基づき、IT担当者が適切な移行手法を選定することを支援します。
記事を読む
非本番環境同期:実務ガイド
多くのチームが認識している以上に、非本番環境は本番環境との同期が崩れやすくなります。本ガイドでは、非本番環境同期の主要な手法と、環境の信頼性を維持するためのベストプラクティスを解説します。
記事を読む
KVM vs QEMU:主な違いと連携動作の仕組み
KVMはCPUを仮想化し、QEMUはVMに必要なその他すべて(ディスク、ネットワーク、BIOSなど)をエミュレートし、高速化のためKVMを呼び出します。本ガイドでは、それぞれの役割、実際のスタックにおける連携方法、VMware、Hyper‑V、VirtualBoxとの比較を解説します。
記事を読む
目次:
最新情報を購読
最新のインサイト、ニュース、限定コンテンツをお届けします。いつでも配信解除が可能です。
購読する
ビジネスデータのセキュリティ強化を始めませんか?
60日間の無料トライアルまたはデモで、Info2softが企業データをどのように保護するかをご確認ください。
フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}