Database
Oracle Database技術INDEX
TimesTen In-Memory Database
このドキュメントでは、Oracle TimesTen In-Memory Database製品に関するFAQ(よくある質問)とその回答を示します。
Oracle TimesTen In-Memory Databaseはメモリ上に最適化されたリレーショナル・データベースであり、通信事業者、金融サービス、Webアプリケーション、旅行・物流、ゲームなど、今日のリアルタイムの企業や業界に求められる迅速な応答性と非常に高いスループットを提供します。組込みデータベースまたはスタンドアロン・データベースとしてアプリケーション層に配置されるOracle TimesTen In-Memory Databaseは、標準的なSQLインタフェースを使用した、物理メモリ内に完全に収まるデータベース上で稼働します。内蔵されたレプリケーション・テクノロジーによって、TimesTenデータベース間でのリアルタイム・トランザクション・レプリケーションが可能になるため、高可用性とロード分散が実現します。
Oracle TimesTen Application-Tier Database Cache(TimesTen Cache)は、Oracleデータベースのオプションであり、Oracle Databaseにリアルタイムの読取り/書込みキャッシュを提供します。Oracle TimesTen Application-Tier Database Cacheを使用して、パフォーマンス・クリティカルな表と表の断片のサブセットをOracleデータベースからアプリケーション層にキャッシュすることで、アプリケーション・トランザクションのレスポンス時間が向上します。Oracle TimesTen In-Memory Database内のキャッシュ表は、通常のリレーショナル・データベース表と同様に管理されます。そのため、Oracle TimesTen Application-Tier Database Cacheにより、アプリケーションは、リレーショナル・データベースの完全な普遍性と機能性、Oracle Databaseとの整合性が確保されたキャッシュの透過的なメンテナンス、インメモリ・データベースのリアルタイムのパフォーマンスを手にします。このOracle Databaseオプションは、アプリケーション層での応答時間の向上を目的として、パフォーマンスクリティカルなOracleデータベースのサブセットをキャッシングするために理想的な製品です。高可用性を実現するために、Oracle TimesTen Application-Tier Database Cacheはアクティブ-スタンバイ構成を使用してデプロイすることができます。この構成により、Oracle TimesTenデータベース間でキャッシュ表がリアルタイムにレプリケートされます。
Oracle TimesTenデータベースは、管理対象データすべてが物理メモリ(RAM)内に格納されることを前提として構築されています。このため、ハードウェアに関して考慮すべきもっとも重要な点は、十分なRAMの空き容量がアプリケーション層にあることです。それ以外は、TimesTenにはハードウェア上の考慮事項はほとんどありません。多くのアプリケーションと同様、可能な限りアプリケーションの実行速度を上げるには、(適切なクロック速度で稼働する)CPUを適切な数だけ用意することが重要となります。同様に、複数のCPUを活用するには、複数のアプリケーションを実行するか、またはマルチスレッドを使用するアプリケーションを作成する必要があります。また、トランザクション・ログとチェックポイント・ファイルはディスク上に保存されるため、ディスクが高速であるほど、全体的なパフォーマンスが向上します。
Oracle TimesTen Application-Tier Database Cacheはアプリケーション層に常駐し、SQL*Netを使用してOracleデータベースと通信します。Oracleデータベースと接続するために、TimesTen CacheとともにOracle Database Instant Clientがインストールされます。
データベース・サイズは、サーバーに含まれる物理RAMの容量によって制限されます。32ビットのプラットフォームは32ビットのアドレス空間によって制限されるため、データベース・サイズは2 GB未満となり、プラットフォームによってはそれ以下となります。64ビットのプラットフォームの場合、マシンの物理メモリの容量以外に制限はありません。顧客事例では、1 GB(ギガバイト)から2 TB(テラバイト)までのサイズを持つデータベースが配置されています。
Oracle TimesTen Application-Tier Database Cacheは、Oracle Database 12cおよび11gのデータベース・オプションです。 TimesTen In-Memory Databaseが含まれており、TimesTenをインメモリ・キャッシュ・データベースとしてデプロイし、TimesTenとOracle Database間でデータを自動的に同期できるようにするキャッシュ・テクノロジーが利用されます。
Oracle TimesTen In-Memory Databaseは個別にライセンス供与されている製品であり、TimesTenインメモリ・データベースとレプリケーション・コンポーネントを含んでいます。
| 次のプラットフォームがサポートされています。 | |
|
|
Oracle TimesTen Application-Tier Database Cacheオプションは、Oracle Database 12c、Oracle Database 11g Release 2、およびOracle Database 11g Release 1をサポートしています。
TimesTenは認証、認可、ナンバー・ポータビリティ、オンライン課金および請求、仲介、コールセンターなど、多数の通信業界のアプリケーションで使用されています。また、証券取引、株取引、不正検出、コンプライアンス、オンライン・バンキング、債券価格設定などの金融アプリケーションでも使用されています。その他のアプリケーションには、ゲーム、CRMシステム、航空会社の予約システム、旅行・物流、顧客対応アプリケーション、防衛アプリケーションなどがあります。
さらに、Oracle TimesTenは、“思考速度”でOLAP分析を行うOracle Exalytics In-Memory Machineや、リアルタイム請求を行うOracle Billing and Revenue ManagementアプリケーションなどのOracleアプリケーションの中核にもなっています。
TimesTenとCoherenceは、いずれもアプリケーション層で実行され、メイン・メモリをベースとしています。Coherenceは分散されたインメモリ・オブジェクト・ストアであり、get/put APIを使用して、シリアライズされたオブジェクトを格納および取得するために使用されます。
TimesTenはディスクへの永続性と標準トランザクション・セマンティクスを備えたインメモリのリレーショナル・データベースであり、SQLを介してアクセスされます。Oracle Databaseに対するキャッシュとして使用されると、TimesTenはOracle Databaseとの間で自動的にデータを同期します。分散キャッシュによって、アプリケーションに対して1つのイメージが提示され、位置の透過性と分散並行性制御が実現されます。
Oracle RACを基盤とするExadataは、非常にスケーラブルなシステムであり、Exadataを使用すると、他に例を見ない水準までデータベース・スループットを向上させることができます。
TimesTenの優れた価値は、アプリケーション層で極めて短いレスポンス時間を実現できる能力にあります。最適なパフォーマンスを実現するために、TimesTenはアプリケーションに組み込まれており、SQLリクエストに対して数マイクロ秒でレスポンスを返します。これは、電話転送、認証および認可、リアルタイム請求、証券取引、不正検出、オンライン・バンキングなど、即座の応答を必要とするリアルタイム・アプリケーションにとって不可欠な能力です。
OTNには、TimesTen In-Memory Databaseディスカッション・フォーラムがあります。TimesTen製品に関する質問は、こちらに投稿してください。
はい、できます。Oracle TimesTen In-Memory Database(TimesTen)は、現在多くの顧客によってアプリケーション層のスタンドアロン・データベースとして使用されています。TimesTenはSQL操作に対するトランザクションを完全にサポートしており、トランザクション・ログはリカバリ用にディスクへ保存されます(データベースは常にメモリに常駐)。
はい、できます。これはOracleデータベースのオプションである'Oracle TimesTen Application-Tier Database Cache'にあたります。このデータベース・オプションには、TimesTen In-Memory Databaseが含まれており、TimesTenをインメモリ・キャッシュ・データベースとしてデプロイし、TimesTenとOracleデータベース間でデータを自動的に同期できるようにするキャッシュ・テクノロジーが利用されます。
TimesTen In-Memory Databaseは標準のODBCインタフェースおよびJDBCインタフェースに加えて、アプリケーションからのデータベース接続向けにSQL-92標準を使用したOracle Call InterfaceとADO.NETをサポートしています。
いいえ。アプリケーション・インタフェースは32ビットおよび64ビットのアプリケーションで同じです。64ビット・モードを活用するには、アプリケーションを64ビット・モードで再コンパイルして、TimesTenの64ビット・ライブラリへリンクする必要があります。
アプリケーションの開発には、Java、.NET、C、C++、Pro*CおよびPL/SQLを使用できます。サンプル・プログラムについては、Oracle TimesTen In-Memory Databaseクイック・スタート・ガイドを参照してください。
Oracle TimesTen In-Memory Databaseは、アプリケーション層で稼働するように設計および最適化されています。最適なパフォーマンスを実現するため、データベースをアプリケーションに直接リンクする(組み込む)ことができます。アプリケーションにTimesTenデータベースを組み込んだ場合、SQLアクセス時にネットワークまたはIPCのオーバーヘッドが発生しなくなります。TimesTenは、'組込みモード'で実行されていても、完全なマルチプロセス/マルチスレッド・アクセスと並行性制御を実現します。
はい、Oracle TimesTen In-Memory Databaseは索引をサポートしています。この索引は、Oracleデータベースの場合とまったく同様にデータベースへの問合せパフォーマンスを向上します。TimesTenは、3種類の索引をサポートしています。範囲索引は、等価範囲および非等価範囲を含む検索に使用されます。ハッシュ索引は、完全一致検索と等価結合に対しては範囲索引よりも高速な主キーおよび等価アクセスを実現します。ビットマップ索引は、一意の値を数多くは含まない列や同時DMLトランザクション・レベルが低い場合に適しています。
TimesTen In-Memory DatabaseはSQL標準をサポートしています。データ構造を作成するには、SQL DDL文を使用します(例:CREATE TABLE、CREATE INDEX、CREATE SEQUENCE、CREATE VIEW、CREATE MATERIALIZED VIEW、CREATE PACKAGE、CREATE PROCEDURE、CREATE FUNCTION、CREATE SYNONYM、ALTER TABLE)。RDBMSで使用されるデータベース設計技術をTimesTenでも使用できます。TimesTenでのデータベース設計および管理は、表のエクステントの容量を計算したり、ディスクのデフラグを実行したりする必要がないため、ディスク上に最適化されたRDBMSよりも簡単です。
データベース自体はメモリ内に常駐しますが、TimesTenのトランザクション・ログ・ファイルとチェックポイント・ファイルはディスク上に保存されています。システムの再起動や障害が発生すると、TimesTen In-Memory Databaseはチェックポイント・ファイルおよびトランザクション・ログ・ファイルから復旧されます。さらに、Oracle TimesTenレプリケーションを構成することで、高可用性を提供できます。
TimesTen Cacheは、Oracle Database 12c 、Oracle Database 11g Release 2、およびOracle Database 11g Release 1をサポートしています。
TimesTen Cacheは、Oracleデータベース・サーバーに対するクライアント・アプリケーションとして稼働します。TimesTen Cacheは、TimesTen In-Memory Databaseと同じプラットフォームをサポートしています。詳しくは、Oracle TimesTenテクノロジーがサポートされるプラットフォームを教えてくださいを参照してください。
はい。TimesTen CacheはOracleクライアントとして稼働するため、Oracleデータベース・サーバーとは異なるプラットフォーム上で実行できます。名前(Application-Tier Database Cache)からもお分かりのように、TimesTen Cacheは通常、アプリケーション層に常駐します。一方、Oracle Databaseはデータベース層に存在します。
TimesTenキャッシュの対象とすべきパフォーマンス・クリティカル・データのサイズは、アプリケーションの性質によって異なります。データベース全体をキャッシングする代わりに、データベース表、列、行のサブセットをTimesTenにキャッシングできます。また、動的キャッシュを定義する方法もあります。この場合、Oracle表のデータがオンデマンドでTimesTenにロードされます。
TimesTenレプリケーションは、TimesTen In-Memory DatabaseとTimesTen Application-Tier Database Cacheのコンポーネントです。TimesTenレプリケーション・テクノロジーは、TimesTenサーバー・ノード間でリアルタイムのデータ・レプリケーションを可能にします。高可用性アーキテクチャやディザスタ・リカバリ・サイトを構築したり、複数ノード間でデータを分散したりするために使用されます。TimesTenレプリケーションは、同期式または非同期式のデータ送信を使用したアクティブ/スタンバイ構成またはアクティブ/アクティブ構成をサポートします。詳しくは、OverviewページにあるTimesTen In-Memory Databaseデータシートを参照してください。
TimesTenレプリケーションでは、TimesTenデータベース全体を1つまたは複数のTimesTenノードにレプリケートするよう構成できます。障害が発生してスタンバイ・ノードがアクティブ・ノードになった後で、障害ノードをスタンバイ(現アクティブ)データベースから復旧できます。
はい。表レベルのレプリケーションとデータベース・レベルのレプリケーションの両方がサポートされています。
TimesTenレプリケーションは、LANまたはWANを使用したレプリケート・ノード間で永続性のあるTCP/IPストリーム・ソケットを使用します。
はい。一方向レプリケーションおよび双方向レプリケーションがサポートされています。双方向レプリケーションでは、多数の競合が発生するのを避けるために、ワークロードをパーティション化することが推奨されます。同じデータベース行に対して更新が行われる競合時には、TimesTenレプリケーションでは、タイムスタンプベースの競合検出と競合解決がサポートされます。