次の方法で共有


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 の物理データ ファイルとログ ファイルはすべて、データの冗長性、可用性、信頼性を確保するためにリージョン内にデータの 3 つのコピーを保存する Azure Storage 上に保存されます。 このストレージ レイヤーはデータベース サーバーから独立しています。 これは数秒で障害が発生したデータベース サーバーからデタッチして、新しいデータベース サーバーに再アタッチすることができます。
Azure Storage は、ストレージの障害がないかを常に監視します。 ブロックの破損を検出すると、新しいストレージ コピーのインスタンスを作成することで問題を自動的に修正します。
ゲートウェイ ゲートウェイは、すべてのクライアント接続をデータベース サーバーにルーティングすることで、データベース プロキシとして機能します。

計画的なダウンタイムの軽減

Azure Database for MariaDB のアーキテクチャは、計画的なダウンタイム操作中の高可用性を提供します。

Azure Database for MariaDB におけるエラスティック スケーリングの図。

計画メンテナンスのいくつかのシナリオを以下に示します。

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

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

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

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

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

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 レプリケートされるようにバックアップを構成したり、他のリージョンに読み取りレプリカをデプロイしたりすることができます。

次のステップ