Azure Linux VM 上の Oracle Database のバックアップ戦略

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

適用対象: ✔️ Linux VM

データベース バックアップは、ストレージ コンポーネント障害やデータセンター障害が原因のデータ損失からデータベースを保護するのに役立ちます。 また、人的エラーから復旧する手段として、あるいは開発やテスト目的でデータベースを複製する方法としても使用できます。

Azure では、すべてのストレージは高度に冗長化されています。 1 つ以上のディスクが失われても、データベースが停止するわけではありません。 バックアップは、人為的なエラーに対する防御を行ったり、複製操作を容易にしたり、規制に対応したデータ保持を行うために最もよく使用されます。

また、バックアップは DataGuard などのディザスター リカバリー テクノロジが使用できない場合のリージョンの停止に対する防御にも役立ちます。 この場合、プライマリ データベース リージョン外で使用できるように、バックアップは geo 冗長レプリケーションを使用して、異なる Azure リージョンに保存する必要があります。

Azure Storage

Azure Storage サービスは、現代的なデータストレージ シナリオのための Microsoft のクラウド ソリューションです。 Azure Storage は、外部ストレージを Azure Linux 仮想マシン (VM) にマウントするために使用できるサービスを提供しており、Oracle Database インスタンスのバックアップ メディアとして適しています。 バックアップまたは復元操作を開始し、Azure Storage から、または Azure Storage へバックアップをコピーするには、Oracle Recovery Manager (RMAN) などのバックアップ ツールが必要です。

Azure Storage サービスには次の利点があります。

  • 持続性と高可用性。 冗長性は一時的なハードウェア障害の間もデータを安全に保つことに役立ちます。 すべてのストレージは、既定でトリプル ミラー化されています。 地域的な災害または自然災害からの保護を強化するために、データセンターまたは地理的リージョンにまたがってデータをレプリケートすることを選択することもできます。 この方法でレプリケートされたデータは、予期しない停止が発生した場合でも高可用性を維持します。

  • セキュリティ保護: Azure Storage は、ストレージ アカウントに書き込まれたすべてのデータを暗号化します。 Azure Storage では、データに誰がアクセスできるかを細かく制御できます。

  • スケーラブル: Azure Storage は高度にスケーラブルであり、現代のアプリケーションのデータ ストレージとパフォーマンスのニーズを満たすことができます。

  • マネージド: Azure はユーザーに代わって、ハードウェアのメンテナンス、更新、および重大な問題を処理します。

  • アクセス可能: Azure Storage 内のデータには、世界中のどこからでも HTTP または HTTPS 経由でアクセスできます。 Microsoft は .NET、Java、Node.js、Python、PHP、Ruby、Go などのさまざまな言語で Azure Storage 用のクライアント ライブラリを提供しています。 Microsoft は成熟した REST API も提供しています。

    Azure Storage では、Azure PowerShell または Azure CLI でのスクリプト化がサポートされます。 Azure portal と Azure Storage Explorer はデータ操作のための視覚的ソリューションを提供します。

Azure Storage プラットフォームには、Oracle Database のバックアップ メディアとして使用するのに適した次のデータ サービスが含まれています。

  • Azure Blob Storage: テキストおよびバイナリ データのためのオブジェクト ストア。 また、Azure Data Lake Storage Gen2 を通したビッグ データ分析のサポートも含まれています。

  • Azure NetApp Files: スナップショットの作成、複製、データベース ボリュームのレプリケートのための高度なデータ管理機能を含む、完全なネットワーク ストレージ ソリューション。

  • Azure Files:クラウドまたはオンプレミスのデプロイ用のマネージド ファイル共有。

  • Azure Disk Storage: Azure VM のブロックレベルのストレージ ボリューム。

リージョンをまたがるストレージ マウント

リージョンをまたいでバックアップ ストレージにアクセスする機能は、事業継続とディザスター リカバリー (BCDR) の重要な側面です。 これはバックアップから異なる地理的リージョンにデータベースを複製するためにも役立ちます。 Azure クラウド ストレージは、次の 5 つのレベルの冗長性を提供します。

  • ローカル冗長ストレージ (LRS): データはプライマリ リージョンの 1 つの物理的な場所内で 3 回レプリケートされます。
  • ゾーン冗長ストレージ (ZRS): データはプライマリ リージョンの 3 つの可用性ゾーンにわたって同期的にレプリケートされます。 LRS は、プライマリ リージョンのデータを保護し、各可用性ゾーンを保護するのに役立ちます。
  • geo 冗長ストレージ (GRS): データはセカンダリ リージョンに非同期的にレプリケートされます。 LRS は、プライマリ リージョンとセカンダリ リージョンのデータを保護するのに役立ちます。
  • geo ゾーン冗長ストレージ (GZRS): データは ZRS を使用して、プライマリ リージョンの 3 つの Azure 可用性ゾーンにわたって同期的にコピーされます。 その後、データはセカンダリ リージョンの 1 つの物理的な場所に非同期的にコピーされます。 LRS は、すべての場所でデータを保護するのに役立ちます。
  • 読み取りアクセス geo 冗長ストレージ (RA-GRS) および読み取りアクセス geo ゾーン冗長ストレージ (RA-GZRS): セカンダリ リージョンにレプリケートされたデータへの読み取り専用アクセスが常時許可されます。

