Autonomous DatabaseでProxySQLを有効にして効率的な文のルーティングを使用
ProxySQLを使用すると、DMLおよび問合せの文をルーティングすることで、複数のAutonomous Databaseへの統合アクセスが可能になり、すべてのデータを1つのデータベースに物理的に統合する必要がなくなります。
トピック
- Autonomous DatabaseでのProxySQLを使用した効率的な文のルーティングについて
Autonomous Database上のProxySQLでは、複数のAutonomous Databaseインスタンスを使用でき、1つの場所に格納されたかのように、データへのアクセスおよび分析が容易になります。 - 文のルーティングの有効化およびスキーマ・マッピングの定義
この項では、メイン・ルーターから1つ以上のターゲット・データベース・インスタンスへの自動文のルーティング用にProxySQLを設定する方法について説明します。 - ProxySQLを使用した文の発行
自動文のルーティングを利用するには、ProxySQLによって管理されるルーター・インスタンスに接続し、文を送信する必要があります。 - ターゲット・インスタンスへの文のルーティングの停止
ターゲットAutonomous Databaseでこれらのステップを実行して、ProxySQLルーターからのルーティングされた文の受入れを停止させます。 - ルーター・インスタンスからのスキーマまたはオブジェクト・マッピングの削除
ProxySQLによって管理されるルーター・データベースから特定のマッピングを削除するステップを示します。 - 文のルーティングの無効化
ProxySQLを無効にして文を自動ルーティングするステップを示します。 - ProxySQLノートによる自動文のルーティング
ProxySQLが有効な場合の自動文のルーティングに関する制限事項と重要なノートを示します。
Autonomous DatabaseでのProxySQLを使用した効率的な文のルーティングについて
Autonomous Database上のProxySQLでは、複数のAutonomous Databaseインスタンスを使用でき、1つの場所に格納されたかのように、データへのアクセスおよび分析が容易になります。
ProxySQLは、複数のAutonomous Databaseを含む大規模な設定で作業する必要がある場合に使用できます。 ProxySQLを使用すると、様々なデータベースへの統合アクセスが可能になり、データを1つの場所に物理的に移動する必要がなくなります。
ProxySQLを有効にする場合は、1つのAutonomous Databaseインスタンスをルーター・インスタンスとして指定し、1つ以上のAutonomous Databaseインスタンスをターゲット・インスタンスとして指定します。 ルーター・インスタンスには、文を1つ以上のターゲット・インスタンスに分散(マップ)する方法を決定するルーティング表が含まれます。 ターゲット・インスタンスには、受入れ表が含まれます。 受入れ表はルーティング表に似ており、インスタンスがルーターからのステートメント・リダイレクトを受け入れることを指定するエントリが含まれています。
選択したルーティング・メソッドに応じて、ステートメントはルーター・インスタンスから1つ以上のターゲット・インスタンスに自動的にマップされます。 アプリケーションはルーター・インスタンスに接続し、ルーター・インスタンスで実行し、Autonomous Databaseは文を1つ以上のターゲット・インスタンスにリダイレクトします。
1つの非常に大きなAutonomous Databaseを使用する場合と比較して、ProxySQLを有効にする利点の一部を次に示します:
-
ProxySQLは、ライフサイクル管理や管理タスクなどの操作のためのデータベースの自律性と独立性を提供します。 たとえば、ProxySQLを使用すると、バックアップおよびリストアを含むデータベース操作、およびAutonomous Data Guardなどの機能は、各Autonomous Databaseインスタンスで個別に管理されます。
-
ProxySQLを使用すると、複数のAutonomous Databaseインスタンスにデータを分割して、非常に大規模なデータベースを効率的に管理できます。
ProxySQLの操作時に知っておく必要がある用語がいくつかあります:
ルーター・インスタンス: ProxySQLを有効にすると、ルーター・インスタンスが指定されます。 ルーティング表は、文を1つ以上のターゲット・インスタンスに分散(マップ)する方法を決定します。 指定されたルーティング・メソッドに応じて、ルーター・インスタンスからのステートメントは自動的に1つ以上のターゲット・インスタンスにマッピングされます。
ターゲット・インスタンス: ターゲット・インスタンスは、ルーター・インスタンスでマッピングを作成するときに指定されます。 各ターゲット・インスタンスに受入れ表が追加されます。
ルーティング表: ルーティング表には、文が自動的にルーティングされるインスタンスを指定するターゲット・マッピング・エントリが含まれます。
受入表: 受入表には、インスタンスがルーターからの文リダイレクトを受け入れることを指定するエントリが含まれます。
ProxySQLを使用するための要件
ProxySQLの要件は次のとおりです:
-
ProxySQLの有効化は、エラスティック・プールにあるAutonomous Databaseインスタンスでのみサポートされます。 ルーター・インスタンスとすべてのターゲット・インスタンスは、同じエラスティック・プールのメンバーである必要があります。
-
ルーター・インスタンスとすべてのターゲット・インスタンスが同じリージョンにある必要があります。
-
ルーティングするオブジェクトのメタデータは、ルーター・インスタンスとターゲット・インスタンスで一致する必要があります。 アプリケーション設計者は、ターゲット・インスタンスに存在するオブジェクトのメタデータもルーター・インスタンスに存在する必要があります。 たとえば、ターゲット・インスタンスに
EMPLOYEES
という名前の表がある場合、ルーター・インスタンスにEMPLOYEES
という名前の一致するメタデータを持つ表も必要です。 ルーター・インスタンスの表は、空である必要はありません(メタデータのみ)。
ProxySQLを有効にするための推奨事項
ルーターおよびターゲットとして追加するインスタンスは、任意のAutonomous Databaseワークロード・タイプにできます。 ルーティング(マッピング)表にエントリがある場合、それらのエントリで指定されたオブジェクトに対する文は、ターゲットのワークロード・タイプに関係なく、対応するターゲット・インスタンスにルーティングされます。 Oracleでは、すべてのAutonomous Databaseインスタンスでデータ・ウェアハウスのワークロード・タイプを使用することをお薦めします。
ProxySQLを有効にした自動文のルーティング
ProxySQLを使用すると、サポートされているルーティング・メソッドのいずれかを使用して、ターゲット間で文を分散できます。
ノート:
使用するルーティング・メソッド(マッピング)に関係なく、ターゲット・インスタンスに配置されたオブジェクトのメタデータもルーター・インスタンスで使用できるようにするのは、アプリケーション・スキーマ設計者の責任です。 たとえば、ターゲット・インスタンスにEMPLOYEES
という名前の表がある場合、ルーター・インスタンスにEMPLOYEES
という名前の一致するメタデータを持つ表も必要です。 ルーター・インスタンス内の表は空である必要はありません。
-
スキーマ・レベルのルーティング: スキーマのすべてのオブジェクトは、単一のターゲット・インスタンスにマップされます。 複数のスキーマを単一のターゲット・インスタンスにマッピングできます。 ただし、1つのスキーマの文は複数のターゲット・インスタンス間でマップできません。つまり、同じスキーマをスキーマ・ルーティングとオブジェクト・ルーティングの両方に使用することはできません。
スキーマ・レベルのルーティングを指定するには、
object_name
パラメータの値を"*"に設定してDBMS_PROXY_SQL.ADD_MAPPING
プロシージャをコールします。この例では、スキーマAのオブジェクトのメタデータは、ターゲットAutonomous Database 1とルーター・インスタンスの両方に存在し、スキーマBのオブジェクトのメタデータは、ターゲットAutonomous Database 2とルーター・インスタンスの両方に存在します。
-
オブジェクト・レベルのルーティング: スキーマ内のオブジェクトは、複数のターゲット・インスタンスにマッピングされます。
オブジェクト・レベル・ルーティングを指定するには、
object_name
パラメータを表名に設定してDBMS_PROXY_SQL.ADD_MAPPING
プロシージャをコールします。この例では、表Aのメタデータがターゲット1とルーター・インスタンスの両方に存在し、表Bのメタデータがターゲット2とルーター・インスタンスの両方に存在します。
-
ハイブリッド・ルーティング: スキーマ・オブジェクトは、スキーマ・レベルのルーティングとオブジェクト・レベルのルーティングの組合せを使用してルーティングされます。
この例では、スキーマAのメタデータがターゲットAutonomous Database 1とルーター・インスタンスの両方に存在し、表Bのメタデータ(スキーマB)がターゲットAutonomous Database 2とルーター・インスタンスの両方に存在します。
ProxySQLが有効な場合の自動文のルーティングによるサービス・マッピング
ルーティング表がターゲット・データベースへのマッピングを示している場合、ルーター・データベースに接続しているサービスと同じサービスがターゲット・データベースのデータ・アクセスに使用されます。
たとえば、セッションがルーター・インスタンスのHIGHサービスに接続されている場合、ターゲット・インスタンスにルーティングされる文または文のフラグメントもHIGHサービスを使用します。 同様に、ルーター・インスタンス上のMEDIUMサービスにセッションが接続されている場合、ターゲット・インスタンスにルーティングされる文はMEDIUMサービスを使用します。
ルーター・インスタンスでの接続に使用されるサービスがターゲット・インスタンスで使用できない場合、ターゲット・インスタンスにルーティングされる文または文のフラグメントは、MEDIUMサービスを使用します(使用可能なサービスは、Autonomous Databaseワークロード・タイプによって異なります)。
文のルーティングの有効化およびスキーマ・マッピングの定義
この項では、メイン・ルーターから1つ以上のターゲット・データベース・インスタンスへの自動文のルーティング用にProxySQLを設定する方法について説明します。
- 文のルーティングの有効化およびルーターからターゲット・インスタンスへのオブジェクト・マッピングの定義
文のルーティングを設定するには、ルーター・インスタンスでProxySQLを有効にし、文がターゲット・データベースにマップ(送信)されるスキーマを定義します。 - ターゲット・インスタンスでの文書ルーティングの受入
ルーター・インスタンスからのマッピングを許可するには、ターゲット・インスタンスで文のルーティングを受け入れる必要があります。
文のルーティングの有効化およびルーターからターゲット・インスタンスへのオブジェクト・マッピングの定義
文のルーティングを設定するには、ルーター・インスタンスでProxySQLを有効にし、文がターゲット・データベースにマップ(送信)されるスキーマを定義します。
自動明細書送付を有効にするための前提条件は次のとおりです:
-
ルーター・インスタンスに使用する予定のAutonomous Databaseインスタンスを作成するか、既存のAutonomous Databaseインスタンスをルーター・インスタンスとして識別します。
-
ターゲット・インスタンスを作成するか、既存のAutonomous Databaseインスタンスからターゲット・インスタンスを識別します。
-
ルーター・インスタンスと、問合せをリダイレクトするターゲット・インスタンスに、ルーターからターゲットにマッピングするオブジェクトと一致するメタデータがあることを確認します。
使用するルーティング・メソッド(マッピング)に関係なく、ターゲット・インスタンスに配置されたオブジェクトのメタデータもルーター・インスタンスで使用できるようにするのは、アプリケーション・スキーマ設計者の責任です。 たとえば、ターゲット・インスタンスに
EMPLOYEES
という名前の表がある場合、ルーター・インスタンスにEMPLOYEES
という名前の一致するメタデータを持つ表も必要です。 ルーター・インスタンス内の表は空である必要はありません。 -
使用可能な選択肢から、使用する文のルーティングのタイプを決定: スキーマ・レベル・ルーティング、オブジェクトレベル・ルーティング、またはハイブリッド・ルーティング。
自動文のルーティングを有効にし、ターゲット・マッピング・エントリをルーティング表に追加するには:
DBA_PROXY_SQL_MAPPINGS
ビューを問い合せて、ルーティング表のレコードをリストできます。 詳細については、「DBA_PROXY_SQL_MAPPINGSビュー」を参照してください。
親トピック: 文のルーティングの有効化およびスキーマ・マッピングの定義
ターゲット・インスタンスでの文書ルーティングの受入
ルーター・インスタンスからのマッピングを許可するには、ターゲット・インスタンスで文のルーティングを受け入れる必要があります。
ルーター・インスタンスからターゲット・インスタンスへの(accept)文のリダイレクトを許可するには:
親トピック: 文のルーティングの有効化およびスキーマ・マッピングの定義
ProxySQLを使用した文の発行
自動文のルーティングを利用するには、ProxySQLによって管理されるルーター・インスタンスに接続し、文を送信する必要があります。
ProxySQLを有効にして問合せおよびDMLを送信する場合は、自動文のルーティングを利用するためにルーター・インスタンスに接続する必要があります。
ターゲット・インスタンスへの文のルーティングの停止
ターゲットAutonomous Databaseでこれらのステップを実行して、ProxySQLルーターからのルーティングされた文の受入れを停止させます。
詳細については、「REJECT_MAPPINGプロシージャ」を参照してください。
文のルーティングの無効化
ProxySQLを無効にして文を自動ルーティングするステップを示します。
ルーター・インスタンスでDBMS_PROXY_SQL.DISABLE_ROUTING
を実行して、ProxySQLを無効にし、ターゲット・インスタンスへの自動文のルーティングを無効にします。
たとえば:
BEGIN
DBMS_PROXY_SQL.DISABLE_ROUTING
;
END;
/
これにより、ProxySQLが無効になり、ルーターの自動文のルーティングが無効になります。
ProxySQLを無効にしても、ルーター・インスタンスのルーティング表にある文マッピング・エントリは削除されません。 これは、ProxySQLを再度有効にし、ルーティング表に既存のエントリがある場合、自動文のルーティングによって、ルーティング表に指定されたとおりに文がターゲット・インスタンスにルーティングされることを意味します。 ProxySQLを再度有効にする前に既存のルーティング表エントリを削除する場合は、プロシージャDBMS_PROXY_SQL.REMOVE_MAPPING
を使用します。
詳細については、「DISABLE_ROUTINGプロシージャ」を参照してください。
ProxySQLノートによる自動文のルーティング
ProxySQLが有効な場合の自動文のルーティングに関する制限事項と重要なノートを示します。
-
ADMIN
ユーザーには、ProxySQLを管理する権限があります。 別のユーザーを有効にする場合は、次の権限を付与する必要があります-
DBMS_PROXY_SQL
パッケージに対するEXECUTE
権限。 -
DBA_PROXY_SQL_MAPPINGS
ビューに対するREAD
権限。 -
DBA_PROXY_SQL_ACCEPTED_MAPPINGS
ビューに対するREAD
権限。
-
-
自動明細書送付は、次の場合にシームレスに再開されます:
-
ターゲットのAutonomous Databaseインスタンスは、ローカルのAutonomous Data Guardスタンバイにフェイルオーバーします。
-
ターゲットAutonomous DatabaseインスタンスのローカルAutonomous Data Guardスタンバイへのスイッチオーバーを実行します。
ただし、自動文のルーティングは、クロス・リージョンAutonomous Data Guardスタンバイ・データベースへのフェイルオーバーまたはスイッチオーバー後に停止します。
-