42

Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加
Page 2: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. |

Oracle Net Services 12cデータベースのパフォーマンスとスケーラビリティのベスト・プラクティス

Oracle NetディレクターKant C Patel

Page 3: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

プログラムのアジェンダ

• Oracle Netの概要– Oracle Netを最適化する理由

• ベスト・プラクティス– Database Client– ListenerおよびConnection Manager– Database Server

• Q/A

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 3

Page 4: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Oracle Netの概要

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 4

• Oracle DBのプライマリ通信基盤

• 別名:SQL*Net• ネットワーク機能のOracleファミリー

– Oracle Net– Oracle Net Listener– Connection Manager–構成ツール

Page 5: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Oracle Netを最適化する理由

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 5

• 高可用性

– データベース/ホスト/ネットワークの障害への迅速な対応

• ネットワークのスケーラビリティとパフォーマンス

– より多くのクライアントを接続できる優れたスケーラビリティ

– ロードバランシングによるアプリケーション体験の向上

– ネットワーク帯域幅の利用効率の向上

– データベースのCPU使用率の軽減

• ネットワーク・セキュリティ

– DoS攻撃からの防御とリカバリ

Page 6: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Net構成ファイル

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 6

• sqlnet.ora– メインのOracle Net構成ファイル

– クライアントとサーバーの両方

• listener.ora– Net Listenerの構成ファイル

– サーバーのみ

• tnsnames.ora– 記述子のマッピングに対する接続名を含む

– TNSNamesネーミング・アダプタによって使用

– クライアントとサーバーの両方

• ldap.ora– LDAPの構成情報を含む

– LDAPネーミング・アダプタによって使用

– クライアントとサーバーの両方

Page 7: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

プログラムのアジェンダ

• Oracle Netの概要– Oracle Netを最適化する理由

• ベスト・プラクティス– Database Client– ListenerおよびConnection

Manager– Database Server

• Q/A

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 7

Page 8: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

BDP = (40 × 1000 ÷ 8 Kbytes/秒) × (0.025秒) ~ 128 Kbytes

ソケット・バッファのチューニング

BDPとは

• 帯域幅 x 遅延製品(BDP)– 任意の時点における“有線”上のデータ量

– デフォルトのオペレーティング・システム・バッファは、有線を満たすための十分なデータを保持しない

– 例:

40 Mbps、25ミリ秒の遅延HQオースティンのデータセンター

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 8

Page 9: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

ソケット・バッファのチューニング

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 9

• 以下を使用して送信および受信ソケット・バッファ・サイズを設定

– SEND_BUF_SIZE – OS送信バッファ・サイズ

– RECV_BUF_SIZE – OS受信バッファ・サイズ

• BDPに対応するようにこのサイズを設定(2倍)

• サーバーとクライアントの両方で設定

• バッファ・サイズが大きいと以下に役立つ

– アプリケーションがより多くのデータをOSにキューイング

– より多くのデータを有線上に保持

– 使用可能な帯域幅を有効利用

– WANデプロイメントで有用

構成場所

クライアント:sqlnet.oraおよび/またはtnsnames.ora、またはLDAP

サーバー:sqlnet.oraおよびlistener.ora

Page 10: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

セッション・データ・ユニットのチューニング

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 10

• SQL*Netパケット・サイズの制御

– デフォルト:8 K– 最大:2 MB(12c)、64 K(11.2)、32 K(11.2以前)

• 以下で設定

– sqlnet.ora:DEFAULT_SDU_SIZE– tnsnames.ora:アドレスのSDU

• SDUを大きく設定するメリット

– ネットワーク・スループットの向上

– データを送受信するためのシステム呼び出し数の低減

– CPU使用率の低減 – システムおよびユーザー

• SDUを大きく設定するデメリットネットワーク・バッファがより多くのメモリを使用

構成場所

クライアント:sqlnet.oraおよび/またはtnsnames.ora、またはLDAP

サーバー:sqlnet.ora

Page 11: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. |

SDUの推奨事項• 最適なSDUはアプリケーションごとに異なる

• SDUをクライアントとサーバーの両方で増加– より低い2つのピアにネゴシエートされた接続向けのSDU

• SDUを8 Kに増加(11g以前のクライアント)– 大半のユーザー向けの適切なデフォルト値

