Azure Database for MariaDB での高可用性

重要

Azure Database for MariaDB は、提供終了予定です。 Azure Database for MySQL に移行することを強くお勧めします。 Azure Database for MySQL への移行の詳細については、「Azure Database for MariaDB の動作」を参照してください

Azure Database for MariaDB サービスは、高いアップタイムを必要とするミッション クリティカルなデータベースを実行するのに適しています。 次の実行中に高可用性が提供されます。

  • ユーザーが開始したスケール コンピューティング操作などの計画イベント。
  • 基になるハードウェア、ソフトウェア、ネットワーク障害などの計画外のイベント。

Azure Database for MariaDB には、アップタイムに関する 財務的に支援されたサービス レベル アグリーメント が用意されています。 サービスは Azure アーキテクチャ上に構築されているため、追加のコンポーネントを構成することなく、高可用性、冗長性、回復性の機能を利用できます。

Azure Database for MariaDB のコンポーネント

コンポーネント 説明
MariaDB データベース サーバー Azure Database for MariaDB には、データベース サーバーに対して、セキュリティ、分離、リソース保護、および迅速な再起動機能が用意されています。 これらの機能により、停止後のスケーリングやデータベース サーバーの復旧 (秒単位) などの操作が容易になります。
データベース サーバーでのデータ変更は、通常、データベース トランザクションのコンテキストで行われます。 すべてのデータベース変更は、データベース サーバーに接続されている Azure Storage 上の先書きログ (ib_log ファイル) の形式で同期的に記録されます。 データベース チェックポイント 処理中に、データベース サーバー メモリのデータ ページもストレージにフラッシュされます。
リモート ストレージ すべての MariaDB 物理データ ファイルとログ ファイルは Azure Storage に格納され、データの冗長性、可用性、信頼性を提供するために、リージョン内にデータのコピーが 3 つ格納されます。 ストレージ 層は、データベース サーバーに依存しません。 失敗したデータベース サーバーからデタッチし、数秒で新しいデータベース サーバーに再アタッチできます。
Azure Storage は、ストレージ障害を継続的に監視します。 ブロックの破損が検出されると、新しいストレージ コピーをインスタンス化することで問題が自動的に修正されます。
ゲートウェイ ゲートウェイは、すべてのクライアント接続をデータベース サーバーにルーティングすることで、データベース プロキシとして機能します。

計画されたダウンタイムの軽減

Azure Database for MariaDB のアーキテクチャでは、計画されたダウンタイム操作中に高可用性が提供されます。

Diagram of elastic scaling in Azure Database for MariaDB.

計画メインテナントのシナリオをいくつか次に示します。

シナリオ 説明
コンピューティングのスケールアップまたはスケールダウン コンピューティングのスケールアップまたはスケールダウン操作を実行すると、Azure Database for MariaDB は、スケーリングされたコンピューティング構成を使用して新しいデータベース サーバーをプロビジョニングします。 古いデータベース サーバーでは、アクティブなチェックポイントの完了、クライアント接続のドレイン、およびコミットされていないトランザクションの取り消しがサービスによって許可されます。 その後、サービスは古いデータベース サーバーをシャットダウンします。 古いデータベース サーバーからストレージをデタッチし、そのストレージを新しいデータベース サーバーにアタッチします。 クライアント アプリケーションが接続を再試行するか、新しい接続を作成しようとすると、ゲートウェイは新しいデータベース サーバーに接続要求を送信します。
ストレージのスケール アップ ストレージのスケールアップはオンライン操作であり、データベース サーバーを中断しません。
新しいソフトウェアのデプロイ (Azure) 新機能やバグ修正のロールアウトは、サービスの計画されたメインテナントの一部として自動的に行われます。 詳細については、ポータルドキュメントとチェックを参照してください。
マイナー バージョンのアップグレード Azure Database for MariaDB では、Azure が決定するマイナー バージョンにデータベース サーバーの修正プログラムが自動的に適用されます。 自動修正は、サービスの計画されたメインテナントの一部として行われます。 秒単位で短いダウンタイムが発生し、新しいマイナー バージョンでデータベース サーバーが自動的に再起動されます。 詳細については、ポータルドキュメントとチェックを参照してください。

