前回は災害対策サイトの構築と管理に代表される、データベース環境の複製とその管理に関連する機能を紹介した。今回は、サイト内の耐障害性と、ストレージ管理、およびクラスターの拡張性に関する機能について見ていく。

ストレージ管理機能:Oracle Flex ASM

 まず、Oracle Database 12cが新たに搭載した機能である「Oracle Flex ASM」について解説する。

 Oracleデータベースが備えるストレージ管理機能としてはOracle Automatic Storage Management(ASM)がある。これはオラクル推奨のストレージ管理ソフトウエアで、Oracle Database 10gから提供されているものだ。Oracle Database 11g Release 2以降は、Oracleデータベース向けソフトウエア群「Oracle Grid Infrastructure」の一つとして位置づけられている。

 Oracle ASMはボリューム・マネージャとクラスター・ファイル・システムという二つの機能を備えており、Oracleデータベースの物理的なデータ格納先(※)として選択できる。Oracle ASMを使用することでディスクがストライピングされるため、ホットスポットの発生を回避することができ、それによって処理性能とディスク使用率を最適に保つことができる。さらに、ミラーリングにより冗長性が確保され、動的なデータの再配置ができるため、大規模システムでも処理性能と可用性が確保しやすくなる。運用面のメリットとしては特に、ストレージの追加などの管理作業が簡素化されることが挙げられる。

※旧来のバージョンでは、「データベース記憶域」として、ファイル・システム、RAWデバイス、加えてOracle Database 10g以降の場合はOracle ASMが選択可能だった。Oracle Database 12c以降では、RAWデバイスの使用はサポートされていない。
図1●ASMインスタンスとDBインスタンスの関係
図1●ASMインスタンスとDBインスタンスの関係
[画像のクリックで拡大表示]

 Oracle ASMは、実際にシステムに必要なデータを搭載したOracleデータベースとは独立したインスタンスを持ち、ストレージ管理を実施する。ASMインスタンスを立てる形式はいくつか考えられるので、例を挙げて見ていこう。

 まず、複数のOracleデータベースが1ノードで稼働する場合は、一つのOracle ASMインスタンスが複数のOracleデータベースインスタンスによって共有される形式を取る。また、Oracle Real Application Cluster(RAC)などを利用したクラスター環境では、Oracleデータベースのインスタンスが稼働する全てのノードでOracle ASMのインスタンスを稼働させる。

 ここで一つ課題が生じる。Oracle ASMを使うことでディスクの管理性と効率性が高まるものの、何らかの理由でOracle ASMインスタンスに障害が発生しダウンしてしまった場合、同じノード上のデータベースインスタンスもダウンしてしまう。