DBMS_PROXY_SQL

エラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを有効または無効にする手順について説明します。このパッケージには、文ルーティングのProxySQLを有効化および管理するプロシージャも用意されています。

DBMS_PROXY_SQLサブプログラムの要約

この表は、DBMS_PROXY_SQLパッケージに含まれるサブプログラムの概要を示しています。

サブプログラム 説明
   

ACCEPT_MAPPINGプロシージャ

ルーターAutonomous Databaseインスタンス上のスキーマ・オブジェクトのマッピング・エントリに対応するターゲットAutonomous Databaseインスタンスに、新しいマッピング・エントリを追加します。

ADD_MAPPINGプロシージャ

ルーターのAutonomous Databaseインスタンスのルーティング表に、スキーマ・オブジェクトの新しいマッピング・エントリを追加します。

   

DISABLE_READ_ONLY_OFFLOADプロシージャ

Autonomous Databaseエラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを無効にします。

DISABLE_ROUTINGプロシージャ

Autonomous DatabaseインスタンスのProxySQL自動文ルーティングを無効にします。

ENABLE_READ_ONLY_OFFLOADプロシージャ

Autonomous Databaseエラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを有効にします。

ENABLE_ROUTINGプロシージャ

Autonomous DatabaseインスタンスのProxySQL自動文ルーティングを有効にします。

REJECT_MAPPINGプロシージャ

ターゲットAutonomous Databaseインスタンスから、スキーマ・オブジェクトの既存のマッピング・エントリを削除します。

REMOVE_MAPPINGプロシージャ

ルーターのAutonomous Databaseインスタンスから、スキーマ・オブジェクトの既存のマッピング・エントリを削除します。

ACCEPT_MAPPINGプロシージャ

ProxySQLターゲット・インスタンスに対してこのプロシージャを実行して、ルーターAutonomous Databaseインスタンスのルーティング表にあるオブジェクトのマッピング・エントリに対応する新しいマッピング・エントリを追加します。

構文

DBMS_PROXY_SQL.ACCEPT_MAPPING ( 
    object_owner          IN VARCHAR2,
    router_database_ocid  IN VARCHAR2);

パラメータ

パラメータ 説明

object_owner

オブジェクトの所有者を指定します。

このパラメータは必須です。

router_database_ocid

ルーターAutonomous DatabaseインスタンスのOCIDを指定します。

router_database_ocid値は大文字で指定する必要があります。

このパラメータは必須です。

BEGIN
 DBMS_PROXY_SQL.ACCEPT_MAPPING ( 
    object_owner          => 'DW_USER',
    router_database_ocid  => 'TARGET_DATABASE_OCID');
 END;
/

使用上のノート

  • このプロシージャは、ターゲットAutonomous Databaseインスタンスで実行する必要があります。

  • このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_PROXY_SQLパッケージに対するEXECUTE権限を持っている必要があります。

  • ルーターAutonomous Databaseインスタンスのルーティング表内の各マッピング・エントリには、対応するエントリがそれぞれのターゲットAutonomous Databaseインスタンスにある必要があります。

ADD_MAPPINGプロシージャ

このプロシージャをルーターのAutonomous Databaseインスタンスで実行して、ルーティング表に新しいマッピングを追加します。

構文

DBMS_PROXY_SQL.ADD_MAPPING ( 
    object_owner   IN VARCHAR2,
    object_name    IN VARCHAR2,
    database_ocid  IN VARCHAR2);

パラメータ

パラメータ 説明

object_owner

オブジェクトの所有者を指定します。

このパラメータは必須です。

object_name

自動文ルーティングを有効にするオブジェクトの名前を指定します。

object_nameパラメータの有効な値は次のとおりです。

  • オブジェクト・レベルのルーティングを有効にするobject_name

  • スキーマ・レベルのルーティングを有効にするアスタリスク(*)。

このパラメータは必須です。

database_ocid

ターゲットAutonomous DatabaseインスタンスのOCIDを指定します。

