A Oracle Streamsと他のデータベース・コンポーネントとの連携
この付録では、Oracle Streamsと他のOracle Databaseコンポーネントとの連携について説明します。
内容は次のとおりです。
A.1 Oracle StreamsおよびOracle Real Application Clusters
次の項では、Oracle StreamsとOracle Real Application Clusters(Oracle RAC)との連携について説明します。
関連項目:
Oracle RAC環境におけるOracle Streamsのベスト・プラクティスについては、『Oracle Streamsレプリケーション管理者ガイド』を参照
A.1.1 取得プロセスおよびOracle Real Application Clusters
取得プロセスは、Oracle Real Application Clusters(Oracle RAC)環境での変更を取得できます。同じ環境で1つ以上の取得プロセスとOracle RACを使用する場合は、取得プロセスによって取得される変更を含むすべてのアーカイブ・ログは、Oracle RAC環境のすべてのインスタンスで使用可能である必要があります。Oracle RAC環境では、取得プロセスによってすべてのインスタンスによる変更が読み取られます。単一の取得プロセスによって使用されるプロセスは、Oracle RAC環境の単一インスタンスで実行されます。
各取得プロセスは、起動プロシージャまたは停止プロシージャが別のインスタンスで実行されている場合でも、そのANYDATA
キューの所有者インスタンスで起動および停止されます。また、現行の所有者インスタンスが使用不可能になった場合、取得プロセスは別のインスタンスに対するキューに従います。キュー自体は、プライマリ・インスタンスとセカンダリ・インスタンスの所有権のルールに従います。
取得プロセスによって使用されるキューを含むキュー表の所有者インスタンスが使用不可能になった場合、キュー所有権がクラスタ内の別のインスタンスに自動的に移動します。さらに、所有者インスタンスが使用不可能になったときに取得プロセスが有効であった場合、取得プロセスは新しい所有者インスタンスで自動的に再起動されます。所有者インスタンスが使用不可能になったときに取得プロセスが無効であった場合、取得プロセスは新しい所有者インスタンスでも無効のままです。
LogMinerではLOG_ARCHIVE_DEST_
n
初期化パラメータがサポートされており、Oracle Streamsの取得プロセスでは、LogMinerを使用してREDOログから変更が取得されます。1つの宛先からアーカイブ・ログ・ファイルにアクセスできない場合は、ローカル取得プロセスで、アクセス可能な別の宛先からアーカイブ・ログ・ファイルを読み取ることができます。Oracle RACデータベースでは、この機能を使用して、インスタンス間アーカイブ(CIA)を使用することもできます。CIAでは、各インスタンスによってファイルがすべてのインスタンスにアーカイブされます。この方法では、アーカイブ・ログ・ファイルの欠落による差異を検出したり、解決することはできません。このため、この方法は、既存の方法を補完して、アーカイブ・ファイルをすべてのインスタンスで共有可能にする場合にのみ使用できます。
ダウンストリーム取得プロセス環境では、ソース・データベースは、単一インスタンス・データベースまたは複数インスタンスのOracle RACデータベースです。ダウンストリーム・データベースは、ソース・データベースが単一インスタンスか複数インスタンスかに関係なく、単一インスタンスのデータベースまたは複数インスタンスのOracle RACデータベースとして構成できます。
関連項目:
-
DBA_QUEUE_TABLES
データ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照 -
インスタンス間で共有されるアーカイブ・ログの構成の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照
A.1.2 同期取得およびOracle Real Application Clusters
同期取得は、Oracle Real Application Clusters(Oracle RAC)環境での変更を取得できます。Oracle RAC環境では、同期取得によって、すべてのインスタンスで行われた変更が読み取られます。
Oracle RAC環境での同期取得のパフォーマンスを向上させるには、個別の表セットに対する変更を個別の同期取得で取得する必要があります。たとえば、様々なアプリケーションでデータベース内の異なるセットのデータベース・オブジェクトが使用されている場合は、各アプリケーションのデータベース・オブジェクトに対する変更を取得する個別の同期取得を構成します。この場合、各同期取得で、別々のキューおよびキュー表を使用する必要があります。
関連項目:
A.1.3 取得と適用の複合およびOracle Real Application Clusters
取得と適用の複合はOracle Real Application Clusters(Oracle RAC)環境で使用できます。Oracle RAC環境では、取得プロセスおよび適用プロセスは、同じインスタンス、単一のOracle RACデータベース内の異なるインスタンス、または異なるデータベースに存在することができます。取得プロセスおよび適用プロセスが同じデータベースの異なるインスタンスまたは異なるデータベースに存在する場合、取得と適用の複合を使用するには、取得プロセスのキューと適用プロセスのキューの間の伝播を構成する必要があります。
関連項目:
A.1.4 キューとOracle Real Application Clusters
Oracle Real Application Clusters(Oracle RAC)環境で、LCRとユーザー・メッセージをステージングするようにキューを構成できます。Oracle RAC環境では、キューのバッファを使用できるのは所有者インスタンスのみですが、別のインスタンスは、別のキューのバッファを使用できます。バッファ・キューは、キューに関連付けられたシステム・グローバル領域(SGA)メモリーです。
Oracle Streamsのプロセスおよびジョブは、キュー表のプライマリ・インスタンスおよびセカンダリ・インスタンスの指定をサポートしています。これらの指定を使用する場合、プライマリ・インスタンスが使用不可能になると、セカンダリ・インスタンスがキュー表の所有者となります。プライマリ・インスタンスが再度使用可能になると、所有権はプライマリ・インスタンスに戻ります。
プライマリ・インスタンスおよびセカンダリ・インスタンスの指定は、DBMS_AQADM
パッケージのALTER_QUEUE_TABLE
プロシージャを使用して設定できます。DBA_QUEUE_TABLES
データ・ディクショナリ・ビューは、キュー表の所有者インスタンスに関する情報を示します。キュー表は、複数のキューを含むことがあります。この場合、キュー表内の各キューはキュー表と同じ所有者インスタンスを持ちます。
関連項目:
-
「キュー」
-
DBA_QUEUE_TABLES
データ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照 -
キューおよびOracle RACの詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照
-
ALTER_QUEUE_TABLE
プロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
A.1.5 伝播およびOracle Real Application Clusters
伝播は、あるキューからOracle Real Application Clusters(Oracle RAC)環境内の別のキューにメッセージを伝播できます。インスタンスで実行されている伝播ジョブは、そのインスタンスで所有されるキューから宛先キューに論理変更レコード(LCR)を伝播します。
Oracle RACデータベースへの伝播は、データベース・リンクを介して行われます。データベース・リンクは、メッセージを受信予定のキューを所有している宛先インスタンスに接続するように構成する必要があります。
伝播で宛先キューを含むキュー表の所有者インスタンスが使用不可能になると、キューの所有権がクラスタ内の別のインスタンスに自動的に移動します。宛先キューを含むキュー表のプライマリ・インスタンスおよびセカンダリ・インスタンスの両方が使用不可能になると、キューの所有権がクラスタ内の別のインスタンスに自動的に移動します。この場合、プライマリ・インスタンスまたはセカンダリ・インスタンスが再度使用可能になると、所有権は使用可能になったインスタンスに戻ります。
バッファ宛先キューへのキュー・ツー・キュー伝播は、サービスを使用してOracle RAC環境での透過的フェイルオーバーを提供します。つまり、キュー・ツー・キュー伝播の伝播ジョブは、宛先キューを所有するインスタンスに自動的に接続します。キュー・ツー・キュー伝播で使用されるサービスは、常に宛先キューの所有者インスタンスで実行されます。このサービスは、Oracle RACデータベース内のバッファ・キュー用にのみ作成されます。Oracle RACデータベースにバッファリングされたメッセージ機能を使用する予定の場合は、任意のインスタンスでメッセージをバッファ・キューにエンキューできます。キューを所有していないインスタンスにメッセージがエンキューされた場合、メッセージは正しいインスタンスに送信されますが、キューを所有しているインスタンスにメッセージをエンキューする方がより効率的です。このサービスを使用すると、メッセージをバッファ・キューにエンキューする前にキューの所有者インスタンスに接続できます。
キュー・サービスはキューの所有者インスタンスで常に実行しているため、Oracle RACインスタンスが失敗すると、透過的フェイルオーバーが行われます。複数のキュー・ツー・キュー伝播が1つのデータベース・リンクを使用する場合、メッセージを適切な宛先キューに伝播するように各伝播の接続記述が自動的に変わります。
これに対し、キュー・ツーdblink伝播ではサービスを使用しません。伝播で宛先キューを含むOracle RACデータベースの所有者インスタンスが失敗すると、キュー・ツーdblink伝播ではユーザーがデータベース・リンクを再び指す必要があります。伝播ジョブが宛先データベースの正しいインスタンスに接続するようにするには、宛先キューを所有しているインスタンスに接続するようにソース・データベースからのデータベース・リンクを手動で再構成します。再作成されたデータベース・リンクを使用する伝播を変更する必要はありません。
DBA_SERVICES
データ・ディクショナリ・ビューのNAME
列に、キューのサービス名が含まれています。DBA_QUEUES
データ・ディクショナリ・ビューのNETWORK_NAME
列には、キューのネットワーク名が含まれています。キュー・ツー・キュー伝播のサービスを管理することはできません。これらのサービスはOracleによって自動的に管理されます。キュー・ツーdblink伝播の場合、正しいインスタンスに接続するには、データベース・リンクの接続文字列でネットワーク名をサービス名として使用します。
注意:
Oracle RAC環境でキューが取得LCRを含む場合、キュー・ツー・キュー伝播を使用してOracle RACの宛先データベースにメッセージを伝播してください。キュー・ツーdblink伝播で取得LCRがOracle RACの宛先データベースに伝播される場合、この伝播は、宛先キューの所有者インスタンスを参照するインスタンス固有のデータベース・リンクを使用する必要があります。このような伝播が他のインスタンスに接続すると、伝播でエラーが発生します。
関連項目:
A.1.6 適用プロセスおよびOracle Real Application Clusters
Oracle Streamsの適用プロセスは、Oracle Real Application Clusters(Oracle RAC)環境での変更を適用するように構成できます。各適用プロセスは、開始プロシージャおよび停止プロシージャが別のインスタンスで実行されている場合でも、そのANYDATA
キューの所有者インスタンスで開始または停止されます。適用コーディネータ・プロセス、それに対応する適用リーダー・サーバーおよびそのすべての適用サーバーは、単一インスタンスで実行されます。
適用プロセスで使用されるキューが含まれているキュー表の所有者インスタンスが使用不可能になると、キューの所有権は自動的にクラスタ内の別のインスタンスに譲渡されます。また、現行の所有者インスタンスが使用不可能になった場合、適用プロセスは、別のインスタンスに対するキューに従います。キュー自体は、プライマリ・インスタンスとセカンダリ・インスタンスの所有権のルールに従います。また、適用プロセスは、所有者インスタンスが使用不可能になったときに有効だった場合、新しい所有者インスタンスで自動的に起動されます。所有者インスタンスが使用不可能になったときに無効だった場合は、新しい所有者インスタンスでも無効のままになります。
関連項目:
-
DBA_QUEUE_TABLES
データ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照
A.2 Oracle Streamsおよび透過的データ暗号化
次の項では、Oracle Streamsと透過的データ暗号化との連携について説明します。
関連項目:
透過的データ暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
A.2.1 取得プロセスおよび透過的データ暗号化
ローカル取得プロセスでは、透過的データ暗号化を使用して暗号化されている列に対する変更を取得できます。ダウンストリーム取得プロセスでは、ダウンストリーム・データベースがソース・データベースとキーストアを共有している場合にのみ、暗号化されている列に対する変更を取得できます。キーストアは、ネットワーク・ファイル・システム(NFS)を介して共有するか、または1つのコンピュータ・システムから別のコンピュータ・システムに手動でコピーできます。キーストアがダウンストリーム・データベースと共有されている場合は、ダウンストリーム・データベースのsqlnet.ora
ファイルのENCRYPTION_WALLET_LOCATION
パラメータにキーストアの場所が指定されていることを確認してください。
ダウンストリーム・データベースにキーストアをコピーする場合は、ソース・データベースのキーストアが変更されるたびに、ソース・データベースからダウンストリーム・データベースにキーストアをコピーしてください。ダウンストリーム・データベースのキーストアに対して、レプリケートされた表の暗号化鍵の変更などの操作は実行しないでください。
ローカル取得プロセスまたはダウンストリーム取得プロセスによって取得された行論理変更レコード(行LCR)内の暗号化された列は、行LCRがバッファ・キューにステージングされると復号化されます。透過的データ暗号化が有効になっているデータベース内のディスクに行LCRがオーバーフローした場合、行LCRはディスクに格納されますが、すべての暗号化された列はOracle Streamsによって透過的に暗号化されます。
注意:
取得プロセスによって使用されるREDOログが互換性レベル11.0.0以上のデータベースで生成されている場合、取得プロセスでは、暗号化された列のみがサポートされます。互換性レベルは、COMPATIBLE
初期化パラメータによって制御されます。
関連項目:
A.2.2 同期取得および透過的データ暗号化
A.2.3 明示的取得および透過的データ暗号化
明示的取得を使用すると、データベース表で暗号化されている列の行論理変更レコード(行LCR)を作成およびエンキューできます。ただし、行LCRの作成時に列が暗号化されるように指定することはできません。したがって、明示的に取得された行LCRがキューにステージングされると、行LCRのすべての列が復号化されます。
関連項目:
A.2.4 キューおよび透過的データ暗号化
永続キューは、同期取得によって取得された行論理変更レコード(行LCR)を格納でき、これらの行LCRには、透過的データ暗号化を使用して暗号化された列に対する変更を含めることができます。行LCRは、永続キューに格納されている間は暗号化されたままです。明示的に取得された行LCRには、暗号化された列を含めることはできません。
バッファ・キューは、取得プロセスによって取得された変更を含む行LCRを格納でき、これらの行LCRには、透過的データ暗号化を使用して暗号化された列に対する変更を含めることができます。暗号化された列を含む行LCRがバッファ・キューに格納されると、それらの列は復号化されます。行LCRがディスクにオーバーフローした場合に、その行LCRがディスクに格納されている間、Oracle Streamsは透過的に暗号化された列を暗号化します。
注意:
Oracle Streamsで列を透過的に暗号化するには、ローカル・データベース上のキーストアに暗号化のマスター鍵が格納されており、キーストアがオープンしている必要があります。次の文を実行すると、マスター鍵が設定され、キーストアがオープンします。
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY key-password; ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY key-password;
関連項目:
A.2.5 伝播と透過的データ暗号化
伝播では、透過的データ暗号化を使用して暗号化された列に対する変更を含む行論理変更レコード(行LCR)を伝播できます。伝播によって、暗号化された列とともに行LCRが伝播されると、行LCRがネットワーク上を転送される間に、暗号化された列が復号化されます。必要に応じて、Oracle Advanced Securityの機能を使用して、ネットワーク上でのデータ転送を暗号化できます。
関連項目:
-
ネットワーク・データの暗号化の構成の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照
A.2.6 適用プロセスおよび透過的データ暗号化
適用プロセスでは、透過的データ暗号化を使用して暗号化された列を含む、暗黙的に取得された行論理変更レコード(行LCR)をデキューおよび処理できます。暗号化された列は、それらの暗号化列を含む行LCRが適用プロセスによってデキューされると復号化されます。復号化された列を含むこれらの行LCRは、カスタム処理のために適用ハンドラに送信するか、または直接適用することができます。行LCRが適用され、変更された表に暗号化された列が含まれている場合、暗号化された列に対する変更は適用時に暗号化されます。
暗号化された列が行LCRに含まれていて、宛先データベースの対応する列が暗号化されていない場合は、preserve_encryption
適用プロセス・パラメータによって適用プロセスの動作が制御されます。
-
preserve_encryption
パラメータがY
に設定されているときに、暗号化された列が行LCRに含まれていて、宛先データベースの対応する列が暗号化されていない場合は、適用プロセスでエラーが発生します。エラーが発生すると、行LCRは適用されず、トランザクションのすべての行LCRがエラー・キューに移動されます。 -
preserve_encryption
パラメータがN
に設定されているときに、暗号化された列が行LCRに含まれていて、宛先データベースの対応する列が暗号化されていない場合は、適用プロセスによって行の変更が適用されます。
適用プロセスが、暗黙的に取得された行LCR(暗号化された列を含む)をエラー・キューに移動する場合、行LCRがエラー・キュー内に存在している間は暗号化された列は暗号化されています。行LCRは、取得プロセスおよび同期取得を使用して暗黙的に取得されます。
関連項目:
A.2.7 メッセージ・クライアントおよび透過的データ暗号化
メッセージ・クライアントは、暗黙的に取得された行LCR (透過的データ暗号化を使用して暗号化された列を含む)をデキューできます。暗号化された列を含む行LCRがメッセージ・クライアントでデキューされるとその列は復号化されます。
関連項目:
A.3 Oracle Streamsおよびフラッシュバック・データ・アーカイブ
Oracle Streamsは、フラッシュバック・データ・アーカイブ内の表をサポートします。取得プロセスは、これらの表に対して行われたデータ操作言語(DML)およびデータ定義言語(DDL)の変更を取得できます。同期取得は、これらの表に対するDMLの変更を取得できます。適用プロセスは、論理変更レコード(LCR)でカプセル化された変更をこれらの表に適用できます。
また、Oracle Streamsの取得プロセスおよび適用プロセスは、次のDDL文もサポートします。
-
CREATE
FLASHBACK
ARCHIVE
-
ALTER
FLASHBACK
ARCHIVE
-
DROP
FLASHBACK
ARCHIVE
-
FLASHBACK
ARCHIVE
句を指定したCREATE
TABLE
-
FLASHBACK
ARCHIVE
句を指定したALTER
TABLE
注意:
Oracle Streamsは、フラッシュバック・データ・アーカイブによって使用される内部表に対して行われた変更を取得または適用しません。
関連項目:
-
フラッシュバック・データ・アーカイブについては、『Oracle Database開発ガイド』を参照
A.4 Oracle StreamsおよびRecovery Manager (RMAN)
次の項では、Oracle StreamsとRecovery Manager(RMAN)との連携について説明します。
A.4.1 RMANおよびインスタンス化
RMANを使用すると、Oracle Streamsレプリケーション環境の構成中にデータベース・オブジェクトをインスタンス化することができます。RMANのDUPLICATE
およびCONVERT
DATABASE
コマンドはデータベース全体をインスタンス化することができ、RMANのTRANSPORT
TABLESPACE
コマンドは1つの表領域または表領域のセットをインスタンス化することができます。
関連項目:
インスタンス化のためのRMANの使用については、『Oracle Streamsレプリケーション管理者ガイド』を参照
A.4.2 取得プロセスで必要なRMANおよびアーカイブREDOログ・ファイル
Recovery Manager(RMAN)の一部の削除ポリシーおよびコマンドは、アーカイブREDOログ・ファイルを削除します。RMANのこれらのポリシーまたはコマンドのいずれかを、1つ以上の取得プロセスに対してREDOログ・ファイルを生成するデータベースで使用する場合は、そのRMANのコマンドが取得プロセスで必要となるアーカイブREDOログ・ファイルを削除しないことを確認してください。
次の項では、ローカル取得プロセスおよびダウンストリーム取得プロセスにおけるRMANの削除ポリシーおよびコマンドの動作について説明します
関連項目:
-
取得プロセスで必要なアーカイブREDOログ・ファイルが欠落しているかどうかを確認する方法、およびこの問題を解決する方法については、「必須のREDOログ・ファイルが欠落していないか」を参照してください。この項には、高速リカバリ領域およびローカル取得プロセスに関する情報も含まれています。
-
RMANの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』および『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
A.4.2.1 RMANおよびローカル取得プロセス
ローカル取得プロセスが構成されるとき、高速リカバリ領域に余裕があれば、RMANはローカル取得プロセスで必要となるアーカイブREDOログ・ファイルを削除しません。具体的には、RMANは、ローカル取得プロセスの必須チェックポイントSCN以上のシステム変更番号(SCN)値の変更を含むアーカイブREDOログ・ファイルを削除しません。これは、RMANのすべての削除ポリシーおよびDELETE
コマンド(DELETE
ARCHIVELOG
およびDELETE
OBSOLETE
を含む)におけるRMANのデフォルトの動作です。
高速リカバリ領域に新しいログ・ファイルを書き込む領域が十分にない場合、RMANは1つ以上のアーカイブREDOログ・ファイルを自動的に削除します。RMANが自動的に削除したアーカイブREDOログ・ファイルがローカル取得プロセスで必要なものであれば、Oracle Databaseによってアラート・ログに警告が書き込まれます。
アーカイブREDOログ・ファイルのバックアップがローカル取得プロセス・データベースで作成される場合は、RMANの次の削除ポリシーをお薦めします。
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP integer TIMES TO DEVICE TYPE deviceSpecifier;
この削除ポリシーでは、ログ・ファイルが削除対象とみなされるまでにinteger
回バックアップされる必要があります。
アーカイブREDOログ・ファイルのバックアップがローカル取得プロセス・データベースで作成されない場合は、推奨される特定の削除ポリシーはありません。デフォルトでは、RMANはローカル取得プロセスで必要となるアーカイブREDOログ・ファイルを削除しません。
A.4.2.2 RMANおよびダウンストリーム取得プロセス
ダウンストリーム取得プロセスが、ソース・データベースで行われたデータベースの変更を取得する場合、アーカイブREDOログ・ファイルがソース・データベースからダウンストリーム取得プロセス・データベースに移動されるまで、RMANの削除ポリシーまたはコマンドがそのアーカイブREDOログ・ファイルを削除しないことを確認してください。
アーカイブREDOログ・ファイルを削除するRMANの特定の削除ポリシーおよびコマンドの考慮事項を次に示します。
-
RMANコマンド
CONFIGURE
ARCHIVELOG
DELETION
POLICY
は、高速リカバリ領域内のアーカイブREDOログ・ファイルが削除対象となるタイミングを決定する削除ポリシーを設定します。また、この削除ポリシーは、RMANのすべてのDELETE
コマンド(DELETE
ARCHIVELOG
およびDELETE
OBSOLETE
を含む)に適用されます。次の設定は、ソース・データベースでの動作を決定します。
-
TO
SHIPPED
TO
STANDBY
を設定した削除ポリシーは、ログ・ファイルを必要とするダウンストリーム取得プロセス・データベースにそのファイルが移動されるまで、ログ・ファイルを削除しません。これらのログ・ファイルは、ダウンストリーム取得プロセスで処理された場合もあれば、処理されなかった場合もあります。自動削除が発生するのは、高速リカバリ領域に新しいログ・ファイルを書き込む領域が十分にない場合です。 -
TO
APPLIED
ON
STANDBY
を設定した削除ポリシーは、ログ・ファイルを必要とするダウンストリーム取得プロセス・データベースにそのファイルが移動され、ソース・データベースがそのログ・ファイルを適用済とマークするまで、ログ・ファイルを削除しません。ソース・データベースがログ・ファイルを適用済とマークするのは、ソース・データベースのすべてのダウンストリーム取得プロセスの最小必須チェックポイントSCNがログ・ファイル内の最大SCNより大きくなった場合です。 -
BACKED
UP
integer
TIMES
TO
DEVICE
TYPE
を設定した削除ポリシーでは、ログ・ファイルが削除対象とみなされるまでに、そのログ・ファイルはinteger
回バックアップされる必要があります。ログ・ファイルは、そのファイルを必要とするダウンストリーム取得プロセスで処理されていない場合であっても削除できます。 -
TO
NONE
を設定した削除ポリシーは、高速リカバリ領域に余裕がなくなった場合に、ログ・ファイルが、そのファイルを必要とするダウンストリーム取得プロセスで処理されていなくても、そのログ・ファイルを削除できることを意味します。
-
-
RMANコマンド
DELETE
ARCHIVELOG
は、次の条件をすべて満たすアーカイブREDOログ・ファイルを削除します。-
ログ・ファイルが、
DELETE
ARCHIVELOG
コマンドで指定した条件を満たしている。 -
CONFIGURE
ARCHIVELOG
DELETION
POLICY
に従ってログ・ファイルを削除できる。たとえば、ポリシーにTO
SHIPPED
TO
STANDBY
を設定した場合、ログ・ファイルが、そのファイルを必要とするダウンストリーム取得プロセス・データベースに移動されるまで、このコマンドではそのログ・ファイルを削除できません。
この動作は、データベースがマウントまたはオープンされたときに適用されます。
アーカイブREDOログ・ファイルがダウンストリーム取得プロセスで必要な変更を含むために削除されない場合は、RMANによって警告メッセージが表示され、これらのファイルに対する削除操作がスキップされたことが示されます。
-
-
RMANコマンド
DELETE
OBSOLETE
は、次の条件をすべて満たすアーカイブREDOログ・ファイルを完全に削除します。-
ログ・ファイルが、保存ポリシーに従って不要になっている。
-
CONFIGURE
ARCHIVELOG
DELETION
POLICY
に従ってログ・ファイルを削除できる。たとえば、ポリシーにTO
SHIPPED
TO
STANDBY
を設定した場合、ログ・ファイルが、そのファイルを必要とするダウンストリーム取得プロセス・データベースに移動されるまで、このコマンドではそのログ・ファイルを削除できません。
この動作は、データベースがマウントまたはオープンされたときに適用されます。
-
-
RMANコマンド
BACKUP
ARCHIVELOG
ALL
DELETE
INPUT
は、アーカイブREDOログ・ファイルをコピーし、バックアップの完了後に元のファイルを削除します。このコマンドでは、次の条件が満たされている場合、ログ・ファイルがダウンストリーム取得プロセス・データベースに移動されるまで、そのログ・ファイルは削除されません。-
データベースがマウントまたはオープンされている。
-
ログ・ファイルが、ダウンストリーム取得プロセスで必要である。
-
削除ポリシーに
TO
SHIPPED
TO
STANDBY
を設定している。
アーカイブREDOログ・ファイルがダウンストリーム取得プロセスで必要な変更を含むために削除されない場合は、RMANによって警告メッセージが表示され、これらのファイルに対する削除操作がスキップされたことが示されます。
-
ダウンストリーム取得プロセスの場合、ソース・データベースにおけるRMANの削除ポリシーを次のいずれかにすることをお薦めします。
-
アーカイブREDOログ・ファイルのバックアップがソース・データベースで作成される場合、削除ポリシーを次のように設定します。
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY BACKED UP integer TIMES TO DEVICE TYPE deviceSpecifier;
-
アーカイブREDOログ・ファイルのバックアップがソース・データベースで作成されない場合、削除ポリシーを次のように設定します。
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
注意:
ダウンストリーム取得プロセス・データベースでは、ソース・データベースから移動されたアーカイブREDOログ・ファイルは、RMANで管理されません。
A.4.3 リカバリ・カタログおよびOracle Streams
Oracle Streamsでは、単方向レプリケーション環境におけるリカバリ・カタログのレプリケートがサポートされます。リカバリ・カタログの双方向レプリケーションはサポートされません。
関連項目:
-
単方向および双方向レプリケーションについては、『Oracle Streamsレプリケーション管理者ガイド』を参照
-
リカバリ・カタログについては、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照
A.5 Oracle Streamsおよび分散トランザクション
次のいずれかの方法を使用して分散トランザクションを実行できます。
-
データベース・リンクを使用した調整方法により複数のデータベース内の表を変更します。
-
DBMS_XA
提供のPL/SQLパッケージ、あるいはOCIまたはJDBCライブラリによって公開されているXAインタフェースを使用します。XAインタフェースによって、X/Open分散トランザクション処理(DTP)アーキテクチャが実装されます。
これらの2つの方法のいずれかを使用した分散トランザクション中にソース・データベースに変更が加えられると、Oracle Streamsはその変更を宛先データベースにレプリケートします。宛先データベースの適用プロセスは、トランザクションがコミットされた後に、そのトランザクションでの変更を適用します。
ただし、分散トランザクションの状態はレプリケートも送信もされません。宛先データベースやクライアント・アプリケーションは、このようなトランザクションのインダウト状態または準備済状態を継承しません。また、Oracle Streamsでは、ソース・データベースでXAトランザクションのために使用されるものと同じグローバル・トランザクション識別子を使用した変更はレプリケートも送信もしません。
XAトランザクションは次の2つの方法で実行できます。
-
密結合(異なるXAブランチがロックを共有する)
-
疎結合(異なるXAブランチがロックを共有しない)
Oracle Streamsでは、疎結合のXAブランチによって行われる変更のレプリケーションは、COMPATIBLE
初期化パラメータの値に関係なくサポートされます。Oracle RACソース・データベースで密結合のブランチによって行われる変更のレプリケーションについては、COMPATIBLE
初期化パラメータが11.2.0
以上に設定されている場合にのみサポートされます。
関連項目:
-
分散トランザクションの詳細は、『Oracle Database管理者ガイド』を参照してください。
-
Oracle XAの詳細は、『Oracle Database開発ガイド』を参照
A.6 Oracle StreamsおよびOracle Database Vault
Oracle Database Vaultは、管理権限を持つユーザーを含めた任意のユーザーによるOracle Database内の特定のエリアへのアクセスを制限します。Oracle Data Vault環境でOracle Streamsを使用する場合は、次の権限およびロールが必要です。
-
取得プロセスの作成、適用プロセスの作成および取得プロセスの取得ユーザーの変更というタスクを実行するために、Streams管理者に
DV_STREAMS_ADMIN
ロールを付与する必要があります。Streams管理者がこれらのタスクを実行しない場合は、Streams管理者のDV_STREAMS_ADMIN
ロールを取り消すことができます。 -
適用プロセスの適用ユーザーは、レプリケートされたデータベース・オブジェクトを含むレルムに対する変更の適用が可能である必要があります。レプリケートされたデータベース・オブジェクトは、適用プロセスが変更を適用するオブジェクトです。
レルムに対する適用ユーザーを認可するには、DBMS_MACADM.ADD_AUTH_TO_REALM
プロシージャを実行して、レルムおよび適用ユーザーを指定します。たとえば、salesレルムに対し適用ユーザーstrmadmin
を認可するには、次のプロシージャを実行します。
BEGIN DBMS_MACADM.ADD_AUTH_TO_REALM( realm_name => 'sales', grantee => 'strmadmin'); END; /
また、次の操作を実行するユーザーにBECOME USER
システム権限を付与する必要があります。
-
取得プロセスの作成または変更
-
アウトバウンド・サーバーの作成または変更
-
インバウンド・サーバーの作成または変更
Oracle Database Vaultがインストールされていない場合は、これらの操作を実行するユーザーにBECOME USER
システム権限を付与する必要はありません。BECOME USER
システム権限は、これらの操作のいずれかを実行した後、必要に応じて、ユーザーから取り消すことができます。