• データの一括送信では、64 Kに増加– 大規模な配列のフェッチ

– LOBの送信

– XML DB

• MTU値には設定しない– SDUとMTUは互いに依存しない

Page 12: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

アプリケーションの接続時フェイルオーバー

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 12

Oracle Netのタイムアウト

• 接続確立のタイムアウト

– TCP接続確立のタイムアウト

• TCP.CONNECT_TIMEOUT• 11gR2以降はデフォルトで60秒に設定され有効化

– DBサーバー・プロセスへの接続のタイムアウト• SQLNET.OUTBOUND_CONNECT_TIMEOUT• セッションの確立に時間がかかる場合に設定

• 接続文字列レベルで構成

• 個々に使用することも、同時に使用することも可能

– アウトバウンド接続のタイムアウトはTCPのタイムアウトよりも大きくなければならない

• 接続の再試行と再試行の遅延を可能にするオプション

構成場所

クライアント:sqlnet.oraおよび/またはtnsnames.ora、またはLDAP

Page 13: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

sales-scan:10240/sales

は以下と同等

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)

(HOST=10.1.1.1)(PORT=10240))

(ADDRESS=(PROTOCOL=tcp)

(HOST=10.1.1.2)(PORT=10240))

(ADDRESS=(PROTOCOL=tcp)

(HOST=10.1.1.3)(PORT=10240)))

(CONNECT_DATA=

(SERVICE_NAME=sales)))

Single Client Access Name(SCAN)簡易接続 + アドレス・リスト

– 11gR2以降で利用可能

– クライアントがクラスタのOracle Databaseにアクセスするための単一名

– Grid Infrastructureのインストール中に構成

– 通常は、それぞれがSCANリスナーに関連付けられているクラスタ内の3つのIPアドレスに解決される

たとえば、DNSによりsales-scanが以下に解決される場合{10.1.1.1, 10.1.1.2, 10.1.1.3}

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 13

Page 14: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

接続記述子のSCAN

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 14

sales=

(DESCRIPTION=

(ADDRESS_LIST=

(LOAD_BALANCE=on)

(ADDRESS=

(PROTOCOL=tcp)

(HOST=sales-scan)

(PORT=10240)))

(CONNECT_DATA=

(SERVICE_NAME=sales)))

sales-scan:10.1.1.1, 10.1.1.2, 10.1.1.3

sales=

(DESCRIPTION=

(ADDRESS_LIST=

(LOAD_BALANCE=on)

(ADDRESS=

(PROTOCOL=tcp)

(HOST=10.1.1.1)

(PORT=10240))

(ADDRESS=

(PROTOCOL=tcp)

(HOST=10.1.1.2)

(PORT=10240))

(ADDRESS=

(PROTOCOL=tcp)

(HOST=10.1.1.3)

(PORT=10240)))

(CONNECT_DATA=

(SERVICE_NAME=sales)))

Page 15: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

アドレスおよび説明リストを使用したクライアント側フェイルオーバーRAC + Data Guardの例

プライマリ

sales-1

RAC

sales-2

スタンバイ

backup-1

RAC

backup-2

sales-scan=(sales-1,sales-2)

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 15

backup-scan=(backup-1,backup-2)

Page 16: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

接続記述子

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 16

(DESCRIPTION_LIST =

(LOAD_BALANCE=off)(FAILOVER=on)

(DESCRIPTION =

(LOAD_BALANCE=on)

(ADDRESS=(PROTOCOL=tcp)(HOST=sales-scan)(PORT=1521))

(CONNECT_DATA=(SERVICE_NAME=sales.example.com)))

(DESCRIPTION =

(LOAD_BALANCE=on)

(ADDRESS=(PROTOCOL=tcp)(HOST=backup-scan)(PORT=1521))

(CONNECT_DATA=(SERVICE_NAME=sales.example.com))))

Page 17: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

接続記述子は内部で以下に展開

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 17

