「データベースへの接続の仕組み」を正しく理解する:ゼロからのリレーショナルデータベース入門(8)(2/2 ページ)
企業の成長に不可欠な「データ活用」を推進していくために必要なデータベースシステム/データ基盤の基礎を“あらためて”解説していきます。今回は、「データベースへの接続方法とその仕組み」を解説します。【更新版】
Oracle Real Application Clusters(RAC)インスタンスへの接続
続いて、「クラスタ構成」となるOracle Real Application Clusters(以下、RAC)環境での接続を説明します。
第7回「ゼロから理解する『Oracle RAC』」で解説した通り、RAC環境では複数のOracleインスタンスが稼働しています。そのために考慮すべきポイントが2つあります。それは、「接続時フェイルオーバー」と「ロードバランス」です。
接続時フェイルオーバーは、障害などでダウンしたインスタンスに接続しないようにする対処のこと。ロードバランスは、各インスタンスへの負荷(接続数や処理数)がなるべく均等になるようにする対処のことです。
これらの機能を実装するために、RAC環境では「SCANリスナー」と呼ばれる機能が存在します。SCANリスナーを使った接続の流れは以下の通りです(図4)。
RAC環境では、Oracleのプロセスによって各インスタンスの情報(稼働状況やパフォーマンス情報)がSCANリスナーに伝えられます。クライアントは「tnsnames.ora」ファイルでSCANリスナーへの接続を指定し、負荷の少ない稼働インスタンスのリスナープロセスへ誘導してもらう仕組みになっています(図5)。SCANリスナーの名前や稼働場所は、Oracle Clusterwareのインストール作業時に設定しておきます。
ワンポイント
- SCANリスナーを使わずにリスナープロセスへ直接接続することも可能です。しかしその場合は「tnsnames.ora」ファイルに全インスタンスの情報を記述しておく必要があります。
- SCANリスナーはOracle Database 11g R2からの新機能です。
接続の可用性を保持する機能
前述した通り、RAC環境ではSCANリスナーを使うことで「接続時」に稼働しているインスタンスへ接続できます。しかし、「接続後」に障害などでそのインスタンスがダウンしてしまったら、再接続の作業が必要になります。つまり、サービスが止まってしまうことになります。そもそも可用性を高めるためにRAC環境を構築しているのですから、仮に接続中のインスタンスに障害が発生したとしても、自動でその他のインスタンスに切り替えてサービスを継続させたいものです。
この対処には、「透過的アプリケーション・フェイルオーバー(TAF)」や「アプリケーション・コンティニュイティ(AC)」と呼ばれる機能で実現できます。TAFは、障害発生時にアプリケーションへ通知を戻すことで、自動的に待機ノードへ接続を切り替える機能です。接続を切り替えた後、処理中であったSELECT処理を待機ノードで継続できる仕組みとなっています。一方のACはOracle Database 12cからの新機能で、障害発生時に待機ノードで中断したトランザクションを再実行する機能です。
運用・開発の担当を問わず、接続の仕組みと基礎は理解しておく
データベースの利用には、「まず接続すること」から始まります。運用・開発の担当を問わず、データベースへの接続の仕組みはきちんと理解するようにしましょう。
また、アプリケーションの処理中に接続が切断されてしまうと、どこまで処理が完了したのかを確認し、把握した上で処理を再実行する必要があり、サービスの再開はより困難になります。そのため、接続障害への耐性を高めるTAFやACという機能が存在することだけでもまずは把握しておくようにしてください。
更新履歴
【2017/6/15】2017年時点の状況に合わせて、内容を追記更新しました
【2009/5/28】初版公開
筆者紹介
坂田素道
株式会社アシスト データベース技術本部所属。Oracle研修の講師として、リカバリーやチューニングなどの研修を幅広く担当
初版:伊藤佳
株式会社アシスト 東日本顧客支援室(当時)。Oracle Databaseのフィールドエンジニアとして営業支援、構築支援、フィールドサポートなどを担当
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部) - RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局) - NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)