database_ocid値は大文字で指定する必要があります。

このパラメータは必須です。

サンプル

オブジェクト・レベルのルーティングを有効にする例:

BEGIN
 DBMS_PROXY_SQL.ADD_MAPPING( 
    object_owner   => 'DW_USER',
    object_name    => 'INVENTORY',
    database_ocid  => 'TARGET_DATABASE_OCID');
END;
/

スキーマ・レベルのルーティングを有効にする例:

BEGIN
 DBMS_PROXY_SQL.ADD_MAPPING( 
    object_owner   => 'DW_USER',
    object_name    => '*',
    database_ocid  => 'TARGET_DATABASE_OCID');
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_PROXY_SQLパッケージに対するEXECUTE権限を持っている必要があります。

  • このプロシージャは、ルーターのAutonomous Databaseインスタンスで実行する必要があります。

DISABLE_READ_ONLY_OFFLOADプロシージャ

このプロシージャは、Autonomous Databaseエラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを無効にします。

構文

DBMS_PROXY_SQL.DISABLE_READ_ONLY_OFFLOAD;

EXEC DBMS_PROXY_SQL.DISABLE_READ_ONLY_OFFLOAD;

DISABLE_ROUTINGプロシージャ

ProxySQLを無効にするには、このプロシージャをルーター・インスタンスで実行します。

構文

DBMS_PROXY_SQL.DISABLE_ROUTING;

BEGIN
   DBMS_PROXY_SQL.DISABLE_ROUTING;
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_PROXY_SQLパッケージに対するEXECUTE権限を持っている必要があります。

  • このプロシージャは、ルーターのAutonomous Databaseインスタンスで実行する必要があります。

ENABLE_READ_ONLY_OFFLOADプロシージャ

このプロシージャは、Autonomous Databaseエラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを有効にします。

構文

DBMS_PROXY_SQL.ENABLE_READ_ONLY_OFFLOAD( 
      module_name       IN CLOB, 
      action_name       IN CLOB);

パラメータ

パラメータ 説明

module_name

モジュール名のリストをカンマ区切りリストとして指定します。リストには、問合せがオフロード対象とみなされるモジュールを指定します(セッションのモジュール名がリストの値と一致する場合)。

このパラメータのデフォルト値はNULLです。つまり、セッションのモジュール名は任意の値にでき、セッションはオフロードの対象とみなされます。

action_name

アクション名のリストをカンマ区切りリストとして指定します。リストでは、問合せがオフロードの対象とみなされるアクション名を指定します(セッションの処理名がリストの値と一致する場合)。

このパラメータのデフォルト値はNULLです。つまり、セッションのアクション名は任意の値にでき、セッションはオフロードの対象とみなされます。

使用上のノート

  • module_nameaction_nameの両方が指定されている場合、セッションのモジュール名はモジュール名のリストの値と一致する必要があり、そのアクション名はオフロード対象とみなされるセッションのアクション名のリストの値と一致する必要があります。

  • セッションに対して問合せオフロードが有効になっている場合、問合せがオフロードされるリフレッシュ可能クローンの名前を確認できます。たとえば:

    SELECT sys_context('userenv', 'con_name') from dual;

    問合せがリフレッシュ可能クローンにオフロードされていない場合、この問合せにはエラスティック・プール・リーダーの名前(またはエラスティック・プール・メンバーの名前)が表示されます。

  • ビューDBA_PROXY_SQL_ACTIONSおよびDBA_PROXY_SQL_MODULESには、問合せオフロード用に構成されたモジュールまたはアクションのリストが表示されます。問合せオフロードが有効になっていないセッションからこれらのビューを問い合せる必要があります。

    詳細は、DBA_PROXY_SQLビューを参照してください。

  • モジュール名またはアクション名で指定したセッションのリストから問合せをオフロードする場合、DBMS_APPLICATION_INFOで設定されたモジュール名およびアクション名では大文字と小文字が区別されます。DBMS_PROXY_SQL.ENABLE_READ_ONLY_OFFLOADは、この大/小文字を区別する動作に従います。たとえば、セッションに小文字のモジュール名または大/小文字のモジュール名が混在している場合、DBMS_PROXY_SQL.ENABLE_READ_ONLY_OFFLOADで問合せオフロードを有効にし、module_nameまたはaction_nameパラメータを含めると、大/小文字がパラメータ値と一致する必要があります。

    DBMS_APPLICATION_INFO.READ_MODULEを使用して、現在のセッションのモジュール名およびアクション名を確認できます:

    set serveroutput on;
    declare
      l_mod varchar2(50);
      l_act varchar2(50);
    BEGIN
    DBMS_APPLICATION_INFO.READ_MODULE(l_mod, l_act);
      DBMS_OUTPUT.PUT_LINE('l_mod: ' || l_mod);
      DBMS_OUTPUT.PUT_LINE('l_act: ' || l_act);
    END;
    /

