Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Connection Manager について概要と設定および簡易動作確認

Oracle Connection Manager について概要と設定および簡易動作確認

Oracle Connection Managerは Oracle Net Services の1つの機能として提供されている、セッション・レベルで動作する接続要求を転送する「プロキシ・サーバー」です。
本資料では、Connection Manager の技術的な概要から構築手順のサンプルを提示するものです。

oracle4engineer

July 03, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Connection Manager 概要 Connection Manager (CMAN) は Gateway Client Application

    から CMAN の Remote Listener を経由して Database Server へ接続リクエストが送られる CMAN を介して Client Application と Server Process の接続が確立 され、SQL処理を受付ける また、以下の機能強化がある • Transport Layer Security (TLS)プロトコルをサポート • 複数のプロトコル・アドレス上でのリッスンが可能 • ネットワーク・データの圧縮機能も追加 • 最大2 MBのSDU(Session Data Unit)がサポート • 登録に対する有効ノード・チェック (21c 以降) • Traffic Directorモード 3 Copyright © 2023, Oracle and/or its affiliates Connection Manager Remote Listener Connects Processes SQL CMAN 構成のイメージ 通常の接続経路
  2. Connection Manager 設定と簡易動作確認 本簡易手順確認の環境について 4 Copyright © 2023, Oracle and/or

    its affiliates 1. CMAN設定と操作 2. 接続先DBで設定 3. Client 設定 cmtest02.jp.oracle.com cmtest03.jp.oracle.com cmtest04.jp.oracle.com (Developer Free)
  3. Connection Manager 設定と簡易動作確認 CMAN 設定 (1/4) CMAN用サーバにOracle Client ソフトウェアのインストール (今回は21c

    Client) カスタムから Connection Manager と Net Listener を選択 5 Copyright © 2023, Oracle and/or its affiliates 1. CMAN設定と操作
  4. Connection Manager 設定と簡易動作確認 CMAN 設定 (2/4) cman.ora を編集 (サンプルからの編集も可) #

    CMAN Alias cman_cmtest03.jp.oracle.com = (configuration= (address=(protocol=tcp)(host=cmtest03.jp.oracle.com)(port=1521)) (PARAMETER_LIST= (REGISTRATION_INVITED_NODES = 192.168.1.*) ) (rule_list= (rule= (src=*)(dst=*)(srv=*)(act=accept) ) ) ) 6 Copyright © 2023, Oracle and/or its affiliates : CMANを稼働させるホスト名 : 接続先DBがCMANを稼働させるノードと別の場合にN/Wアドレスを設定する (リスナーに登録できるノードのリストでワイルドカード可) : 詳細な接続のルールが設定可能 (1つ以上のルールを入力する)
  5. Connection Manager 設定と簡易動作確認 CMAN 設定 (3/4) [oracle@cmtest03 admin]$ cmctl CMCTL

    for Linux: Version 21.0.0.0.0 - Production on 12-6月 -2023 15:36:52 Copyright (c) 1996, 2021, Oracle. All rights reserved. 現行のインスタンスCMAN_cmtest03.jp.oracle.comはまだ開始していません 接続は(DESCRIPTION=(address=(protocol=tcp)(host=cmtest03.jp.oracle.com)(port=1521)))を参照しています。 コマンドは正常に終了しました。 CMCTL:CMAN_cmtest03.jp.oracle.com> startup Oracle Connection ManagerのインスタンスCMAN_cmtest03.jp.oracle.comを開始しています。お待ちください... CMAN for Linux: Version 21.0.0.0.0 – Production インスタンスのステータス ---------------------- インスタンス名 cman_cmtest03.jp.oracle.com バージョン CMAN for Linux: Version 21.0.0.0.0 - Production 開始日 13-6月 -2023 11:06:11 稼働時間 0 日 0 時間 0 分 9 秒 起動したゲートウェイの数 2 平均ロード・レベル 0 ログ・レベル SUPPORT トレース・レベル OFF インスタンス構成ファイル /u01/app/oracle/product/21.0.0/client/network/admin/cman.ora インスタンス・ログ・ディレクトリ /u01/app/oracle/diag/netcman/cmtest03/cman_cmtest03.jp.oracle.com/alert インスタンス・トレース・ディレクトリ /u01/app/oracle/diag/netcman/cmtest03/cman_cmtest03.jp.oracle.com/trace コマンドは正常に終了しました。 7 Copyright © 2023, Oracle and/or its affiliates
  6. Connection Manager 設定と簡易動作確認 CMAN 設定 (4/4) CMCTL:CMAN_cmtest03.jp.oracle.com> show services サービスのサマリー...

    プロキシ・サービス"cmgw"には、1個のインスタンスがあります。 インスタンス"cman"、状態READYには、このサービスに対する2件のハンドラがあります... ハンドラ: "cmgw001" 確立:0 拒否:0 現行:0 最大:256 状態:ready <machine: localhost, pid: 4095> (ADDRESS=(PROTOCOL=ipc)(KEY=#4095.1)(KEYPATH=/var/tmp/.oracle_120000)) "cmgw000" 確立:0 拒否:0 現行:0 最大:256 状態:ready <machine: localhost, pid: 4093> (ADDRESS=(PROTOCOL=ipc)(KEY=#4093.1)(KEYPATH=/var/tmp/.oracle_120000)) サービス"cmon"には、1件のインスタンスがあります。 インスタンス"cman"、状態READYには、このサービスに対する1件のハンドラがあります... ハンドラ: "cmon" 確立:3 拒否:0 現行:1 最大:4 状態:ready <machine: localhost, pid: 4087> (ADDRESS=(PROTOCOL=ipc)(KEY=#4087.1)(KEYPATH=/var/tmp/.oracle_120000)) コマンドは正常に終了しました。 8 Copyright © 2023, Oracle and/or its affiliates
  7. Connection Manager 設定と簡易動作確認 接続先DBで設定 /u01/app/oracle/product/21.0.0/client_1/client/network/admin/tnsnames.ora listener_cman= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=cmtest03.jp.oracle.com)(PORT=1521)))) 上記を追記

    REMOTE_LISTENER= listener_cman を登録 SQL> alter system set REMOTE_LISTENER = listener_cman; システムが変更されました。 SQL> alter system register; システムが変更されました。 SQL> show parameter remote_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_listener string LISTENER_CMAN 接続先サービス(PDB)の確認 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO 9 Copyright © 2023, Oracle and/or its affiliates 2. 接続先DBで設定
  8. Connection Manager 設定と簡易動作確認 Client 設定 Client : cmtest04.jp.oracle.com に Oracle

    Client (21c) をインストール /u01/app/oracle/product/21.0.0/client_1/client/network/admin/tnsnames.ora HOST= を CMANが稼働するホスト名として tnsnames.ora を設定 ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = cmtest03.jp.oracle.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ORCLPDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = cmtest03.jp.oracle.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLPDB1) ) ) 10 Copyright © 2023, Oracle and/or its affiliates 3. Client 設定
  9. Connection Manager 設定と簡易動作確認 CMAN インスタンスを介した接続について 11 Copyright © 2023, Oracle

    and/or its affiliates cmtest02.jp.oracle.com cmtest03.jp.oracle.com cmtest04.jp.oracle.com Connection Manager コマンドラインI/Fによる操作 CMCTL> Client からの 接続確認 CMANインスタンスの 稼働状況確認 SQL*Plus より操作
  10. Connection Manager 設定と簡易動作確認 CMAN を介した接続について [oracle@cmtest04 admin]$ sqlplus system@orclpdb1 SQL*Plus:

    Release 21.0.0.0.0 - Production on 火 6月 13 12:43:04 2023 Version 21.3.0.0.0 Copyright (c) 1982, 2021, Oracle. All rights reserved. パスワードを入力してください: 最終正常ログイン時間: 火 6月 13 2023 08:26:53 +09:00 Oracle Database 23c Enterprise Edition Release 23.0.0.0.0 - Beta Version 23.2.0.0.0 に接続されました。 SQL> show con_name CON_NAME ------------------------------ ORCLPDB1 SQL> 12 Copyright © 2023, Oracle and/or its affiliates Client からの 接続確認
  11. Connection Manager 設定と簡易動作確認 CMAN 環境の確認 (1/3) CMCTL:CMAN_cmtest03.jp.oracle.com> administer 現行のインスタンスCMAN_cmtest03.jp.oracle.comはすでに開始しています 接続は(DESCRIPTION=(address=(protocol=tcp)(host=cmtest03.jp.oracle.com)(port=1521)))を参照しています。

    コマンドは正常に終了しました。 CMCTL:CMAN_cmtest03.jp.oracle.com> show service サービスのサマリー... プロキシ・サービス"cmgw"には、1個のインスタンスがあります。 インスタンス"cman"、状態READYには、このサービスに対する2件のハンドラがあります... ハンドラ: "cmgw001" 確立:0 拒否:0 現行:0 最大:256 状態:ready <machine: localhost, pid: 5902> (ADDRESS=(PROTOCOL=ipc)(KEY=#5902.1)(KEYPATH=/var/tmp/.oracle_120000)) "cmgw000" 確立:0 拒否:0 現行:0 最大:256 状態:ready <machine: localhost, pid: 5900> (ADDRESS=(PROTOCOL=ipc)(KEY=#5900.1)(KEYPATH=/var/tmp/.oracle_120000)) サービス"cmon"には、1件のインスタンスがあります。 インスタンス"cman"、状態READYには、このサービスに対する1件のハンドラがあります... ハンドラ: "cmon" 確立:2 拒否:0 現行:1 最大:4 状態:ready <machine: localhost, pid: 5894> (ADDRESS=(PROTOCOL=ipc)(KEY=#5894.1)(KEYPATH=/var/tmp/.oracle_120000)) --- ここまでが初期状態でのサービス・サマリ (スライド P8参照) 13 Copyright © 2023, Oracle and/or its affiliates CMANインスタンスの 稼働状況確認
  12. Connection Manager 設定と簡易動作確認 CMAN 環境の確認 (2/3) --- show services コマンドのつづき

    (一部割愛) サービス"orcl"には、1件のインスタンスがあります。 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... ハンドラ: "DEDICATED" 確立:0 拒否:0 状態:ready REMOTE SERVER (ADDRESS=(PROTOCOL=TCP)(HOST=cmtest02.jp.oracle.com)(PORT=1521)) サービス"orclXDB"には、1件のインスタンスがあります。 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... ハンドラ: "D000" 確立:0 拒否:0 現行:0 最大:1022 状態:ready DISPATCHER <machine: cmtest02.jp.oracle.com, pid: 67366> (ADDRESS=(PROTOCOL=tcp)(HOST=cmtest02.jp.oracle.com)(PORT=29225)) サービス"orclpdb1"には、1件のインスタンスがあります。 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... ハンドラ: "DEDICATED" 確立:1 拒否:0 状態:ready REMOTE SERVER (ADDRESS=(PROTOCOL=TCP)(HOST=cmtest02.jp.oracle.com)(PORT=1521)) コマンドは正常に終了しました。 14 Copyright © 2023, Oracle and/or its affiliates CMAN環境に サービス”orclpdb1”が認識される (接続状態のため確立:1) CMANインスタンスの 稼働状況確認
  13. Connection Manager 設定と簡易動作確認 CMAN 環境の確認 (3/3) [oracle@cmtest03 ~]$ lsnrctl status

    LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 13-6月 -2023 08:25:04 Copyright (c) 1991, 2021, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cmtest03.jp.oracle.com)(PORT=1521)))に接続中 リスナーのステータス ------------------------ 別名 cman_cmtest03.jp.oracle.com バージョン TNSLSNR for Linux: Version 21.0.0.0.0 - Production 開始日 12-6月 -2023 15:48:52 稼働時間 0 日 16 時間 36 分 12 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF パラメータ・ファイル /u01/app/oracle/product/21.0.0/client/network/admin/cman.ora ログ・ファイル /u01/app/oracle/diag/netcman/cmtest03/cman_cmtest03.jp.oracle.com/alert/log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cmtest03.jp.oracle.com)(PORT=1521))) サービスのサマリー... プロキシ・サービス"cmgw"には、1個のインスタンスがあります。 インスタンス"cman"、状態READYには、このサービスに対する2件のハンドラがあります... サービス"cmon"には、1件のインスタンスがあります。 インスタンス"cman"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"orcl"には、1件のインスタンスがあります。 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"orclpdb1"には、1件のインスタンスがあります。 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... コマンドは正常に終了しました。 15 Copyright © 2023, Oracle and/or its affiliates ※ 一部割愛します CMAN環境上では lsnrctl でも確認可能 CMANインスタンスの 稼働状況確認
  14. Connection Manager 設定と簡易動作確認 補足 • Client (cmtest04) から 接続を確立し、SQL処理中に CMANインスタンスを

    shutdown した場合の動き ⇨ CMANインスタンスはSQL処理を完了するまで Shutdown されない • Client (cmtest04) から 接続を確立し、SQL処理中に CMANが稼働するノードを停止(または障害)した場合の動き ⇨ SQL処理は停止しエラーとなる ERROR: ORA-03113: 通信チャネルでend-of-fileが検出されました プロセスID: 318753 セッションID: 743、シリアル番号: 55573 16 Copyright © 2023, Oracle and/or its affiliates
  15. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.