(DESCRIPTION_LIST =

(LOAD_BALANCE=off)(FAILOVER=on)

(DESCRIPTION =

(ADDRESS_LIST=

(LOAD_BALANCE=on)

(ADDRESS=(PROTOCOL=tcp)(HOST=sales-1)(PORT=1521))

(ADDRESS=(PROTOCOL=tcp)(HOST=sales-2)(PORT=1521)))

(CONNECT_DATA=(SERVICE_NAME=sales.example.com)))

(DESCRIPTION =

(ADDRESS_LIST=

(LOAD_BALANCE=on)

(ADDRESS=(PROTOCOL=tcp)(HOST=backup-1)(PORT=1521))

(ADDRESS=(PROTOCOL=tcp)(HOST=backup-2)(PORT=1521)))

(CONNECT_DATA=(SERVICE_NAME=sales.example.com))))

Page 18: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

接続されたセッションのフェイルオーバー

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 18

• 確立されたクライアント接続は、以下の場合に停止する可能性がある

– データベース・ホストのクラッシュ

– リモート・ネットワークの障害

• そのような障害の検出には時間を要する

– TCP動作 - 数分でタイムアウト

– クライアントが何を行っているかに依存

• そのような障害を捕捉するには、以下を実施

– 受信タイムアウトを設定

• アプリケーションがアクティブであり、長時間実行される問合せを使用しない場合

– 高速アプリケーション通知(FAN)を使用

CON6711:アプリケーション高可用性のベスト・プラクティス2017年10月4日水曜日午後3時30分、Moscone Westルーム3012

Page 19: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

構成例 – JDBCアプリ• 接続タイムアウトを以下のプロパティで設定

oracle.net.CONNECT_TIMEOUT

• 読取りタイムアウトを以下で設定

oracle.jdbc.ReadTimeout– 注:問合せタイムアウトとしては使用しない。

• 問合せタイムアウトには以下を使用

Statement.cancelまたは

Statement.setQueryTimeout

• プロパティの設定方法コードで指定

コード例:Properties prop = new Properties(); prop.setProperty("user","scott"); prop.setProperty("password","tiger"); prop.setProperty("oracle.net.CONNECT_TIMEOUT","3000"); prop.setProperty("oracle.jdbc.ReadTimeout","3000"); Conn=(new oracle.jdbc.OracleDriver()).connect(url,prop);

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 19

Page 20: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

プログラムのアジェンダ

• Oracle Netの概要

– Oracle Netを最適化する理由

• ベスト・プラクティス

– Database Client– Listenerおよび

Connection Manager– Database Server

• Q/A

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 20

Page 21: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

データベース・サービスの可用性とロードバランシング

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 21

Oracle Net Listenerとは

• クライアントが通信する最初のプロセス

• ブローカがクライアント接続を要求すると、サービス・ハンドラに引き渡される

– ディスパッチャ

– 専用サーバー

– 接続ブローカ – DRCP• ロード・アップデートをデータベースから受信

• RACのインスタンス全体でサーバー側ロードバランシングを実行

• RACのノード全体でサーバー側フェイルオーバーを実行

• 複数のエンドポイントまたはプロトコルのアドレスでリスニングが可能

• HTTP、FTPなど、他の表示にも対応

Page 22: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

データベース・サービスの可用性とロードバランシング

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 22

Listenerを使用したデータベース登録

• 動的な登録を使用

– LREG(12c以前ではPMON)が以下に関してリスナーを更新

• 提供されるサービスと使用可能なサービス・ハンドラ

• ロード統計情報 – 頻繁に更新

– 構成するには、init.oraで以下を設定

• LOCAL_LISTENER:ローカル・ホストのリスナーのアドレス

• REMOTE_LISTENER:リモート・ホストのリスナーのアドレス

– デフォルト:

• LREGはポート1521でリスナーに接続

• RACで自動的に設定

• listener.oraの静的SID_LIST構成を削除

– リモートでデータベースを起動したい場合のみ維持

構成場所

データベース・パラメータ・ファイル

Page 23: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

• 接続ロードバランシングの目標を設定することで動作を変更

– Long – 長時間接続するアプリケーションの場合(デフォルト)

– Short – 短時間接続するアプリケーションの場合

構成場所

サーバー上のsrvctlユーティリティまたはDBMS_SERVICEパッケージを使用

データベース・サービスの可用性とロードバランシング(例)インスタンスの停止

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 23

Page 24: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

リスナー・ログオン・ストーム・ハンドラ

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 24

• ログオン・ストーム

– 着信接続要求速度の急上昇

• 正常 – 中間層のリブート

