Workspace Managerは、作業領域関連のすべてのエンティティ(作業領域、セーブポイントなど)、操作(CreateWorkspaceおよびMergeWorkspaceなど)、バージョン対応表に対するDMLおよびDDL操作のレプリケーションをサポートします。Workspace Manager環境でレプリケーションを使用するには、レプリケーションの主要な概念および手法も理解する必要があります。詳細は、『Oracle Databaseアドバンスト・レプリケーション』および『Oracle Databaseアドバンスト・レプリケーション・マネージメントAPIリファレンス』を参照してください。この付録では、Workspace Managerでのレプリケーションに適用される特別なガイドラインおよびプロシージャについて説明します。
Workspace Managerは、いくつかの制限事項がある非同期モードのマルチマスター・レプリケーションをサポートします。レプリケーション・サイトでの主な制限は、マルチマスター設定のマスター定義サイトのみが、作業領域操作、バージョン対応表に対するDMLおよびDDL操作を実行できるということです。他のすべてのサイトでの書込み操作は許可されません。GotoWorkspaceまたはSELECT問合せなど、バージョン対応表に対するすべての読込み操作は、レプリケーション環境のすべてのサイトで許可されます。
Workspace Managerのレプリケーション環境では、マスター定義サイトはwriterサイトと呼ばれ、マルチマスター・グループ内の他のすべてのマスター・サイトは、nonwriterサイトと呼ばれます。
Workspace Managerのレプリケーション・サポート・サブプログラムのいずれかをコールするには、すべてのマスター・サイトでレプリケーション管理者になる必要があります。また、ローカル・マスター定義サイトで全グループに受信者として登録してください。RelocateWriterSiteプロシージャを使用してマスター定義サイトを変更する場合は、新規writerサイトで全グループに対して受信者として登録します。
この項では、作業領域およびバージョン対応表を含むデータベースのレプリケーション環境を設定するための一般的な手順を説明します。
『Oracle Databaseアドバンスト・レプリケーション』のガイドラインおよびプロシージャに従って、レプリケーションの対象となるユーザーおよびデータベース・リンクを設定します。
writerサイトとして選択したサイトで、GenerateReplicationSupportプロシージャを実行して、Workspace Manager環境のレプリケーション・サポートを生成します。次の例は、OWM-GROUP
という名前のレプリケーション・グループを作成し、BACKUP-SITE1.EXAMPLE.COM
およびBACKUP-SITE2.EXAMPLE.COM
をnonwriterサイトとして指定します。
DBMS_WM.GenerateReplicationSupport( mastersites => 'BACKUP-SITE1.EXAMPLE.COM, BACKUP-SITE2.EXAMPLE.COM'), groupname => 'OWM-GROUP', groupdescription => 'OWM Replication group for Example Corp.');
Workspace Manager環境のレプリケーション・サポートを削除する必要がある場合は、DropReplicationSupportプロシージャを実行します。
これらのプロシージャのリファレンスおよび使用方法は、第4章のGenerateReplicationSupportプロシージャおよびDropReplicationSupportプロシージャの説明を参照してください。
レプリケーションの設定後に、指定したグループがレプリケーション・カタログに通常のグループとして表示されます。また、ローカルのマスター定義サイトにあるバージョン対応表ごとに、Workspace ManagerによりWM$<object-id>形式の名前を持つグループが作成されます。<object-id>は、ローカル・サイトにある<table-name>_LT表のオブジェクトIDです。指定したグループとWorkspace Managerにより作成されたグループは、標準的なレプリケーションAPIまたはOracle Enterprise Managerを使用して管理できます。
Workspace Managerのレプリケーション・サポートを設定すると(C.1項を参照)、writerサイトでEnableVersioningプロシージャを実行して、レプリケートされる表をバージョン対応表にできます。ただし、この表は、すべてのnonwriterサイトでまったく同様に定義されている必要があります。たとえば、SCOTT.EMP
表をすべてのマスター・サイトでバージョン対応にする場合は、writerサイトでレプリケーション管理者として次のとおり実行します。
SQL> EXECUTE DBMS_WM.EnableVersioning('SCOTT.EMP');
この例は、次の操作を実行します。
ローカル(writer)・サイトおよびすべてのリモート(nonwriter)・サイトでSCOTT.EMP
をバージョン対応にします。
この表に新しいマスター・グループを作成します。グループ名はWM$<obj#>形式で、<obj#>はSCOTT.EMP_LT
表のOracleオブジェクトIDです。これは、Oracle Enterprise Managerのレプリケーション・ツールで管理できる通常のレプリケーション・グループです。
新しく作成されたマスター・グループに対して、マスター・アクティビティを開始します。
Workspace Managerのレプリケーション環境で表をバージョン非対応にするには、writerサイトでDisableVersioningプロシージャを実行します。たとえば、すべてのマスター・サイトでSCOTT.EMP
表をバージョン非対応にするには、writerサイトでレプリケーション管理者として次のとおり実行します。
SQL> EXECUTE DBMS_WM.DisableVersioning('SCOTT.EMP');
この例は、次の操作を実行します。
ローカル(writer)・サイトおよびすべてのリモート(nonwriter)・サイトでSCOTT.EMP
をバージョン非対応にします。
この表に作成されたマスター・グループを削除します。
すべてのバージョン対応表に対してDDL操作を実行するには、第1.8項のガイドラインに従う必要があります。レプリケートされたバージョン対応表には、次のガイドラインが適用されます。
バージョン対応表がレプリケートされている場合、レプリケーション管理者にかぎり、writerサイトでのみ、この表に対してBeginDDL操作、CommitDDL操作およびRollbackDDL操作を実行できます。
バージョン対応表に関連するレプリケーション・グループは、表に対するCommitDDL操作前に停止され、表に対するCommitDDL操作後に再開される必要があります。
Workspace Managerのレプリケーション環境のwriterサイトは、環境の設定後、マスター・グループを停止しなくても変更できます。writerサイトを再配置すると、writerサイトが使用できなくなり、新しいwriterサイトを指定する必要がある場合に有効です。
writerサイトを再配置するには、RelocateWriterSiteプロシージャを実行します。ガイドラインおよび例は、第4章のRelocateWriterSiteプロシージャの説明を参照してください。
writerサイトを再配置するときに、以前のwriterサイトが使用できない場合は、そのサイトが使用できるようになってから、SynchronizeSiteプロシージャを実行する必要があります。ガイドラインおよび例は、第4章のSynchronizeSiteプロシージャの説明を参照してください。