サポートと今すぐチャット
サポートとのチャット

SharePlex 11.4 - 管理者ガイド

このガイドについて このガイドで使用される表記規則 SharePlexの概要 SharePlexの実行 SharePlexの複数のインスタンスの実行 sp_ctrlでのコマンドの実行 SharePlexパラメータの設定 データレプリケーションの設定 コンテナデータベースとの間のレプリケーションの設定 名前付きキューの設定 分割レプリケーションの設定 変更履歴ターゲットへのレプリケーションの設定 レプリケーション戦略の設定 DDLレプリケーションの設定 エラー処理の設定 データトランスフォーメーションの設定 セキュリティ機能の設定 SharePlexユーザのセキュリティグループへの割り当て 本番システムでのレプリケーションの開始 SharePlexの監視 レプリケーションの問題の防止と解決 非同期データのrepair Captureプロセスの調整 Postプロセスの調整 Oracleフェールオーバー後のレプリケーションのリカバリ アクティブなレプリケーション環境に対する変更 Oracleアプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲットのOracleデータのバックアップ トラブルシューティングのヒント 付録A: ピアツーピア図 付録B: SharePlex環境変数

DDLレプリケーションの設定

この章では、SharePlexでサポートされているOracle DDL操作をレプリケートするために必要な情報を説明します。

内容

SharePlexがサポートするDDL

SharePlexがサポートするDDL

SharePlexは、OracleデータベースのDDLレプリケーションだけをサポートしています。SharePlexは、REDOログに書き込まれる特定のOracle DDLの変更をレプリケートします。REDOログをバイパスする変更はレプリケートされません。

SharePlexがサポートするDDLの詳細については、『SharePlexリリースノート』を参照してください。

カスケード構成では、DDLレプリケーションは中間システムを介してソースからターゲットへサポートされます。しかし、中間システムで開始されるDDLは、Postのエラーにつながる不整合を引き起こす可能性があり、避けなければなりません。詳細については、中間システムを介したレプリケーションの設定を参照してください。

SharePlexユーザが所有するオブジェクト、またはシステムが所有するオブジェクトに対するDDLはレプリケートされません。

注: SharePlexのレプリケーションでは、ソースデータベースとターゲットデータベースのバージョンが異なることがあるため、ソースオブジェクトとターゲットオブジェクトが異なる可能性があります。DDLをターゲットに適用したときに、その操作がターゲットでは禁止されており、ソースでは許可されている場合は失敗することがあります。

DDLがサポートされているオブジェクトのリストについては、『SharePlexリリースノート』を参照してください。

DDLレプリケーションの有効化

Oracle DDLレプリケーションの制御

デフォルトでは、SharePlexは、アクティブな設定に明示的に、またはワイルドカードでリストされているオブジェクトのOracle DDLの一部をレプリケートしますが、このサポートはパラメーター設定で拡張することができます。

重要
  • サポートされるDDL、要件、制限に関する最新情報については、このリリースで提供されるSharePlexのリリースノートを参照してください。その情報は、本書の内容よりも優先されることがあります。
  • SharePlexのすべてのターゲットでサポートされるALTER TABLEからADD COLUMNまたはDROP COLUMNを除き、DDLレプリケーションはOracleターゲットのみでサポートされます。

SharePlexは、設定ファイル内のオブジェクトに対し、デフォルトでDDLをサポートしています。このサポートは、パラメーター設定によって拡張することができます。

SharePlexでサポートされているDDLの詳細については、『SharePlexリリースノート』を参照してください。

Oracle DDLのデフォルトによるサポート

SharePlexは、デフォルトでいくつかの基本的なDDLをサポートしています。

既存のオブジェクトのDDL

デフォルトでは、SharePlexは以下をレプリケートします。

  • TRUNCATE TABLE
  • ALTER TABLE:

    ADD、MODIFY、DROP、SPLIT、COALESCE、MOVE、TRUNCATE、EXCHANGE PARTITION/SUBPARTITION

    列のADD、MODIFY、DROP

    以下の場合:

    • 影響を受けるオブジェクトが、アクティベーションの時点でソースとターゲットに存在し、かつ
    • その名前が設定ファイルに明示的に、またはワイルドカードでリストされている場合
  • DROP TABLE

この機能はSP_OCT_REPLICATE_DDLパラメーターによって制御されます。

有効な値は以下の通りです。

0ALTER TABLEとTRUNCATEの両方のレプリケーションを無効化

1ALTERレプリケーションのみを有効化

2TRUNCATEレプリケーションのみを有効化