BLOB およびファイル ストレージ

サーバー メッセージ ブロック (SMB) プロトコルまたはネットワーク ファイル システム (NFS) 4.1 プロトコルのいずれかで Azure Files を使用してバックアップ ストレージとしてマウントしている場合、Azure Files は RA-GRS または RA-GZRS をサポートしていません。

Azure Files バックアップ ストレージは、LRS、GRS、GZRS の冗長性オプションをサポートして、最大 100 (TiB) までスケールアップできます。

NFS 3.0 プロトコルを使用してマウントされた Azure Blob Storage では、現在、LRS および ZRS 冗長性のみがサポートされています。 どの冗長性オプションを使用して構成された Azure Blob Storage でも、Blobfuse を使用してマウントできます。

Recovery Services コンテナー

Recovery Services コンテナーは、経時的に作成された復旧ポイントを保存する管理エンティティです。 これは、バックアップ関連の操作を実行するためのインターフェイスを提供します。 たとえば、オンデマンドのバックアップの作成、復元の実行、バックアップ ポリシーの作成などの操作です。

Azure Backup では、コンテナーのストレージが自動的に処理されます。 そのストレージをレプリケートする方法を、作成時に指定する必要があります。 コンテナーで項目が保護された後にレプリケーションを変更することはできません。 リージョンの冗長性を確保するには、geo 冗長設定を選択します。

セカンダリ Azure ペア リージョンに復元する予定の場合は、リージョンをまたがる復元機能を有効にします。 リージョンをまたがる復元を有効にすると、バックアップ ストレージは GRS から RA-GRS に移行されます。

Azure Blob Storage

Azure Blob Storage は大量の非構造化データの保存用のクラウドベース サービスで Oracle Database のバックアップに適しています。 Blobfuse (Linux FUSE) または NFS v3.0 プロトコルを使用することで、Azure Blob Storage を Azure Linux VM にマウントできます。

blobfuse

Blobfuse は、Azure Blob Storage によってサポートされる仮想ファイル システムを提供するオープンソース プロジェクトです。 これは libfuse オープンソース ライブラリを使用して Linux FUSE カーネル モジュールと通信します。 これは Azure Blob Storage REST API を使用することでファイルシステム操作を実装しています。

Blobfuse は現在、Ubuntu および Centos/RedHat ディストリビューションで使用できます。 これは CSI ドライバーを使用して Kubernetes で使用することもできます。

Blobfuse は Azure リージョン全体でユビキタスであり、汎用 v1/v2 や Azure Data Lake Storage Gen2 を含むすべてのストレージ アカウントの種類で動作します。 ただし、代替プロトコルと同程度のパフォーマンスは示しません。 データベース バックアップ メディアとしての適合性を確保するには、SMB または NFS プロトコルを使用して Azure Blob Storage をマウントすることをお勧めします。

NFS v3.0

NFS v3.0 プロトコルの Azure サポートが利用できます。 NFS サポートにより、Windows および Linux クライアントは Azure Blob Storage コンテナーを Azure VM にマウントできるようになります。

ネットワーク セキュリティを確保するには、NFS マウントに使用するストレージ アカウントは仮想ネットワーク内に含まれている必要があります。 NFS 3.0 プロトコルのサポートが有効になっているアカウントでは、Microsoft Entra のセキュリティおよびアクセス制御リスト (ACL) はまだサポートされていません。

Azure Files

Azure Files は、クラウドベースのフル マネージド分散ファイル システムです。 これはオンプレミスまたはクラウドベースの Windows、Linux、または macOS クライアントにマウントできます。

Azure Files はクラウドで、SMB および NFS プロトコルを介してアクセスできる、フル マネージド クロスプラットフォームのファイル共有を提供します。 現在、Azure Files ではマルチプロトコル アクセスがサポートされていないため、共有は NFS 共有または SMB 共有のどちらかのみである必要があります。 Azure ファイル共有を作成する前に、どちらのプロトコルが自分のニーズに最も適しているかを判断することをお勧めします。