計画外のダウンタイムの軽減

計画外のダウンタイムは、基になるハードウェア障害、ネットワークの問題、ソフトウェアのバグなど、予期しない障害の結果として発生する可能性があります。 データベース サーバーが予期せず停止した場合は、新しいデータベース サーバーが数秒で自動的にプロビジョニングされます。 リモート ストレージは、新しいデータベース サーバーに自動的に接続されます。

MariaDB エンジンは、先書きログとデータベース ファイルを使用して復旧操作を実行し、クライアントが接続できるようにデータベース サーバーを開きます。 コミットされていないトランザクションは失われ、アプリケーションはトランザクションを再試行する必要があります。

計画外のダウンタイムを回避することはできませんが、Azure Database for MariaDB では、データベース サーバー層とストレージ 層の両方で、人間の介入を必要とせずに自動的に復旧操作を実行することで軽減されます。

Diagram of high availability in Azure Database for MariaDB.

計画外のダウンタイム: 障害シナリオとサービス復旧

次に示すのは、2 つの障害シナリオと、Azure Database for MariaDB が自動的に復旧する方法です。

シナリオ 自動復旧
データベース サーバーの障害 基になるハードウェア障害が原因でデータベース サーバーがダウンしている場合、Azure Database for MariaDB はアクティブな接続を削除し、処理中のトランザクションを取り消します。 サービスは新しいデータベース サーバーを自動的にデプロイし、リモート データ ストレージを新しいデータベース サーバーに接続します。 データベースの復旧が完了すると、クライアントはゲートウェイを介して新しいデータベース サーバーに接続できます。
MariaDB データベースを使用するアプリケーションは、削除された接続と失敗したトランザクションを検出して再試行する方法で構築する必要があります。 アプリケーションが接続を再試行すると、ゲートウェイは新しく作成されたデータベース サーバーに透過的に接続をリダイレクトします。
ストレージの障害 ディスク障害や物理ブロックの破損などのストレージ関連の問題は、アプリケーションには影響しません。 データは 3 つのコピーに格納されるため、残りのストレージはデータのコピーを処理します。 Azure Database for MariaDB では、ブロックの破損が自動的に修正されます。 データのコピーが失われた場合、サービスは自動的にデータの新しいコピーを作成します。

ユーザーアクションを回復する必要がある障害シナリオを次に示します。

シナリオ 復旧計画
リージョンの障害 リージョンの障害は、まれにしか発生しないイベントです。 ただし、リージョンの障害からの保護が必要な場合は、ディザスター リカバリーのために他のリージョンで 1 つ以上の読み取りレプリカを構成できます。 詳細については、読み取りレプリカの作成と管理に関するこの記事を参照してください。 リージョン レベルの障害が発生した場合は、別のリージョンで構成された読み取りレプリカを運用データベース サーバーに手動で昇格できます。
論理/ユーザー エラー 誤って削除されたテーブルや誤って更新されたデータなどのユーザー エラーからの回復には、ポイントインタイム リカバリーの実行が含まれます。 このアクションは、エラーが発生する直前の時刻までデータを復元および回復します。
データベース サーバー内のすべてのデータベースではなく、データベースまたは特定のテーブルのサブセットのみを復元する場合は、新しいインスタンスでデータベース サーバーを復元し、mysqldump を使用してテーブルをエクスポートしてから、データベース内のこれらのテーブルを復元できます。

まとめ

Azure Database for MariaDB には、データベースを一般的な停止から保護するための固有の高可用性機能があります。 データベース サーバーの高速再起動機能、冗長ストレージ、ゲートウェイからの効率的なルーティングが提供されます。 追加のデータ保護のために、geo レプリケートされるようにバックアップを構成し、他のリージョンに読み取りレプリカをデプロイできます。

次のステップ