【Net Services】
OracleNETとは、Broker Communication Toolsが入っているサーバーとクライアントの中間コミュニケーション・ツールの総称。
必要なものは以下
1.クライアントとサーバーのどちらにもインストールされていること
2.ネットワークがること
3.インターネットがあること
4.(クラウドの開発環境)
何をマネジメントするのか
Communication
Scalability(バンドワイズなど)
Security
Performance(Scalabilityも関係してきますね)
主なツールの種類
1.Location Transparency / Service Repository ➡ これでディレクトリをつくってDNSサーバーのようにアクセスさせることができる。
2.LDAP ➡ 属性(個人名や部署名)で構成するエントリ(関連属性のまとまり)の検索、追加、削除の操作が可能になるので、一か所にデータを保存して、セントラル・マネジメントが可能になる。
3.Firewall Access Control ➡ フィルタリング可能なため、ユーザーのアクセス管理ができる。
【Listnerってなに?どう使うの?】サーバサイド
クライアントとサーバーのコミュニケーションのためには、まず実際にクライアントからの要求をきいてやる仕組みを設定しなくちゃなりません。そのためのListner Utility(lsnrctl Utility)です。
設定の仕方
場所:$ORACLE_HOME/network/admin/listner.ora
設定関係:テキストベースでHOSTとPORT、NET MANAGERと一緒に設定できる
Listner =
( DESCRIPTION_LIST =
( DESCRIPTION =
( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 1522 ))
( ADDRESS = ( PROTOCOL = TCP ) ( KEY = EXTPROC1522 ))
)
)
テストの仕方:
Easy コネクトを使ってみましょう。
sqlplus
disconnect
connect system/pa33w0rd//localhost:1522/orcl2 ➡ ユーザー/パスワード//ホスト名:ポートナンバー/DB名
これでオッケー
設定変更
他のポート(8025)でも使えるようにしましょう。
Listner =
( DESCRIPTION_LIST =
( DESCRIPTION =
( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 1522 ))
( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 8025 ))
( ADDRESS = ( PROTOCOL = TCP ) ( KEY = EXTPROC1522 ))
)
)
テストの仕方:
またEasy コネクトを使ってみましょう。
sqlplus
disconnect
connect system/pa33w0rd//localhost:1522/orcl2 ➡ ユーザー/パスワード//ホスト名:ポートナンバー/DB名
これでオッケーじゃないっ!
Listenerを再起動させなきゃならんばい。
Listener再起動:
1.コマンドラインから
lsnrctl stop listener
lsnrctl start listener
2.WindowsのサービスマネージャーからTNSListenerを再起動
3.直接マシーンを強制的に再スタートさせる
【Registrationってなに?どう使うの?】サーバサイド
Registrationってのは、Listenerの前に「このネットワークをつかうんだよー」ってネットワークを登録してやるこどですね。なので、これをしなければ、Listenerもクライアントからの情報はうけれません。
Registrationする2つの方法
Static - SIDs
LISTSTATIC = ↩ これリスナー
( DESCRIPTION_LIST =
( DESCRIPTION =
( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 1522 ))
( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 8025 )) ↩ これ、ポート増やしただけ。リスナー増やしたわけじゃない。
( ADDRESS = ( PROTOCOL = TCP ) ( KEY = EXTPROC1522 ))
)
)
上のリスナーを登録するためのRegistration
SID_LIST_LISTSTATIC = ↩ これRegistration ➡ listの名前が最後に来ます。(ほんまかいな。。。)
( SID_LIST =
( SID_DESC =
( SID_NAME = SIDStatic) ➡ どのリスナーが登録されるのか
( ORACLE_HOME = C:\app\benfi\virtual\product\12.2.0\dbhome_2 ➡ ホームディレクトリ、どこに実際のファイルがあるか
)
)
そのほかにもPROGRAMやENVISなどある。
Dynamic - PMON
LISTDYNAMIC = ↩ これリスナー
( DESCRIPTION_LIST =
( DESCRIPTION =
( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 2156))
)
)
上のリスナーを登録するためのRegistration
sqlplus
alter system set local_listeners=`(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=2156))` scope=both; ➡ バッククォート
system altered.
disconnect
lsnrctl start LISTDYNAMIC
connect system/pa33w0rd//localhost:2156/orcl2 ➡ ユーザー/パスワード//ホスト名:ポートナンバー/DB名
connected
*そして新しいリスナーを登録すると、当たり前だのクラッカー🎉に、古いリスナーの登録はなくなる。お、この登録とはRegistrationのことです。
【Local Namingってなに?どうつかうの?】クライアントサイド
正直言って、まだよーわかりません。。。
とにかく、クライアントサイドにネットワークの主導権を持たせるわけにいかんので、代わりに名前を付けてやってTNSNAMES.oraで名前を管理してやるということです。なので便利だけど、これがなくともデータベースにつながります。
TNSNAMESの種類:
$ORACLE_HOME/network/admin/tnsnames.ora ➡ Windows
$TNS_ADMIN/tnsnames.ora ➡ Windows
$HOME/.tnsnames.ora ➡ Linux
設定の仕方:
ORCL2= ( DISCRIPTION =
ADDRESS = ( PROTOROL=TCP)(HOST=localhost ) ( PORT=0152 )
( CONNECT_DATA =
( SERVER = DEDICATED )
(SERVICE_NAME = orcl2)
)
)
もし新しくサービスをくわえるならこのまま上をコピペして名前を変える
MYNEWSERVICE= ( DISCRIPTION =
ADDRESS = ( PROTOROL=TCP)(HOST=localhost ) ( PORT=0152 )
( CONNECT_DATA =
( SERVER = DEDICATED )
(SERVICE_NAME = orcl2)
)
)
コネクションの仕方:
sqlplus
connect system/pa33w0rd@MYNEWSERVICE
connected
Dynamic Registration
1.リスナーを書く
LISTENER_ORCL2=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
2.レジスターする
alter system set local_listener='LISTENER_ORCL2' scope=both;
【さて、接続をテストしましょ】
1.Loopo Back Test
NET MANAGERからテストします。
2.tnsping Utility
cmdからtnsping.exeを走らせます。
tnsping mydb 8 ➡ 8回、mydbデータベースへコネクションテストします。
※コメント投稿者のブログIDはブログ作成者のみに通知されます