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コマンドを参照してください。
前提条件
次のものが必要になります:
- バックアップするDBシステムおよびデータベース。
-
DBシステムのクラウド・ネットワーク(VCN)が、オブジェクト・ストレージにアクセスできるように構成されている必要があります:
- DBシステムと同じリージョンにあるオブジェクト・ストレージにアクセスする場合: サービス・ゲートウェイを使用することをお薦めします。
- DBシステムとは異なるリージョンのオブジェクト・ストレージにアクセスする場合: インターネット・ゲートウェイを使用してください。DBシステムとオブジェクト・ストレージ間のネットワーク・トラフィックはクラウドの外に出ず、パブリック・インターネットに達することはありません。
詳細は、VCNおよびサブネットに関する項を参照してください。
-
バックアップ保存先として使用する既存のオブジェクト・ストレージ・バケット。コンソールまたはオブジェクト・ストレージ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システムへのバックアップ・モジュールのインストール
-
DBシステムにSSH接続します。
ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname> -
opcユーザーとしてログインします。login as: opc -
sudoでoracleユーザーに切り替えます。sudo su - oracle -
バックアップ・モジュール
opc_install.jarファイルが含まれるディレクトリに変更します。cd /opt/oracle/oak/pkgrepos/oss/odbcs -
次のコマンド構文を使用して、バックアップ・モジュールをインストールします。
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>パラメータは次のとおりです:
パラメータ 摘要 -opcIdOracle 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ユーザー名および認証トークンを含む1 Walletを作成するディレクトリ。 -walletDir ~/hsbtwalletは、現在のユーザー(oracle)ホーム・ディレクトリにウォレットを作成します。-libDirSBTライブラリが格納されるディレクトリ。コマンドを実行するには、ディレクトリがすでに存在している必要があります。このパラメータにより、最新のSBTライブラリがダウンロードされます。 -libDir ~/lib/は、libopc.soファイルを現在のユーザーのホーム・ディレクトリ(たとえば、/home/oracle/lib/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システムにまだログインしていることを前提としています。
-
DBシステムで、
oraenvユーティリティを使用してORACLE_HOMEおよびORACLE_SID環境変数を設定します。. oraenv -
RMANを使用してデータベースに接続します。
rman target / -
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)'; -
デフォルトで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コマンドを使用できます。
データベースのバックアップ
このトピックでは、一般的に使用されるバックアップ・コマンドの例を示します。
-
データベース暗号化を設定します:
SET ENCRYPTION IDENTIFIED BY "password" ONLY;この設定は永続的ではありません。新しいRMANセッションごとに設定する必要があります。
-
データベースおよびアーカイブ・ログをバックアップします。コマンドの例を次に示します。ニーズに合ったバックアップ手順の選択の詳細は、使用している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; -
データ損失の可能性を最小限に抑えるためにアーカイブ・ログを頻繁にバックアップし、予防措置として複数のバックアップ・コピーを保持してください。
BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;
バックアップ・ジョブが完了したら、「オブジェクト・ストレージ」を選択すると、コンソールの「ストレージ」ページにバケット内のバックアップ・ファイルを表示できます。