連載
» 2017年06月15日 05時00分 公開

「データベースへの接続の仕組み」を正しく理解するゼロからのリレーショナルデータベース入門(8)(2/2 ページ)

[坂田素道,株式会社アシスト]
前のページへ 1|2       

Oracle Real Application Clusters(RAC)インスタンスへの接続

 続いて、「クラスタ構成」となるOracle Real Application Clusters(以下、RAC)環境での接続を説明します。

 第7回「ゼロから理解する『Oracle RAC』」で解説した通り、RAC環境では複数のOracleインスタンスが稼働しています。そのために考慮すべきポイントが2つあります。それは、「接続時フェイルオーバー」と「ロードバランス」です。

 接続時フェイルオーバーは、障害などでダウンしたインスタンスに接続しないようにする対処のこと。ロードバランスは、各インスタンスへの負荷(接続数や処理数)がなるべく均等になるようにする対処のことです。

 これらの機能を実装するために、RAC環境では「SCANリスナー」と呼ばれる機能が存在します。SCANリスナーを使った接続の流れは以下の通りです(図4)。

photo 図4 SCANリスナーを使ったRAC環境での接続の流れ

 RAC環境では、Oracleのプロセスによって各インスタンスの情報(稼働状況やパフォーマンス情報)がSCANリスナーに伝えられます。クライアントは「tnsnames.ora」ファイルでSCANリスナーへの接続を指定し、負荷の少ない稼働インスタンスのリスナープロセスへ誘導してもらう仕組みになっています(図5)。SCANリスナーの名前や稼働場所は、Oracle Clusterwareのインストール作業時に設定しておきます。

photo 図5 RAC環境では、「tnsnames.ora」にSCANリスナー名を指定する

ワンポイント

  • SCANリスナーを使わずにリスナープロセスへ直接接続することも可能です。しかしその場合は「tnsnames.ora」ファイルに全インスタンスの情報を記述しておく必要があります。
  • SCANリスナーはOracle Database 11g R2からの新機能です。

接続の可用性を保持する機能

 前述した通り、RAC環境ではSCANリスナーを使うことで「接続時」に稼働しているインスタンスへ接続できます。しかし、「接続後」に障害などでそのインスタンスがダウンしてしまったら、再接続の作業が必要になります。つまり、サービスが止まってしまうことになります。そもそも可用性を高めるためにRAC環境を構築しているのですから、仮に接続中のインスタンスに障害が発生したとしても、自動でその他のインスタンスに切り替えてサービスを継続させたいものです。

 この対処には、「透過的アプリケーション・フェイルオーバー(TAF)」や「アプリケーション・コンティニュイティ(AC)」と呼ばれる機能で実現できます。TAFは、障害発生時にアプリケーションへ通知を戻すことで、自動的に待機ノードへ接続を切り替える機能です。接続を切り替えた後、処理中であったSELECT処理を待機ノードで継続できる仕組みとなっています。一方のACはOracle Database 12cからの新機能で、障害発生時に待機ノードで中断したトランザクションを再実行する機能です。

運用・開発の担当を問わず、接続の仕組みと基礎は理解しておく

 データベースの利用には、「まず接続すること」から始まります。運用・開発の担当を問わず、データベースへの接続の仕組みはきちんと理解するようにしましょう。

 また、アプリケーションの処理中に接続が切断されてしまうと、どこまで処理が完了したのかを確認し、把握した上で処理を再実行する必要があり、サービスの再開はより困難になります。そのため、接続障害への耐性を高めるTAFACという機能が存在することだけでもまずは把握しておくようにしてください。

更新履歴

【2017/6/15】2017年時点の状況に合わせて、内容を追記更新しました

【2009/5/28】初版公開


筆者紹介

坂田素道

株式会社アシスト データベース技術本部所属。Oracle研修の講師として、リカバリーやチューニングなどの研修を幅広く担当

初版:伊藤佳

株式会社アシスト 東日本顧客支援室(当時)。Oracle Databaseのフィールドエンジニアとして営業支援、構築支援、フィールドサポートなどを担当


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。