3ALTERとTRUNCATEのレプリケーションを有効化

アクティベーションの後に追加されたオブジェクトのDDL

デフォルトでは、アクティベーションの後に作成されるテーブルインデックスのDDLをサポートするためにSharePlexの自動追加機能も有効になっています。SharePlexがこれらのオブジェクトの1つに対するCREATEステートメントを検出したときに、その名前が設定ファイルのワイルドカードを満たす場合、SharePlexは以下を行います。

  • CREATEをレプリケートし、オブジェクトをターゲットに追加
  • オブジェクトをレプリケーションに追加
  • 将来のDDLやDMLの変更時にもそのオブジェクトを維持

自動追加機能はSP_OCT_AUTOADD_ENABLEパラメーターによって制御され、デフォルトでは1有効に設定されています。

このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。

レプリケーション対象のオブジェクトに対するオプションのDDL

以下のDDLが設定ファイル内のオブジェクトに対して発行された場合、そのDDLのレプリケーションを有効にすることができます。DDLコマンドのレプリケーションを有効にするには、関連するパラメーターを1に設定します。

DDLコマンド このパラメーターを1に設定
CREATE / DROP TRIGGER SP_OCT_REPLICATE_TRIGGER
CREATE / DROP SYNONYM SP_OCT_REPLICATE_SYNONYM
GRANT SP_OCT_REPLICATE_GRANT

このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。

Oracle DDLの自動追加のサポートオプション

自動追加のサポートを拡張し、以下の表に記載されているオブジェクトタイプのいずれかを含めることができます。オブジェクト名がアクティブな設定ファイルのワイルドカードの指定を満たす場合、そのオブジェクトはレプリケーションに追加されます。

のオブジェクトタイプの自動追加を有効にするには:

  1. SP_OCT_AUTOADD_ENABLEパラメーターが1に設定されていることを確認します。
  2. 以下の表を参考にして適切なパラメーターを1に設定します。

    自動で追加するDDL 1に設定するパラメーター その他の要件
    CREATE / DROP SEQUENCE SP_OCT_AUTOADD_SEQ

    SP_SYS_TARGET_COMPATIBILITYパラメーターを8.6.3以上に設定します。

    CREATE /DROP MATERIALIZED VIEW* SP_OCT_AUTOADD_MVIEW

    SP_SYS_TARGET_COMPATIBILITYパラメーターを8.6.2以上に設定します。

* SharePlexはマテリアライズドビューをマテリアライズドビューにレプリケートしません。SharePlexはCREATE MATERIALIZED VIEWをCREATE TABLEに変換し、CREATE TABLEをターゲットに適用してから、ビューに入力するDMLをレプリケートします。SharePlexはDROP MATERIALIZED VIEWをレプリケートしますが、ALTER MATERIALIZED VIEWはレプリケートしません。このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。

レプリケーション対象外のオブジェクトに対する拡張DDLのサポート

設定ファイルに記載されていない特定のオブジェクトのDDLをレプリケートするようにSharePlexを設定することができます。SharePlexはDDLステートメントをレプリケートしますが、アクティブなレプリケーションの一部ではないため、オブジェクトに対して行われたデータ変更操作はレプリケートされません。したがって、SharePlexは、ターゲット上でこれらのオブジェクトの同期を維持しません。設定をアクティベーションする前に、オブジェクトがソースとターゲットに存在していなければなりません。

注: 拡張DDLのレプリケーションは、テーブルやシーケンスだけでなく、プロシージャ、関数、ユーザ、ビューなど、レプリケーションには含まれないその他のオブジェクトも幅広くサポートしています。これらのオブジェクトの中には、レプリケーション対象の基礎となるオブジェクトが含まれることもあります。このような場合、拡張DDLレプリケーションは、レプリケーション設定に含まれないオブジェクトだけでなく、レプリケーション対象の基礎となるオブジェクトにも適用されます。

SharePlexはOracle Flashback Table機能をサポートしていません。SP_REPLICATE_ALL_DDLパラメーターが有効値は1の場合、SharePlexはフラッシュバックDDLを複製しようとすることがありますが、エラーが返されます。レプリケーション中のテーブルでFlashback Tableを実行するには、『SharePlex管理者ガイド』の以下の手順を使用して、この問題を回避してください。

  1. レプリケーションからのソースオブジェクトの削除
  2. フラッシュバックの実行
  3. アクティブな設定のオブジェクトの追加または変更

レプリケーション設定に含まれないオブジェクトのDDLをレプリケートするには:

  1. SP_OCT_REPLICATE_ALL_DDLパラメーターを1に設定します。

  2. このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。

  3. 設定ファイルに含まれないオブジェクトでサポートされるDDLの詳細については、『SharePlexリリースノート』を参照してください。

