この章では、SharePlexでサポートされているOracle DDL操作をレプリケートするために必要な情報を説明します。
SharePlexは、OracleデータベースのDDLレプリケーションだけをサポートしています。SharePlexは、REDOログに書き込まれる特定のOracle DDLの変更をレプリケートします。REDOログをバイパスする変更はレプリケートされません。
SharePlexがサポートするDDLの詳細については、『SharePlexリリースノート』を参照してください。
カスケード構成では、DDLレプリケーションは中間システムを介してソースからターゲットへサポートされます。しかし、中間システムで開始されるDDLは、Postのエラーにつながる不整合を引き起こす可能性があり、避けなければなりません。詳細については、中間システムを介したレプリケーションの設定を参照してください。
SharePlexユーザが所有するオブジェクト、またはシステムが所有するオブジェクトに対するDDLはレプリケートされません。
注: SharePlexのレプリケーションでは、ソースデータベースとターゲットデータベースのバージョンが異なることがあるため、ソースオブジェクトとターゲットオブジェクトが異なる可能性があります。DDLをターゲットに適用したときに、その操作がターゲットでは禁止されており、ソースでは許可されている場合は失敗することがあります。
DDLがサポートされているオブジェクトのリストについては、『SharePlexリリースノート』を参照してください。
デフォルトでは、SharePlexは、アクティブな設定に(明示的に、またはワイルドカードで)リストされているオブジェクトのOracle DDLの一部をレプリケートしますが、このサポートはパラメーター設定で拡張することができます。
重要
|
SharePlexは、設定ファイル内のオブジェクトに対し、デフォルトでDDLをサポートしています。このサポートは、パラメーター設定によって拡張することができます。
SharePlexでサポートされているDDLの詳細については、『SharePlexリリースノート』を参照してください。
SharePlexは、デフォルトでいくつかの基本的なDDLをサポートしています。
デフォルトでは、SharePlexは以下をレプリケートします。
ADD、MODIFY、DROP、SPLIT、COALESCE、MOVE、TRUNCATE、EXCHANGE PARTITION/SUBPARTITION
列のADD、MODIFY、DROP
以下の場合:
この機能はSP_OCT_REPLICATE_DDLパラメーターによって制御されます。
有効な値は以下の通りです。
0(ALTER TABLEとTRUNCATEの両方のレプリケーションを無効化)
1(ALTERレプリケーションのみを有効化)
2(TRUNCATEレプリケーションのみを有効化)
3(ALTERとTRUNCATEのレプリケーションを有効化)
デフォルトでは、アクティベーションの後に作成されるテーブルとインデックスのDDLをサポートするためにSharePlexの自動追加機能も有効になっています。SharePlexがこれらのオブジェクトの1つに対するCREATEステートメントを検出したときに、その名前が設定ファイルのワイルドカードを満たす場合、SharePlexは以下を行います。
自動追加機能はSP_OCT_AUTOADD_ENABLEパラメーターによって制御され、デフォルトでは1(有効)に設定されています。
このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。
以下の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リファレンスガイド』を参照してください。
自動追加のサポートを拡張し、以下の表に記載されているオブジェクトタイプのいずれかを含めることができます。オブジェクト名がアクティブな設定ファイルのワイルドカードの指定を満たす場合、そのオブジェクトはレプリケーションに追加されます。
個々のオブジェクトタイプの自動追加を有効にするには:
以下の表を参考にして適切なパラメーターを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をレプリケートするようにSharePlexを設定することができます。SharePlexはDDLステートメントをレプリケートしますが、アクティブなレプリケーションの一部ではないため、オブジェクトに対して行われたデータ変更操作はレプリケートされません。したがって、SharePlexは、ターゲット上でこれらのオブジェクトの同期を維持しません。設定をアクティベーションする前に、オブジェクトがソースとターゲットに存在していなければなりません。
注: 拡張DDLのレプリケーションは、テーブルやシーケンスだけでなく、プロシージャ、関数、ユーザ、ビューなど、レプリケーションには含まれないその他のオブジェクトも幅広くサポートしています。これらのオブジェクトの中には、レプリケーション対象の基礎となるオブジェクトが含まれることもあります。このような場合、拡張DDLレプリケーションは、レプリケーション設定に含まれないオブジェクトだけでなく、レプリケーション対象の基礎となるオブジェクトにも適用されます。 |
SharePlexはOracle Flashback Table機能をサポートしていません。SP_REPLICATE_ALL_DDLパラメーターが有効(値は1)の場合、SharePlexはフラッシュバックDDLを複製しようとすることがありますが、エラーが返されます。レプリケーション中のテーブルでFlashback Tableを実行するには、『SharePlex管理者ガイド』の以下の手順を使用して、この問題を回避してください。
|
レプリケーション設定に含まれないオブジェクトのDDLをレプリケートするには:
SP_OCT_REPLICATE_ALL_DDLパラメーターを1に設定します。
このパラメーターの詳細については、『SharePlexリファレンスガイド』を参照してください。
設定ファイルに含まれないオブジェクトでサポートされるDDLの詳細については、『SharePlexリリースノート』を参照してください。
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をフィルタリングします。
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_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 |
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center