• 異常 – DoS攻撃

– ストームにより、既存のセッションでCPUが長時間停止

• 接続速度リミッター機能を有効化

– スロットルのエンドポイント・レベルの制御を実現LISTENER=(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=sales)(PORT=1521)(RATE_LIMIT=3))

(ADDRESS=(PROTOCOL=tcp)(HOST=lmgmt)(PORT=1522)(RATE_LIMIT=no)))

– リスナー・レベルでグローバルに設定することも可能

– 接続速度の限界をマシンの機能と一致する値に設定

構成場所

サーバー:listener.ora

Page 25: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

ログオン・ストームの比較

150の同時接続

RATE_LIMIT = no RATE_LIMI T = 3/秒

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 25

CPU使用率(%

)セッション

時間 時間

Page 26: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

その他のベスト・プラクティス

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 26

• リスナー・エンドポイントあたりの最大同時リクエストを増加

– listener.oraのQUEUESIZEパラメータ

– TCPのlisten()バックログを最大化(オペレーティング・システム・パラメータ)

– 求められる接続リクエスト率に設定

• oracleアカウントの環境変数を最適化

– PATHが大きいほど、Oracleプロセスの分散に時間がかかる

• PATHを小さくする

• ネットワーク共有を含めない

– 環境変数の数を減らす

Page 27: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Oracle Connection Manager(Oracle CMAN)

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 27

• Oracleデータベース・サービスを認識したファイアウォール・プロキシ

–完全な透過性:アプリケーションの変更は不要

– RACのリダイレクトを含むデータベース・サブネットをクライアントから隠すために使用可能

–複数テナント環境でネットワークの分離を実現

• すべてのSQL*Netプロトコルとプロトコル変換に対応

– IPv4およびIPv6ネットワーク間のブリッジとして使用可能

• 構成可能なルール・リストに基づき、サービスへのアクセス制御を提供

• 新たなデータベースやサービスが追加された場合に自動更新

Page 28: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Oracle Connection Managerアクセス制御

テナント2

CDB

テナント1 テナント3 テナント4PDB$Seed

ファイアウォール・プロキシとしてのCMAN

Service.tenant 1.pdb

許可されたIP:10.10.*

Service.tenant 3.pdb

許可されたIP:10.14.*

異なるアプリケーション・サーバー

10.10.1.1 10.12.1.1 10.14.1.1 10.16.1.1

1 2 3 4

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 28

Page 29: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

プログラムのアジェンダ

• Oracle Netの概要– Oracle Netを最適化する理由

• ベスト・プラクティス– Database Client– ListenerおよびConnection Manager– Database Server

• Q/A

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 29

Page 30: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Oracleサーバー・アーキテクチャの概要

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 30

• 適切なサーバー・アーキテクチャの選択は、スケーラビリティ要件を満たすために不可欠

• Oracle Database Serverでは、3つのアーキテクチャをサポート–専用サーバー(デフォルト)

–共有サーバー(別名:MTS)–データベース常駐接続プール(DRCP)

Page 31: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

専用サーバー

• 各クライアント接続は、独自のプロセスを持つ(Windowsのスレッド)

• 専用プロセスによって、短い待機時間を確保

• 接続時に新しいプロセスを起動する必要がある

• 切断時にプロセスを終了する必要がある

• スケーラビリティに関する制限

– メモリ

– プロセス数

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 31

Page 32: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

共有サーバー(別名:MTS)

• 各サーバーが複数のクライアントを処理

• ディスパッチャがクライアントとサーバー間のリクエストとレスポンスを中継

• アイドル接続はあまりメモリを消費しない

• アイドル接続が多い多数の接続に適切

• 介在者によって待機時間が増加

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 32

Page 33: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

データベース常駐接続プール(DRCP)

• プールされた専用サーバーを、クライアントのシステムおよびプロセスで共有

• 接続/切断コストを削減

–接続時にサーバーを“ロック”

–切断時にサーバーを“解放”

• 専用サーバーの待機時間の短いパフォーマンス

• DRCP対応のクライアント・ドライバによる優れたスケーラビリティ

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 33

Page 34: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

専用サーバー、共有サーバー、DRCPの比較

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 34

• 以下の場合は専用サーバーを使用

– 高パフォーマンスな接続

