oracle rdb: client connectivity for oracle · pdf file– oracle reports. 17 oci ......
TRANSCRIPT
Oracle Rdbでのクライアント接続機能
浅野哲Oracle Rdb Engineering
エンジニアリング
東京 2006年 4月 3日大阪 2006年 4月 5日
©2005-2006, Oracle Corporation
Day1-4
2
クライアント接続機能
• Rdbに対するクライアント接続について
…Oracle SQL/Servicesfor Rdb
3
SQL/Servicesの歴史
• 1992:最初のリリース– SQL/ServicesクライアントAPIの実装– ODBC for Oracle Rdbドライバの実装。これにより、業界標準
ODBCアプリケーションはバックエンドのRdbを使用可能になる
• 1994:SQL/Servicesをオラクルが買収• 1995: RMUクライアント/サーバ機能の追加
4
SQL/Servicesの歴史
• 1996:OCI (Oracle Call Interface)サポートの実装– 現在、OCIアプリケーションをRdbデータベースに対してほぼ透過的に実行可能
– 新しく登場する業界標準に対応して、互換性のあるOCIドライバ(JDBCや.NETなど)を提供し、バックエンドのOracleデータベースやRdbデータベースと連携
• 2003: Oracle Rdb JDBCサーバ・マネジメントの追加
5
SQL/Servicesアーキテクチャクライアント サーバ
デスクトップ・システム
クライアント・アプリケーション
Monitor構成ファイル
Dispatcher
SQLSRV ServiceRMU Service
OCI Service
ExecutorSQLSRV_MANAGE
SQL/Services Manager GUI
Rdbデータベース
6
SQL/Servicesプロトコル
• SQLSRV – ODBCやSQL/ServicesクライアントAPIをベースにするアプリケーションが使用
• OCI – OCI (Oracle Call Interface)プロトコルで通信するOracleアプリケーションが使用
• RMU –パラレル・バックアップやリモートコマンド実行で、Oracle Rdb RMUユーティリティが使用
• JDBC – JDBC for Oracle Rdb Thinサーバの起動と停止に使用
7
SQLSRVクライアント・アーキテクチャ
SQL/ServicesクライアントAPIを直接使用するクライアント
ODBC for Oracle Rdbを使用するクライアント
クライアントアプリケーション
SQL/ServicesクライアントAPI
サーバクライアントアプリケーション
ODBC forOracle Rdb
SQL/ServicesクライアントAPI
8
SQLSRVクライアント
• SQL/ServicesクライアントAPI– Windows、Tru64 UNIX、OpenVMS、Red Hat Linux、
HP-UX(開発中)で提供Red Hat Linux (V2.1以降)は、Oracle SQL/Services release 7.1.6向けの新しいプラットフォームHP-UXは開発中、HP-UX 11i v2以降
– クライアント・アプリケーションのコールによるSQL/Services関数へのアクセスを可能にするルーチン・ライブラリを提供
– クライアント・アプリケーションは、Oracle RdbのDynamic SQL文をRdbデータベースに対して実行可能になる
9
SQLSRVクライアント
• ODBC for Oracle Rdb– クライアントAPI上で、Rdbへの業界標準ODBCアクセスを提供
– 現在のバージョンは3.1.0.2– 旧バージョンの機能を大幅に拡張
パフォーマンスを向上
ODBC仕様への準拠を強化新しいAPIコールとプリフェッチ機能
10
SQLSRVクライアント
• ODBC for Oracle Rdb (続き)– すべてのODBC互換アプリケーションで機能
ADO、ブリッジ経由の.NETベンダ各社が、ソフトウェア開発、オフィス生産性、データ分析などの分野でODBC互換アプリケーションをリリース
– 各種データベースへの移植が可能
– 3.5.2へのアップグレードを予定
11
SQLSRVサーバ・アーキテクチャ
クライアント
SQLSRV_MONモニタ
SQLSRV_DISPディスパッチャ
SQLSRV_EXECエグゼキュータ
Rdbデータベース
12
SQLSRVサーバ
• モニタ (SQLSRV_MON)– サーバの全体的なマネジメントと制御を実行
• ディスパッチャ (SQLSRV_DISP)– クライアントのネットワーク通信の処理と、サーバのエグゼキュータに対するクライアント要求のルーティングおよびスケジューリングを実行
– 通常は、1つのディスパッチャが複数のネットワーク・プロトコルをサポートするが、サポート可能なのは1つのプロトコルのみ
• エグゼキュータ (SQLSRV_EXEC)– ディスパッチャからのクライアント要求を受信し、処理して結果を返す
– サーバごとにエグゼキュータ・プロセスのプールがある
13
OCIクライアント・アーキテクチャ
クライアント
サーバ
OCIクライアントアプリケーション
Oracle Net
14
OCIサーバ・アーキテクチャ
クライアント SQLSRV_SQLNETSHR
(Oracle RDBMSライブラリ)
Rdbデータース
SQLSRV_MONOCI_DISPディスパッチャ
SQLSRV_NATCONN
RDB$NATCONN(OCI Services)
15
OCIプロトコル
• Oracleデータディクショナリのエミュレーションにより、RdbデータベースのOracle RDBMSビューを提示
• Oracleカーソルを管理• OracleからRdbデータタイプへの変換を管理• Oracle RDBMS埋め込み関数のエミュレーションを行う関数を提供
16
OCIプロトコル
• OCIを使用する製品…– Oracle JDBC– Oracle ODBC– Oracleデータベースリンク– Oracle Data Provider for .NET– Oracle Reports
17
OCIプロトコル
• OCIを使用する製品…– Oracle JDeveloper– Oracle Forms– Oracle Designer– Oracle Developer– Oracle SQLPLUSユーティリティ– 他にも多数…
18
OCIプロトコルJavaからの接続
19
RMUプロトコル・アーキテクチャ
クライアント
RMUコマンドライン
ユーティリティ
SQLSRV_MONRMU_DISPディスパッチャ
RMUEXEC
RMUSHR
Rdbデータベース
サーバクライアント
20
RMUプロトコル
• RMU/BACKUP/PARALLEL– BACKUPコマンドは、RMUクライアントからSQL/Services経由でサーバノードに送信され、RMU Executorがバックアップを実行
– 各RMU Executorプロセスは、複数のバックアップ・スレッドで実行可能
• RMUコマンドのリモート実行– ユーザーが指定した論理定義に基いて、RMUコマンドをリモート実行
21
SQL/ServicesのマネジメントSQLSRVコマンドライン
22
SQL/ServicesのマネジメントGUIベースのマネージャ
23
SQL/ServicesのマネジメントEnterprise Manager 10g
24
SQL/Services 7.1.6
• 2005年6月に製品化• 主要機能
– アップグレードによりOracle 9.2.0.4ライブラリを使用– 2pcのサポート– 新しいユーティリティの追加と既存ユーティリティの更新
– パフォーマンスの向上
– Linux向けSQL/ServicesクライアントAPIRed Hat Enterprise Linux V2.1以降
25
SQL/Services 7.1.6Oracle 9.2.0.4へのアップグレード
• アップグレードしたOCI Services• 新しいOracle 9iデータ型のサポート
– TIMESTAMP、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECONDなど
• Oracle 9iからの接続時の制約をいくつか削除
26
SQL/Services 7.1.62pcのサポート
• 現在、Oracle Rdbデータベースは、Oracle RDBMSで管理している分散トランザクションに完全に参加可能
• Rdbデータベースに対する複数のOracle Server DBLINKは、トランザクションに参加可能
• DECdtm XA Gatewayを使って、Oracle分散トランザクション・プロトコルとDECdtm分散トランザクション・プロトコルのインタフェースを提供
27
SQL/Services 7.1.6ユーティリティ
• RDB$NATCONN_DICユーティリティ– 7.1.6の新しいユーティリティ
旧バージョンで必要だった.SQLスクリプトの使用を置き換える
– Rdbデータベースにおいて、データベースの準備、アップグレード、Oracleデータ・ディクショナリ定義の削除を行うことにより、OCIアクセスを可能にする
– OCI Servicesの旧バージョンからのアップグレードが可能(暫定的なアップグレードは不要)
– SYS$LIBRARY:RDB_NATCONN.COMで起動
28
SQL/Services 7.1.6ユーティリティ
• RDB$NATCONN_CUPPユーティリティ– 7.1.6で更新されたユーティリティ
ユーザーを追加するRDB_NATCONNプロシージャを置き換え– OCIアクセスが許可されたユーザーの追加、変更、削除、表示に使用ほとんどのOCIアプリケーションでは、アプリケーションを実行するには、ユーザーをデータベースで定義する必要がある
– SYS$LIBRARY:RDB_NATCONN.COMで起動
• 新しいユーザーはOEM Consoleで表示可能
29
SQL/Services 7.1.6パフォーマンスの向上
• SQLSRV_SQLNETSHR71.EXE– Oracle SQLNETとOCIの両方のライブラリをインクルード– 共有可能なので、メモリ使用量を節約し、パフォーマンスを向上
– Oracle OCIライブラリは、OCI Servicesイメージに組み込まれていない:各イメージのサイズは7.1.5.9.1よりも最大9,000ブロック小さい
– その結果、OCIエグゼキュータプロセスの実行でフットプリントが小さくなる
30
SQL/Services 7.1.6パフォーマンスの向上
• OCI Servicesのメタデータ・クエリーを効率化– クエリーの実行時に毎回準備するのではなく、最初の使用時に1度だけ準備するだけで何度も実行できる
• SQL/Servicesによる共有メモリの使用を効率化することで、メモリーリークを解消
31
SQL/Services 7.1.6その他の新機能
• LISTENER.ORAファイルが存在しない場合、インストール時に自動生成
• プログラム機能を検証し、ユーザー指定のプログラムによるアクセスを制限
• JDBC Dispatcher、JDBC for Oracle Rdb Thinサーバの起動と停止
• OCI Servicesバグチェック・ダンプ機能• ドキュメントの更新と再編成
– インストール・ガイド– 構成ガイド– リリースノート
32
SQL/Services 7.2
• 2006年1月に製品化• 主な特徴
– ItaniumのサポートOpen VMS 8.2-1以降 (Itanium)Open VMS 8.2以降 (Alpha)
33
SQL/Services今後の予定
• SQL/Services– サイズの大きな構成ファイルでのパフォーマンスを向上
– 外部認証のサポート
– SYSUAFに対する非対話型のログインについて、SQS使用状況をログに記録
– TCPIPでの"DECNet Proxy"型をサポート
SQL/Servicesサービスにアクセス可能なPCとアプリケーションを制限- SQL/Servicesバグチェックで更に詳細な情報を提供
• SQLSRV_MANAGE– SHOWコマンドの連続実行– COPYコマンド
34
SQL/Services今後の予定
• OCI – Oracle 10gへのアップグレード– Oracle FAILOVER_MODE機能– OCIトランザクションの再利用可能なサービス– VMS外部認証のサポート– 新しいOracleパッケージのサポート– ユーザー定義パッケージ
• SQL/ServicesクライアントAPI– HP-UX向けSQL/Servicesクライアント
• ODBC– ODBC 3.52‒ テスト接続ボタンのサポート‒ ODBCでのクラスタ・フェイルオーバのサポート
35
SQL/Services今後の予定 – EMの次のバージョン
www.oracle.com/rdb