Recovery Services コンテナー用の Azure Backup を使用して、Azure ファイル共有の保護を強化することもできます。 この方法は Oracle RMAN バックアップに対して別レイヤーの保護を提供します。

Azure Files と NFS v4.1

NFS v4.1 プロトコルを使用して、Linux ディストリビューションで Azure ファイル共有をマウントできます。 サポートされる機能には制限があります。 詳細については、「Azure Storage 機能のサポート」のセクションを参照してください。

Azure NFS ファイル共有は、Premium ファイル ストレージをサポートするすべてのリージョンでサポートされます。

最新の一覧については、「Azure のリージョン別の利用可能な製品ページ」の「Premium Files Storage」エントリを参照してください。

Azure Files と SMB 3.0

SMB カーネル クライアントを使用して、Linux ディストリビューションで Azure ファイル共有をマウントできます。 Linux ディストリビューションで使用できる Common Internet File System (CIFS) プロトコルは SMB の方言です。 SMB を使用して Linux VM に Azure ファイル共有をマウントする場合は、CIFS タイプのファイル システムとしてマウントされるので、CIFS パッケージがインストールされている必要があります。

SMB を使用して Azure ファイル共有をマウントする機能は、すべての Azure リージョンで一般提供されています。 これは NFS v3.0 および v4.1 プロトコルと同等のパフォーマンス特性を示すので、Azure Linux VM にバックアップ ストレージ メディアを提供するための方法として現状推奨されています。

サポートされている SMB のバージョンとしては、SMB 2.1 と SMB 3.0 の 2 つが利用できます。 転送中の暗号化がサポートされているため、SMB 3.0 をお勧めします。 ただし、Linux カーネルのバージョンによって、SMB 2.1 と 3.0 のサポートに違いがあります。 お使いのアプリケーションが SMB 3.0 をサポートしていることを確認するには、「Linux 上の SMB Azure ファイル共有のマウント」を参照してください。

Azure Files はマルチユーザー ファイル共有サービスであるため、これをバックアップ ストレージ メディアとしてより適したものにするためには、いくつかの特性をチューニングする必要があります。 キャッシュをオフにすることと、作成されたファイルに対してユーザー ID とグループ ID を設定することをお勧めします。

Azure NetApp Files

Azure NetApp Files サービスは、Azure VM の Oracle Database 用として完璧なストレージ ソリューションです。 これは従量制課金ファイル ストレージ上に構築されており、あらゆる種類のワークロードをサポートし、既定で高い可用性を持ちます。 Oracle Direct NFS ドライバーと合わせて、Azure NetApp Files は Oracle Database 向けの高度に最適化されたストレージ レイヤーを提供します。

Azure NetApp Files は基になるストレージ システム上で書き込み時リダイレクト メカニズムを使用し、効率的なストレージベースのスナップショットを提供します。 スナップショットは取得と復元が高速ですが、最初の防衛線としてしか機能しません。 これらはどんな組織でも必要とされる復元操作の大部分を占め、多くの場合人的エラーが原因の復旧に含まれます。

ただし、スナップショットは完全なバックアップではありません。 バックアップと復元のすべての要件をカバーするには、リージョンの停止に対する防御を強化するために、外部スナップショット レプリカや他の離れた地理的な場所内のバックアップ コンテナーを作成する必要があります。 Azure NetApp Files スナップショットのしくみの詳細を確認してください

データベースと整合性のあるスナップショットを確実に作成するには、バックアップ プロセスをデータベースとストレージの間のオーケストレーションを行う必要があります。 Azure アプリケーション整合性スナップショット (AzAcSnap) コマンドライン ツールは、サードパーティ製データベースのデータ保護を可能にします。 これはストレージ スナップショットの取得前に、これらのデータベースをアプリケーションと整合性のある状態にするために必要なすべてのオーケストレーションを処理します。 その後、データベースを運用状態に戻します。 Oracle Database は、バージョン 5.1 以降、AzAcSnap でサポートされています。

Azure NetApp Files を Azure 上の Oracle Database に対して使用するための詳細については、「Azure NetApp Files を使用したソリューション アーキテクチャ」を参照してください。

Azure Backup サービス

Azure Backup は、データをバックアップして Microsoft Azure クラウドから復旧するためのフル マネージドのサービスとしてのプラットフォーム (PaaS) ソリューションです。 Azure Backup は、オンプレミスのクライアント、Azure VM、Azure ファイル共有をバックアップおよび復元できます。 また、Azure VM 上の SQL Server、Oracle、MySQL、PostgreSQL、SAP HANA データベースをバックアップすることもできます。