– アクティブで、長時間実行され、データ送信の多いオペレーション

• 以下の場合は共有サーバーを使用

– ある程度の時間、アイドルになる可能性のあるセッション

– 接続と切断が頻繁なクライアント

• 以下の場合はDRCPを使用

– 短時間に数千のクライアントがデータベース・サーバー・セッションにアクセスする必要がある場合

– アプリケーションで、ほぼ同じデータベース資格証明が使用され、同一のセッション設定が行われている場合

– OCI、OCCI、JDBC、PHP(OCI8拡張)、Python(cx_Oracle)、Perl(DBI)

Page 35: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

共有サーバーの使用

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 35

• init.oraパラメータを使用して共有サーバーを有効化

– 新たなデフォルトになる

• サーバー・タイプを強制するには、接続中にサーバー・タイプを指定

– 専用サーバー:• sales-server/sales.us.example.com:dedicated

– 共有サーバー:• sales-server/sales.us.example.com:shared

• 大まかなガイドライン:

– 500セッションごとに20の共有サーバーを設定し、それを基にチューニング

– 250セッションごとに1つのディスパッチャ

Page 36: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

DRCPの使用

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 36

• プーリングは、DBAが以下を使用して有効化

EXECUTE DBMS_CONNECTION_POOL.START_POOL ('SYS_DEFAULT_CONNECTION_POOL');

• tnsnames.oraで以下のようにクライアントの接続文字列を変更(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))

(CONNECT_DATA=(SERVICE_NAME=sales)(SERVER=pooled)))

• 簡易接続構文を使用することも可能sqlplus joeuser@sales-server:1521/sales:pooled

• テスト環境において、2 GBのDatabase Server(11g)に対して20000以上の接続をサポートできた実績がある

Page 37: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Database Serverのセキュリティインバウンド接続のタイムアウト

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 37

• クライアントが接続および認証を行う時間を制限

• SQLNET.INBOUND_CONNECT_TIMEOUT– データベース・サーバー・プロセスのタイムアウトを制御

• INBOUND_CONNECT_TIMEOUT_リスナー名

– リスナーのタイムアウトを制御

• デフォルトで60秒に設定され有効化

• クライアント側タイムアウトには依存しない

構成場所

サーバー:sqlnet.oralistener.ora

Page 38: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

無効な接続の検出

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 38

• クライアント・ノードの停止を検出するために、サーバーによって使用

– sqlnet.expire_timeを使用して有効化

• レガシーDCD機能はOracle Netプローブ・パケットを使用

– TCP送信障害に依存

– 低速でオーバーヘッドが多い

• 新たなDCD(12c)– TCPキープアライブに依存

– 無効なクライアントを効率的に検出

– プローブ・バッファリングやバッファ超過の問題を回避

– バージョンの古いクライアントとの下位互換性を維持

構成場所

サーバー:sqlnet.ora

Page 39: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

Database Serverのセキュリティ

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 39

TCP有効ノード・チェック

• TCP Invited Nodesを使用

– 接続を許可されたIPまたはホスト名のリスト

• TCP Excluded Nodesを使用

– 接続を許可されないIPまたはホスト名のリスト

• 構成を容易にするために、可能な限りCIDR表記法とワイルドカード形式を使用

• Invited NodesはExcluded Nodesよりも優先

• 有効にするには、以下のように設定

TCP.VALIDNODE_CHECKING = YESTCP.INVITED_NODES = (hostname1, hostname2)TCP.EXCLUDED_NODES = (hostname3, hostname4) 構成場所

サーバー:sqlnet.ora

Page 40: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

追加情報

search.oracle.com

またはoracle.com/technetwork/database/enterprise-edition/index-098579.html

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 40

Oracle Net Services製品の概要

Page 41: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加

免責条項

Copyright © 2017, Oracle and/or its affiliates.All rights reserved. | 41

前述の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。マテリアルやコード、機能の提供をコミットメント(確約)するものではなく、購買を決定する際の判断材料になさらないで下さい。オラクルの製品に関して記載されている機能の開発、リリース、および時期については、弊社の裁量により決定されます。

Page 42: Oracle Net Services 12c › technetwork › jp › database › ...• 最適なSDUはアプリケーションごとに異なる • SDUをクライアントとサーバーの両方で増加