Oracle 監視は、クライアントからのリクエストを監視するサーバー側のプロセスであり、クライアント コンピュータとデータベース コンピュータの間にデータ リンクを確立できます。リクエストを受信した後、Oracle 監視はサービスを提供するサーバー プロセスを導出します。 . データベース構成では、プライベート モードと共有モードの両方が提供されます。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Oracle モニタリングは、クライアントからのリクエストを監視するサーバー側のプロセスです。
リスナーはデータベース ホスト上に存在する必要はありません。 、リモート ホスト上のモニターにインスタンスを登録できます
#モニターは Oracle 独自のソフトウェアまたはコンポーネントです#ローカル接続は監視する必要はありませんが、リモート接続は監視する必要があります
oracle ユーザー プロセスによって送信されたリクエストをリッスンした後、サービスを提供するサーバー プロセスが派生します。サーバー プロセスには、データベースの構成に応じて、独自モードと共有モードの 2 つのモードがあります。
プライベート モード:各クライアント プロセス サービスを提供するためのセッションを確立するための個別のサーバー プロセスが存在します。データベースの 99% 以上のほとんどがこのモードです。
共有モード: リクエストを監視し、送信するディスパッチと呼ばれるディスパッチャがあります。 Dispatch は継続的にリクエスト キューを問い合わせます。リクエストが見つかると、リクエストをサーバー プロセスに転送し、サーバー プロセスを介してサービスを提供します。処理後、レスポンス キューにフィードバックします。その後、Dispatch は応答キューをユーザー プロセスに転送します。レストランでの食事と同様に、サーバー プロセスはシェフに相当し、ディスパッチはウェイターに相当します。ウェイターはリクエストを受け入れ、対応するアイドル シェフに転送してサービスを提供します。シェフが準備した料理をどこに置く場合も、その後、ウェイターがそれらを顧客に提供します。このモデルは使用されません。複数の
dbca データベースが構築された後、通常、デフォルトのモニターが存在します。それを構成する必要はありません。モニターのデフォルトのサービス ポートは 1521.
通常、データベースには 1 つのモニターで十分ですが、同時実行性が大きすぎる場合は、必要になる場合があります。複数のモニターを構成します。デフォルト以外のモニターのポート番号は 1024 より大きいです。サービス異なるモニター間で名前とポート番号を同じにすることはできません。
モニターから異なるライブラリを区別する方法。そのため、インスタンスをサービスとして登録し、リッスンに登録する必要があります。
登録ホスト上で実行されているインスタンスをリスナーに追加して、リスナーがホスト上にどのインスタンスがあるかを認識できるようにします。
構成メソッド動的登録
サービス登録には 2 つのタイプがあります。1 つは動的登録です。これは、pmon プロセスを通じてインスタンスをリッスンにアクティブかつ自動的に登録します。
リッスンとインスタンスの起動シーケンスでは、モニターが最初に起動しますが、問題はありません。モニターの後に起動する場合は、システム レジスタを手動で変更して登録するか、そのままにしておくことができます。しばらくすると pmon が登録します。
一般的には、デフォルトです。モニターは動的登録です
listener.ora ファイルは必要ありません
サービスのステータスにはステータス READY (ライブラリはマウントまたはオープン状態です)という言葉が表示されます
pmon はインスタンスを提供します名前、サービス名、リスナーへのサービス ハンドラーのタイプとアドレス
登録されたサービス名は db_name.db_domain、db_nameXDB.db_domain
pmon を非サーバーに登録する場合は、 -デフォルトのリスナー、local_listener パラメーターを構成する必要があります
リスニングの構成は、netca グラフィックスまたはコマンド構成を通じて構成できます
#デフォルトのリスニング名はLISTENERです。設定は上記のとおりです。実際には、そのようなlistener.oraはありません。デフォルトのlistenも通常どおり実行できます。そこで、listener2という名前のデフォルト以外の動的リスナーをポート1522に追加しましょう
最初に netmgr グラフィックにリスナーを追加しますまたは、listener.ora を編集してリスナーを追加します。
次に、tnsnames.ora を変更して、listener2 文字列を追加して local_listener パラメータを変更します (つまり、リスナーを変更します。セクションを tnsnames.ora にコピーします)。 local_listener パラメータを変更して手動で登録します。
[oracle@study admin]$ sql SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 19 17:07:41 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 17:07:42 SYS@study> show parameter local_list NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ local_listener string 17:08:19 SYS@study> alter system set local_listener='LISTENER2'; System altered. Elapsed: 00:00:00.04 17:09:03 SYS@study> alter system register; System altered. Elapsed: 00:00:00.00 17:09:21 SYS@study> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@study admin]$ lsnrctl status listener2 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-SEP-2019 17:10:22 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias listener2 Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 19-SEP-2019 16:38:16 Uptime 0 days 0 hr. 32 min. 6 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/study/listener2/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=study.localdomain)(PORT=1522))) Services Summary... Service "study" has 1 instance(s). Instance "study", status READY, has 1 handler(s) for this service... Service "studyXDB" has 1 instance(s). Instance "study", status READY, has 1 handler(s) for this service... The command completed successfully [oracle@study admin]$ただし、この場合、デフォルトは pmon です。デフォルトのモニタには登録されません。つまり、1521 からアクセスできません。1521 と 1522 を設定したい場合は、同時にサービスを提供する場合は、デフォルトのモニターを削除して、設定を
LISTENER2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = study.localdomain)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = study.localdomain)(PORT = 1521)) )に変更できます。動的モニタリングは PMON に依存しているため、モニターの設定ファイルを削除します。デフォルトのリスニングは引き続き有効で、モニタリングは引き続き有効です。 localhost:1521 をリッスンします。LOCAL_LISTENER パラメータは、インスタンスが動的に自身を登録する場所を制御します。LOCAL_LISTENER パラメータのデフォルト値は (ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT= 1521))、PMON は引き続きインスタンスをアクティブに登録しますこれは、dbca データベース作成後のデフォルトの登録方法です。
動的モニタリングでは、モニタリングと local_listener パラメータの設定が一貫している必要があり、デフォルトではすべて空であることがわかります。はデフォルトの監視です。デフォルトでない場合は、これら 2 つの場所を表示して設定するだけです
tnsnames
.ora在动态监听中不是必须的,只是为了配置个本地的字符串方便local_listener的配置命令而已,直接配置如下形式也ok
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1521))'; 等同于alter system set local_listener='';
配置注册到多个监听,可以如下
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1521))','(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1522))';
或者先在tnsnames.ora中配置多个地址的字符串
再设置alter systemset local_listener='LISTENER2';
在共享服务器模式下,可以配置listener的一个参数叫做dispatchers,把这个分派器注册到一个非默认监听
ALTER SYSTEM SET DISPATCHERS=”(PROTOCOL=tcp)(LISTENER=lsnr2)”;
select service_id,name from vactiveservices可以查出,前面2个服务是注册到监听的,后面2个是Oracle有两个内部的服务,SYSBACKGROUND是后台进程使用的,SYS$USERS提供给没有指定服务的用户会话使用
service_names是服务名,如果为空,会把db_name.db_domain 注册到监听
推荐教程:《Oracle视频教程》
以上がオラクル監視とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。