DBMS_PROXY_SQL

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

DBMS_PROXY_SQLサブプログラムの要約

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

サブプログラム 摘要
   
ACCEPT_MAPPINGプロシージャ ルーターAutonomous AI Databaseインスタンスのスキーマ・オブジェクトのマッピング・エントリに対応するターゲットAutonomous AI Databaseインスタンスに、新しいマッピング・エントリを追加します。
ADD_MAPPINGプロシージャ ルーターAutonomous AI Databaseインスタンスのルーティング表にスキーマ・オブジェクトの新しいマッピング・エントリを追加します。
   
DISABLE_READ_ONLY_OFFLOADプロシージャ Autonomous AI Databaseエラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを無効にします。
DISABLE_ROUTINGプロシージャ Autonomous AI DatabaseインスタンスのProxySQL自動文ルーティングを無効にします。
ENABLE_READ_ONLY_OFFLOADプロシージャ Autonomous AI Databaseエラスティック・プール・リーダーまたはエラスティック・プール・メンバーの問合せオフロードを有効にします。
ENABLE_ROUTINGプロシージャ Autonomous AI DatabaseインスタンスのProxySQL自動文ルーティングを有効にします。
REJECT_MAPPINGプロシージャ ターゲットAutonomous AI Databaseインスタンスからスキーマ・オブジェクトの既存のマッピング・エントリを削除します。
REMOVE_MAPPINGプロシージャ ルーターAutonomous AI Databaseインスタンスからスキーマ・オブジェクトの既存のマッピング・エントリを削除します。
  • ACCEPT_MAPPINGプロシージャこのプロシージャをProxySQLターゲット・インスタンスで実行して、ルーターのAutonomous AI Databaseインスタンスのルーティング表にあるオブジェクトのマッピング・エントリに対応する新しいマッピング・エントリを追加します。

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

  • DISABLE_READ_ONLY_OFFLOADプロシージャ

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

  • DISABLE_ROUTINGプロシージャ

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

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

  • ENABLE_ROUTINGプロシージャ

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

  • REJECT_MAPPINGプロシージャ

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

  • REMOVE_MAPPINGプロシージャ

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

ACCEPT_MAPPINGプロシージャ

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

構文

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

パラメータ

パラメータ 摘要
object_owner

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

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

router_database_ocid

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

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

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

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

使用上のノート

  • この手順は、ターゲットのAutonomous AI Databaseインスタンスで実行する必要があります。

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

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

ADD_MAPPINGプロシージャ

このプロシージャをルーターAutonomous AI 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 AI 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 AI Databaseインスタンスで実行する必要があります。

DISABLE_READ_ONLY_OFFLOADプロシージャ

このプロシージャは、Autonomous AI 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 AI Databaseインスタンスで実行する必要があります。

ENABLE_READ_ONLY_OFFLOADプロシージャ

このプロシージャは、Autonomous AI 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 AI Databaseインスタンスでこの手順を実行して、インスタンスをルーター・インスタンスとして指定し、自動文ルーティングを有効にします。

構文

DBMS_PROXY_SQL.ENABLE_ROUTING;

BEGIN
   DBMS_PROXY_SQL.ENABLE_ROUTING;
END;
/

使用上のノート

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

  • この手順は、ルーターAutonomous AI Databaseインスタンスで実行する必要があります。

REJECT_MAPPINGプロシージャ

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

構文

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

パラメータ

パラメータ 摘要
object_owner

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

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

router_database_ocid

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

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

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

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

使用上のノート

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

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

REMOVE_MAPPINGプロシージャ

ルーターのAutonomous AI 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 AI Databaseインスタンスで実行する必要があります。

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