データは企業の中核資産です。ビジネスの発展に伴い、企業データは大規模化、爆発的な増加を示しています。ビジネスアプリケーションはリアルタイム、オンラインの高速処理を要求します。データベース運用保守担当者にとって、企業の中核データを保護する任務はますます挑戦的になっています。例えば、データの誤削除、関連システムの脆弱性やウイルス、ハードウェア障害、さらには自然災害がデータの損失を引き起こす可能性があります。したがって、バックアップとリストアはデータベースの非常に重要な機能です。
バックアップの概要
TDSQL-C for MySQLはデータバックアップ、ログバックアップ(binlogバックアップ、redologバックアップ)をサポートしています。完全なデータバックアップとその後の一定期間のログバックアップにより、TDSQL-C for MySQLクラスタ全体または特定のデータベーステーブルを任意の時点にリカバリ可能です。
バックアップとロールバックのコンソール画面は以下の通りです。
データバックアップ
TDSQL-C for MySQLのデータバックアップは、特定の時点におけるクラスタの全データをバックアップファイルとして生成します。論理バックアップとスナップショットバックアップの2種類をサポートしており、論理バックアップは完全バックアップ、スナップショットバックアップは完全バックアップと増分バックアップで構成されています。
論理バックアップ:フルバックアップのみ対応しており、データベースの論理構造と内容を保存することを指します。SQL文の形式でデータベースの構造とデータを表現するデータベースオブジェクトレベルのバックアップです。バックアップ内容はテーブル、インデックス、ストアドプロシージャなどのデータベースオブジェクトで構成されています。その利点は、より細かいデータベース/テーブルレベルのバックアップをサポートできること、データベースパフォーマンスへの影響が小さいことですが、比較的バックアップ速度が遅く、ストレージ容量を多く消費します。
スナップショットバックアップ:書き込み時リダイレクト技術ROW(Redirect-On-Write)を採用し、ストレージ層ディスクのスナップショット作成によるバックアップ方式です。その主な利点は、バックアップ速度が速く秒単位で完了可能なこと、プロセス全体がコンピューティング層のビジネスに影響を与えないこと、比較的占有容量が小さいことです。
フルバックアップ:特定の時点におけるすべてのデータの完全なコピーを指します。
増分バックアップ:前回のバックアップをベースに、新規追加または変更されたファイルのバックアップを行います。
バックアップタイプ比較表
|
論理バックアップ | フルバックアップ | 利点:きめ細かいデータベース/テーブルレベルでのバックアップが可能で、データベースのパフォーマンスへの影響が小さいです。 欠点:データベースにロックがかかり、バックアップ速度が遅く、ストレージ容量を多く消費します。 | テーブル、インデックス、ストアドプロシージャなどのデータベースオブジェクト クラスタ全体 | マニュアル | ✓ | ✓ |
|
|
|
| 自動 | ✓ | × |
スナップショットバックアップ | フルバックアップ | 利点:バックアップ速度は秒単位で、ビジネスへの影響を与えず、占有ストレージ容量が小さいです。 欠点:バックアップはダウンロードをサポートしていません | クラスタ全体 | マニュアル | × | × |
|
|
|
| 自動 | × | × |
|
|
| インクリメンタルバックアップ | 自動 | × | × |
ログバックアップ
|
binlogバックアップ | インクリメンタルバックアップ | 利点:増分データを記録し、binlogバックアップを通じて任意の時点に復元することができます 欠点:binlogバックアップを有効化すると、インスタンスの書き込み性能が低下します | クラスタ全体 | 自動 | ✓ | x |
レドログバックアップ | インクリメンタルバックアップ | 利点:データページの物理的な変更を記録し、クラッシュリカバリに使用され、トランザクションの永続性を保証します 欠点:レドログの継続的なバックアップはディスクI/Oの負荷を増加させます | クラスタ全体 | 自動 | x | x |
ログバックアップとは、特定の時点でクラスタの全量データ記録をバックアップファイルとして生成した後に発生する増分データのことです。TDSQL-C for MySQLは大規模トランザクションまたは大量のDMLを実行する際に多くのbinlogを生成します。このbinlogバックアップはクラウドストレージにアップロードされ、コンソールのbinlogバックアップリストに表示されます。binlogバックアップは操作ログを保存するために使用されます。
TDSQL-C for MySQLは、binlogバックアップに依存せず、redo logを使用した復元を採用します。binlogを無効にした場合でも、任意の時点への復元が正常に行え、binlogの無効化によりインスタンスの書き込み性能を30%以上向上させることができます。
説明:
現在、TDSQL-C for MySQLのネットワークアーキテクチャは段階的にアップグレード中であり、アップグレード完了後にはbinlogを無効化する機能が開放されます。
クロスリージョンバックアップ
TDSQL-C for MySQLはクロスリージョンバックアップを提供し、バックアップファイルを別のリージョンに保存することをサポートします。これにより、ユーザーの監視と災害復旧能力の向上を支援するとともに、データの信頼性を強化します。現在、自動論理バックアップ、binlogバックアップ、手動論理バックアップ(クラスタ全体)のタイプでクロスリージョンバックアップ機能の利用が可能です。
注意事項
手動バックアップのタスク頻度は1時間に1回に制限されており、自動バックアップタスクはユーザー設定のバックアップ開始時間に基づいて実行されます。システムはデフォルトで毎日1回の自動バックアップを実行します。
バックアップ方式において、手動バックアップの論理バックアップファイルはバックアップリストで手動削除をサポートします。これによりバックアップ領域を解放し、領域の浪費や占有を回避できます。手動削除を行わない場合、バックアップファイルはバックアップリストに保持されます。無駄を避けるため、定期的に不要な部分を手動で削除してください。
バックアップ方式において、自動バックアップのファイルは手動削除をサポートしておらず、自動バックアップ保持期間の設定により期限切れ後の自動削除を実現できます。
binlogバックアップのサイズはログバックアップリストで照会可能であり、binlogバックアップの総サイズは各binlogバックアップファイルのサイズの合計となります。
ロールバックの概要
TDSQL-C for MySQLは、ロールバック機能を通じて指定した時点にデータをリカバリすることをサポートしており、システムの損失を最大限に抑えることができます。
TDSQL-C for MySQLは、データベース・テーブルレベルでの元のクラスターへのロールバックおよびクラスタ全体レベルでの新しいクラスターへのロールバック(クローン)をサポートしており、ユーザーは業務要件に応じて異なる復元方法を選択できます。
説明:
データベースレベルのロールバックでは、外部キー制約、check制約、トリガー、ストアドプロシージャ、ユーザービュー、イベントなどのオブジェクトタイプはインポートされません。
ロールバック方式
バックアップファイルに基づく復元:クラスタを任意のバックアップファイルのデータファイル状態に復元します。バックアップファイルの選択範囲は、ユーザーが設定したデータバックアップ保持期間によって決定されます。
特定時点への復元:クラスタを任意の時点に復元します。時点の選択範囲は、ユーザーが設定したbinlogおよびredologバックアップの保持期間によって決定されます。