Azure Backup では、元のデータが誤って破壊されることを防ぐために、独立して分離されたバックアップを提供しています。 バックアップは、復旧ポイントの管理機能が組み込まれた Recovery Services コンテナーに格納されます。

Azure Backup は Azure クラウドを使用して、メンテナンスや監視のオーバーヘッドがない高可用性を提供します。 転送されるインバウンド データまたはアウトバウンド データの量を制限せず、転送されるデータに対して課金も行いません。 データは転送中と保存中はセキュリティで保護されます。

Azure Backup は、バックアップ データの高可用性を維持するために次に示す複数の種類のレプリケーションを提供しています。

  • LRS は、データセンターのストレージ スケール ユニットにデータを 3 回レプリケートします (つまり、データのコピーを 3 つ作成します)。
  • GRS は、既定かつ推奨されるレプリケーション オプションです。 GRS はソース データのプライマリの場所から数百マイル離れているセカンダリ リージョンにデータをレプリケートします。

GRS 冗長性で作成されたコンテナーには、リージョンをまたがる復元機能を構成するためのオプションが含まれています。 この機能を使用して、セカンダリ Azure ペア リージョンのデータを復元できます。

Azure Backup サービスは、Oracle、MySQL、Mongo DB、SAP HANA、PostGreSQL などのさまざまなアプリケーションの Windows および Linux VM のバックアップ中に、アプリケーションの整合性を確保するためのフレームワークを提供しており、これはアプリケーション整合性スナップショットと呼ばれています。 このフレームワークには、ディスクのスナップショットを取得する前の (アプリケーションを休止させるための) 事前スクリプトの呼び出しが含まれます。 スナップショットが完了した後に事後スクリプト (アプリケーションの凍結を解除するコマンド) を呼び出して、アプリケーションを通常モードに戻します。

サンプルの事前スクリプトと事後スクリプトは GitHub で見つけることができますが、自分の責任でこれらのスクリプトの作成と保守を行う必要があります。 Oracle の場合、オンライン バックアップを許可するには、データベースがアーカイブ ログ モードである必要があります。 自分で事前スクリプトと事後スクリプトで実行される適切なデータベースの開始および終了バックアップ コマンドを作成して保守する必要があります。

Azure Backup は拡張事前スクリプトおよび事後スクリプト フレームワークを提供し、その中には選択されたアプリケーション用にパッケージ化された事前スクリプトと事後スクリプトが用意されています。 自分ではアプリケーションに名前を付けるだけで、Azure Backup が関連する事前スクリプトと事後スクリプトを自動的に呼び出します。 Microsoft がパッケージ化された事前スクリプトと事後スクリプトの管理を行うため、これらのスクリプトのサポート、所有権、有効性について確信を持つことができます。

現在のところ、拡張フレームワークでサポートされているアプリケーションは Oracle 12.1 以降と MySQL です。 スナップショットはストレージの完全なコピーであり、増分または書き込み時コピーのスナップショットではないため、データベースの復元元として有効なメディアです。

VLDB の考慮事項

非常に大規模なデータベース (VLDB) のバックアップ戦略には、そのサイズゆえに慎重な検討が必要です。 Azure Blob Storage または Azure Files へのバックアップを行うために RMAN を使用すると、目標の概算時間内で VLDB をバックアップするために必要なスループットが得られない場合があります。

RMAN 増分バックアップを使用して、バックアップ サイズを減らすことができます。 この方法によって、VLDB のバックアップ メディアとして Azure Storage を使用できる場合があります。 ただし、これは大量の変更がある VLDB には有効でない場合があります。

VLDB には Azure Backup や Azure NetApp Files などのスナップショット機能を提供する Azure サービスを使用することをお勧めします。 アプリケーション整合性スナップショットは、データベースが自動的にバックアップモードになったり、バックアップモードを解除されたりするもので、データベースのサイズに関係なく作成にはわずか数秒しかかかりません。

バックアップ戦略は、組織が Oracle Database に対して使用するストレージ ソリューション全体に関連付けられている場合もあります。 IO スループットが極めて高いデータベース ワークロードでは、データベース ストレージのスループットと IOPS の要件を満たすために、Azure NetApp Files や、Silk などのサード パーティの Azure Marketplace ソリューションがよく使用されます。 これらのソリューションには、高速のデータベース バックアップおよび復元操作用のアプリケーション整合性スナップショットも用意されています。

次のステップ