DDLレプリケーションのフィルタリング

SP_OCT_REPLICATE_ALL_DDLパラメーターが有効な場合、DDLがレプリケートされるオブジェクトをフィルタリングすることができます。これはレプリケーション設定にはないDDLです。

注: DDLのフィルタリングは、レプリケーション設定に含まれないオブジェクトについてのみ許可されます。レプリケーション設定に含まれるオブジェクトに対して実行するすべてのDDLは、DMLが成功するように、ソースとターゲットのメタデータの一貫性を維持してレプリケートしなければなりません。

DDLフィルタリングは、SharePlexスキーマにインストールされているSHAREPLEX_DDL_CONTROLテーブルで制御されます。

Name

Type

-------------

------------

DDL_PARAMETER

NUMBER

DDL_CODE

NUMBER

SCHEMA_FILTER

VARCHAR2(32)

OBJECT_FILTER

VARCHAR2(32)

SHAREPLEX_DDL_CONTROLテーブルの各行は、以下の各列で指定した内容に基づいてフィルタを定義します。

  • SCHEMA_FILTERはスキーマ名でDDLをフィルタリングします。

  • OBJECT_FILTERはオブジェクト名でDDLをフィルタリングします。
  • DDL_CODEはDDLタイプのコード番号でフィルタリングします。「DDLコード」を参照してください。

DDL_CODE列のnullの値は、すべてのDDLタイプにフィルタが適用されることを意味します。SCHEMA_FILTER列またはOBJECT_FILTER列のnullは、任意のスキーマまたはオブジェクト名にフィルタが適用されることを意味します。

注: このリリースのSharePlexでは、DDL_PARAMETER列はアクティブな列ではありません。

DDLをフィルタリングするには:

テーブルに行を挿入し、アクティブな列に希望の値を入力します。

ALTER TABLEのDDLをレプリケーションから除外します。

INSERT INTO SPLEX.SHAREPLEX_DDL_CONTROL (DDL_CODE, SCHEMA_FILTER, OBJECT_FILTER) values (15,null,null);

任意のスキーマのTEST_で始まる名前を持つすべてのオブジェクトのすべてのDDLをレプリケーションから除外します。

INSERT INTO SPLEX.SHAREPLEX_DDL_CONTROL (DDL_CODE, SCHEMA_FILTER, OBJECT_FILTER) values (null,null,'TEST_%');

「Sales」スキーマのCREATE TABLEのDDLと、「TEST_」で始まる名前を持つオブジェクトをレプリケーションから除外します。

INSERT INTO SPLEX.SHAREPLEX_DDL_CONTROL (DDL_CODE, SCHEMA_FILTER, OBJECT_FILTER) values (1,'Sales','TEST_%');

DDLコード

DDLのタイプ DDL_CODE
CREATE TABLE 1
ALTER TABLE 15
DROP TABLE 12
ASSOCIATE STATISTICS 168
DISASSOCIATE STATISTICS 169
COMMENT TABLE、COMMENT ON COLUMNS 29
TRUNCATE 85
   
CREATE INDEX 9
ALTER INDEX 11
DROP INDEX 10
   
CREATE SEQUENCE 13
ALTER SEQUENCE 14
DROP SEQUENCE 16
   
CREATE CLUSTER 4
DROP CLUSTER 8
   
CREATE USER 51
ALTER USER 43
DROP USER 53
   
CREATE_ROLE 52
ALTER_ROLE 79
DROP_ROLE 54
GRANT 17
REVOKE 18
   
CREATE SYNONYM 19
DROP SYNONYM 20
   
CREATE VIEW 21
ALTER VIEW 88
DROP VIEW 22
   
   
CREATE TYPE 77
ALTER TYPE 80
DROP TYPE 78
CREATE TYPE BODY 81
DROP TYPE BODY 83
   
CREATE FUNCTION 91
ALTER FUNCTION 92
DROP FUNCTION 93
   
CREATE PROCEDURE 24
ALTER PROCEDURE 25
DROP PROCEDURE 68
   
CREATE PACKAGE 94
ALTER PACKAGE 95
DROP PACKAGE 96
CREATE PACKAGE BODY 97
ALTER PACKAGE BODY 98
DROP PACKAGE BODY 99
   
CREATE DIRECTORY 157
DROP DIRECTORY 158
関連ドキュメント

The document was helpful.

評価を選択

I easily found the information I needed.

評価を選択