RMANを使用したオブジェクト・ストレージへのデータベースのバックアップ

この記事では、Recovery Manager (RMAN)を使用して、DBシステム・データベースのバックアップを独自のオブジェクト・ストレージに管理する方法について説明します。

このサービスにバックアップするには、バックアップ用のオブジェクト・ストレージ・バケットを作成し、サービスのパスワードを生成し、Oracle Database Cloud Backup Moduleをインストールした後に、バックアップをサービスに送信するようにRMANを構成します。このバックアップ・モジュールは、RMANと緊密に統合されているテープへのシステム・バックアップ(SBT)インタフェースであるため、使い慣れたRMANコマンドを使用してバックアップおよびリカバリ操作を実行できます。

コンソールおよびサービスのエンドポイントURLにSwiftが示されています。これは、OpenStack Swiftオブジェクト・ストアであるOracle Database Backup Cloud Serviceにバックアップするために、通常はこのバックアップ・モジュールが使用されるためです。

ヒント :

単一ノードのDBシステムでは、DBCLIを使用してオブジェクト・ストレージにバックアップできます。バックアップ・モジュールをインストールしてバックアップにRMANを使用するかわりに、この方法を使用することもできます。詳細は、objectstoreswiftコマンドを参照してください。dbcliコマンドは、マルチノードのRAC DBシステムには使用できません。

前提条件

次のものが必要になります:

  • バックアップするDBシステムおよびデータベース。
  • DBシステムのクラウド・ネットワーク(VCN)が、オブジェクト・ストレージにアクセスできるように構成されている必要があります:
    • DBシステムと同じリージョンにあるオブジェクト・ストレージにアクセスする場合: サービス・ゲートウェイを使用することをお薦めします。
    • DBシステムとは異なるリージョンのオブジェクト・ストレージにアクセスする場合: インターネット・ゲートウェイを使用してください。DBシステムとオブジェクト・ストレージ間のネットワーク・トラフィックはクラウドの外に出ず、パブリック・インターネットに達することはありません。

    For more information, see VCN and Subnets.

  • バックアップ保存先として使用する既存のオブジェクト・ストレージ・バケット。コンソールまたはオブジェクト・ストレージAPIを使用してバケットを作成できます。

    詳細は、バケットの管理を参照してください。

  • OCIによって生成された認証トークン。コンソールまたはIAM APIを使用してパスワードを生成できます。

    詳細は、ユーザー資格証明の管理認証トークンの作業を参照してください。

  • ユーザー名(バックアップ・モジュールのインストール時および使用時に指定)には、オブジェクト・ストレージに対するテナンシレベルのアクセス権が必要です。これを行うための簡単な方法は、ユーザー名を管理者グループに追加することです。ただし、これにより、すべてのクラウド・サービスに対するアクセスが許可されます。そうせずに、管理者は、データベースのバックアップとリストアに必要なオブジェクト・ストレージ内のリソースにのみアクセスできるようにする、次のようなポリシーを作成する必要があります:

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    
    Allow group <group_name> to read buckets in compartment <compartment_name>

    グループへのユーザーの追加の詳細は、グループの管理を参照してください。ポリシーの詳細は、ポリシーの開始を参照してください。