EXEC DBMS_PROXY_SQL.ENABLE_READ_ONLY_OFFLOAD;


DECLARE 
   mod_values clob := to_clob('["mod1", "mod2"]');
   act_values clob := to_clob('["act1", "act2"]');
BEGIN 
   DBMS_PROXY_SQL.ENABLE_READ_ONLY_OFFLOAD(
      module_name => mod_values,                                          
      action_name => act_values);
END;
/

ENABLE_ROUTINGプロシージャ

Autonomous Databaseインスタンスでこのプロシージャを実行して、インスタンスをルーター・インスタンスとして指定し、文の自動ルーティングを有効にします。

構文


DBMS_PROXY_SQL.ENABLE_ROUTING;

BEGIN
   DBMS_PROXY_SQL.ENABLE_ROUTING;
END;
/

使用上のノート

  • このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_PROXY_SQLパッケージに対するEXECUTE権限を持っている必要があります。

  • このプロシージャは、ルーターのAutonomous Databaseインスタンスで実行する必要があります。

REJECT_MAPPINGプロシージャ

ターゲットAutonomous Databaseインスタンスで実行して、受入れ表から既存のマッピング・エントリを削除します。

構文

DBMS_PROXY_SQL.REJECT_MAPPING ( 
    object_owner         IN VARCHAR2,
    router_database_ocid IN VARCHAR2);

パラメータ

パラメータ 説明

object_owner

オブジェクトの所有者を指定します。

このパラメータは必須です。

router_database_ocid

ルーターAutonomous DatabaseインスタンスのOCIDを指定します。

router_database_ocid値は大文字で指定する必要があります。

このパラメータは必須です。

BEGIN
 DBMS_PROXY_SQL.REJECT_MAPPING ( 
    object_owner          => 'DW_USER',
    router_database_ocid  => 'TARGET_DATABASE_OCID');
 END;
/

使用上のノート

  • プロシージャは、ターゲットAutonomous Databaseインスタンスで実行する必要があります。

  • このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_PROXY_SQLパッケージに対するEXECUTE権限を持っている必要があります。

REMOVE_MAPPINGプロシージャ

ルーターのAutonomous Databaseインスタンスでこのプロシージャを実行して、オブジェクトの既存のマッピング・エントリをルーティング表から削除します。

構文

DBMS_PROXY_SQL.REMOVE_MAPPING ( 
    object_owner   IN VARCHAR2,
    object_name    IN VARCHAR2);

パラメータ

パラメータ 説明

object_owner

オブジェクトの所有者を指定します。

このパラメータは必須です。

object_name

自動問合せルーティングを無効にするオブジェクトの名前を指定します。

このパラメータは必須です。

BEGIN
 DBMS_PROXY_SQL.REMOVE_MAPPING ( 
    object_owner   => 'DW_USER',
    object_name    => 'INVENTORY');
 END;
/

使用上のノート

  • このプロシージャは、ルーターのAutonomous Databaseインスタンスで実行する必要があります。

  • このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_PROXY_SQLパッケージに対するEXECUTE権限を持っている必要があります。