DBシステムへのバックアップ・モジュールのインストール

  1. DBシステムにSSH接続します。
    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. opcユーザーとしてログインします。
    login as: opc
  3. sudooracleユーザーに切り替えます。
    sudo su - oracle
  4. バックアップ・モジュールopc_install.jarファイルが含まれるディレクトリに変更します。
    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. 次のコマンド構文を使用して、バックアップ・モジュールをインストールします。
    java -jar opc_install.jar -opcId <user_id> -opcPass '<auth_token>' -container <bucket_name>;-walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    パラメータは次のとおりです:

    パラメータ 説明
    -opcId

    Oracle Cloud Infrastructureユーザー・アカウントのユーザー名。例: -opcId <username>@<example>.com

    これは、コンソールへのサインインに使用するユーザー名です。

    前提条件の項で説明しているように、ユーザー名は管理者グループのメンバーである必要があります。

    ユーザー名を一重引用符で囲んで指定することもできます。-opcId 'j~smith@<example>.com'のように名前に特殊文字が含まれている場合、これが必要になることがあります

    必ず、傾いたアポストロフィではなくまっすぐな一重引用符を使用してください。

    -opcPass

    コンソールまたはIAM APIを使用して生成される、一重引用符で囲まれた認証トークン。例: -opcPass <password>

    必ず、傾いたアポストロフィではなくまっすぐな一重引用符を使用してください。

    詳細は、ユーザー資格証明の管理を参照してください。

    これは、Oracle Cloud Infrastructureユーザーのパスワードではありません

    -container

    バックアップ保存先として使用する、オブジェクト・ストレージ内の既存のバケットの名前。例: -container DBBackups

    -walletDir

    インストール・ツールによってOracle Cloud Infrastructureユーザー名および認証トークンを含むOracle Walletが作成されるディレクトリ。

    -walletDir ~/hsbtwalletでは、現在のユーザー(oracle)のホーム・ディレクトリ内にウォレットが作成されます。

    -libDir

    SBTライブラリが格納されるディレクトリ。コマンドを実行するには、ディレクトリがすでに存在している必要があります。このパラメータを使用すると、最新のSBTライブラリがダウンロードされます。

    -libDir ~/lib/では、現在のユーザーのホーム・ディレクトリ(たとえば、/home/oracle/lib/libopc.so)内にlibopc.soファイルがダウンロードされます。

    -configfile

    インストール・ツールによって作成される初期化パラメータ・ファイルの名前。このファイルはRMANジョブによって参照されます。

    -configfile ~/configでは、現在のユーザーのホーム・ディレクトリ(たとえば、/home/oracle/config)内にファイルが作成されます。

    -host

    バックアップが送信されるエンドポイントURL:

    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    object_storage_namespaceは、テナンシのオブジェクト・ストレージ・ネームスペースです。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    オブジェクト・ストレージ・ネームスペースの後にスラッシュを追加しないでください。

    リージョン名を調べるには、リージョンおよび可用性ドメインを参照してください。

RMANの構成

このトピックでは、デフォルトのバックアップ保存先としてバケットを使用するようにRMANを構成する方法について説明します。以降では、ユーザーがDBシステムにまだログインしていることを前提としています。

  1. DBシステムで、oraenvユーティリティを使用してORACLE_HOMEおよびORACLE_SID環境変数を設定します。
    . oraenv
  2. RMANを使用してデータベースに接続します。
    rman target /
  3. SBTデバイスを使用し、バックアップ・モジュールのインストール時に作成されたconfigファイルを指すように、RMANを構成します。ここでは、バージョン12データベースのサンプル・コマンドを示します。
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 
        'SBT_LIBRARY=/home/oracle/lib/libopc.so, 
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. デフォルトでSBT_TAPEを使用するようにRMANを構成します。次の例では、SBT_TAPEへの制御ファイルおよびspfileの自動バックアップを有効にし、暗号化を構成します。他にも、圧縮、使用するバックアップおよびリカバリ・チャネルの数、バックアップの保持ポリシー、アーカイブ・ログの削除ポリシーなど、インストールに適用できる設定があります。適切な設定の選択の詳細は、使用しているOracleのバージョン用のOracleバックアップおよびリカバリのドキュメントを参照してください。
    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;

    ノート:

    バックアップは暗号化する必要があります。バックアップの実行時に暗号化を指定します。バックアップが暗号化されていない場合、エラーが表示されます。

RMANの構成が完了したら、テープ・バックアップ用に定期的に使用するコマンドと同じRMANコマンドを使用できます。

データベースのバックアップ

このトピックでは、一般的に使用されるバックアップ・コマンドの例を示します。

  1. データベース暗号化を設定します:
    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    この設定は永続的ではありません。新しいRMANセッションごとに設定する必要があります。

  2. データベースおよびアーカイブ・ログをバックアップします。コマンドの例を次に示します。ニーズに合ったバックアップ手順の選択の詳細は、使用しているOracleのバージョン用のOracleバックアップおよびリカバリのドキュメントを参照してください。必ず、データ損失の可能性を最小限に抑えるために定期的にバックアップし、常にspfileおよび制御ファイルのコピーを含めてください。次の例では、12cで導入された機能であるマルチセクションの増分バックアップを使用しています。11gを使用する場合は、section size句を省略してください。
    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. データ損失の可能性を最小限に抑えるためにアーカイブ・ログを頻繁にバックアップし、予防措置として複数のバックアップ・コピーを保持してください。
    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

バックアップ・ジョブが完了したら、「オブジェクト・ストレージ」を選択すると、コンソールの「ストレージ」ページにバケット内のバックアップ・ファイルが表示されます。