実践!!高可用性システム構築~RAC基本編~ - Oracle

実践!!高可用性システム構築~RAC基本編~
日本オラクル株式会社 基盤技術部
エンジニア 王小芬
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは
できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン
ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ
い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい
ては、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved.
2
Agenda
• データベース・サーバーに求められるもの
• RACのアーキテクチャ
• RACのスケーラビリティ
• RACの高可用性
• まとめ
Copyright© 2011, Oracle. All rights reserved.
3
データベース・サーバーに求められるもの
• Active-Standby構成
• Oracle Real Application Clustersとは
• RACの特長
Copyright© 2011, Oracle. All rights reserved.
データベース・サーバーに求められるもの
データベース・サーバーに求められるものとは??
サーバー障害時の
ダウンタイムを短くしたい
可用性
処理できるアクセス・
ユーザー数を増やしたい
スケーラビリティ
サーバー障害時も
トランザクションの一貫性
を維持したい
大量データ検索実行の
並列度を上げたい
Copyright© 2011, Oracle. All rights reserved.
5
Active-Standby構成の可用性
• Active-Standby構成は、障害時にstandby機に切りかえるしくみ
• シングル・インスタンスに比べ、高可用性を実現
シングル・インスタンス
Active-Standby構成
Oracle
Instance
Oracle
Instance
Oracle
Instance
障害
ACTIVE
障害
ACTIVE
STANDBY
Copyright© 2011, Oracle. All rights reserved.
6
Active-Standby構成のスケーラビリティ
• Active-Standby構成は、スケールアップによる性能向上
•
1サーバー内でのCPUコア増設
Copyright© 2011, Oracle. All rights reserved.
7
Active-Standby構成の課題
• Active-Standby構成は、スケールアップによる性能向上
•
1サーバー内でのCPUコア増設
スケールアップによる性能向上には課題がある
•
•
1サーバー内のCPUコア搭載数に上限あり
多くのCPUコアを搭載できる大型のマシンをあらかじめ用意する必要あり
Copyright© 2011, Oracle. All rights reserved.
8
Oracle Real Application Clustersとは
• Oracle Real Application Clusters(RAC)は、全ノードがアクティブな、
共有ディスク・共有キャッシュ型のクラスタ・データベース
• 全ノードがデータベースの全データにアクセス可能
ACTIVE
ノード
Oracle
Instance
ACTIVE
Oracle
Instance
ACTIVE
障害
ACTIVE
Oracle
Instance
Oracle
Instance
共有ストレージ
• 特長:
• ノードの追加による性能向上
• 障害ノードを切り離してシステムを継続
Copyright© 2011, Oracle. All rights reserved.
9
性能を向上させる2つのアプローチ
•
サーバーの処理性能を高めるためには…
• CPUコアを増設して同時実行性を向上
• CPUコアを増設するアプローチは2つ:スケールアップ / スケールアウト
スケールアウト
スケールアップ
process process
process process
process
process
サーバーにCPUを増設
process
process
process
process
ノードを追加してCPUを増設
Copyright© 2011, Oracle. All rights reserved.
10
RACのスケーラビリティ
RACの特長
• RACは、全ノードがデータベースの全データにアクセスでき、
Active-Activeの構成をとることが可能
• RACは、ノード追加によるスケールアウトで性能向上
process
process
Oracle
Instance
5.7
process
process
Oracle
Instance
process
process
Oracle
Instance
Copyright© 2011, Oracle. All rights reserved.
11
RACの可用性
RACの特長
データベース・
インスタンス起動
Active-Standby構成
•
•
•
•
障害ノードの切り離し
Oracle
ディスク切替え
Instance
データベース・インスタンスの起動
STANDBY
ACTIVE
障害
リカバリ
Oracle
Instance
障害
ACTIVE
ディスクの
切替え
RAC
• 障害ノードの切り離し
Oracle
Instance
Oracle
Instance
ACTIVE
障害
ACTIVE
Oracle
Instance
障害
ACTIVE
• リカバリ
Copyright© 2011, Oracle. All rights reserved.
12
RACの可用性
RACの特長
• RACは障害ノードを自動的に切り離してシステムを継続
• 全ノードが、データベースの全データにアクセスできるため、
ディスク切替え、データベース・インスタンス再起動は不必要
Oracle
Instance
ACTIVE
障害
Oracle
Instance
Oracle
Instance
ACTIVE
ACTIVE
Copyright© 2011, Oracle. All rights reserved.
13
RACのアーキテクチャ
• データベース構造
• ハードウェア構成
• ソフトウェア構成
Copyright© 2011, Oracle. All rights reserved.
シングル・インスタンスのデータベース構造
•
シングル・インスタンスのデータベース構造
• データ表領域
• 制御ファイル
• オンラインREDOログ
• UNDO表領域
tnslsnr
Oracle
Instance
REDO REDO UNDO
データ表領域、制御ファイル
Copyright© 2011, Oracle. All rights reserved.
15
RACのデータベース構造
•
RACのデータベース構造は、基本的にシングル・インスタンスと同様
•
•
全ノードが共有ストレージ上の全データベース・ファイルをオープン
Oracle インスタンスの分だけREDOログとUNDO表領域を追加
Instance 1用
tnslsnr
tnslsnr
Oracle
Instance
Oracle
Instance
Instance 2用
REDO REDO UNDO REDO REDO UNDO
Instance n
Oracle
Instance
Instance 2
Instance 1
tnslsnr
Instance n用
REDO REDO UNDO
データ表領域、制御ファイル
Copyright© 2011, Oracle. All rights reserved.
16
RACのハードウェア構成
• RACを構築するために必要なハードウェア:
• ノード、共有ストレージ、インターコネクト・ネットワーク
Public Network
クライアントとの通信を
行うネットワーク
Interconnect Network
ノード間通信を行うネットワーク
ノード
RACを構成する
データベース・サーバー
共有ストレージ
データベース・ファイルを配置する、
全ノードからアクセス可能なストレージ
Copyright© 2011, Oracle. All rights reserved.
17
RACのソフトウェア構成
• Oracle Database 11g Release 2 でRACを構築するために
必要なソフトウェア:
1. Oracle Grid Infrastructure
2. Oracle Database
Oracle Database
Oracle Grid Infrastructure
Copyright© 2011, Oracle. All rights reserved.
18
RACのソフトウェア構成
•
Oracle Grid Infrastructureは2つのソフトウェアを包含
• Oracle Clusterware:
クラスタ・メンバーシップとプロセスを管理するOracleのソフトウェア
• Oracle Automatic Storage Management (ASM):
ストレージを管理するOracleのソフトウェア
Oracle Database
Oracle Automatic Storage Management
Oracle Clusterware
Copyright© 2011, Oracle. All rights reserved.
Oracle Grid
Infrastructure
19
RACのスケーラビリティ
• RACがスケールアウトする理由
• RACのスケールアウトによる効果
• RACにおけるパラレル・クエリー
Copyright© 2011, Oracle. All rights reserved.
RACのスケーラビリティ
•
RACがスケールアウトする理由
• CPUコア増設による同時実行性の向上
• シングル・インスタンスと同様のデータアクセス方式
•
•
•
シングル・インスタンスと同様の接続方式
どのノードに接続しても同じSQLを実行可能
メモリを基本とするデータアクセス方式
Public Network
process
process
process
process
process
process
Copyright© 2011, Oracle. All rights reserved.
21
シングル・インスタンスと同様の接続方式
•
•
RACはへの接続方法は、基本的にシングル・インスタンスと同様
Oracleクライアントはサービス名を指定して接続
•
サービスは、RACのノードを仮想化
シングル・インスタンス
RAC
$ sqlplus username/[email protected]
hostname:1521/service_1
$ sqlplus username/[email protected]
hostname:1521/service_1
service_1
service_1
Copyright© 2011, Oracle. All rights reserved.
22
どのノードに接続しても同じSQLを実行可能
•
RACでは全ノードがデータベースの全データにアクセスできるため、
どのノードに接続しても同じSQLを実行可能
SQL> select * from sales;
SQL> select * from sales;
Oracleサーバー・プロセス
(SQLの実行主体)
oracle
Oracle
Instance
oracle
service_1
Oracle
Instance
Oracle
Instance
sales表
Copyright© 2011, Oracle. All rights reserved.
23
シングル・インスタンスのデータアクセス方式
•
シングル・インスタンスもRACも、ストレージ (低速) に格納されたデータ・
ブロックをメモリ (高速) にキャッシュして処理を行う
•
•
データ・ブロック:Oracle DatabaseのI/Oの最小単位、メモリの置換単位
バッファ・キャッシュ:物理I/Oを最適化するためにデータ・ブロックのコピーを格納するメモリ領域
CPU
メモリ
Oracleサーバー・プロセス
(SQLの実行主体)
oracle
oracle
Oracle
インスタンス
ストレージ
データ・ブロック
(索引や表の
データを格納)
キャッシュ・ヒット:
• メモリ上のデータ・ブロックを
使用
キャッシュ・ミス:
• ストレージからデータ・
ブロック取得
データベース
Copyright© 2011, Oracle. All rights reserved.
24
RACのデータアクセス方式
キャッシュ・ヒット
•
•
RACもシングル・インスタンス同様、メモリ(高速)を基本とするデータアクセス方式
複数ノードのデータの一貫性を自動的に維持  Cache Fusion
•
キャッシュ・ヒット(ローカル・ノードにデータ・ブロックがキャッシュされている)
• メモリ上のデータ・ブロックを使用
CPU
oracle
oracle
oracle
oracle
SQLを実行
メモリ
ストレージ
Copyright© 2011, Oracle. All rights reserved.
25
RACのデータアクセス方式
キャッシュ・ミス
•
•
キャッシュ・ミス(ローカル・ノードにデータ・ブロックがキャッシュされていない)
• リモート・ノードのメモリ上からデータ・ブロックを転送
• ストレージからデータ・ブロックを取得
データの一貫性は自動的に維持
CPU
oracle
oracle
oracle
oracle
SQLを実行
メモリ
ストレージ
Copyright© 2011, Oracle. All rights reserved.
26
RACのデータアクセス方式
キャッシュ・ミス
•
•
キャッシュ・ミス(ローカル・ノードにデータ・ブロックがキャッシュされていない)
• リモート・ノードのメモリ上からデータ・ブロックを転送
• ストレージからデータ・ブロックを取得
データの一貫性は自動的に維持
CPU
oracle
oracle
oracle
oracle
SQLを実行
メモリ
ストレージ
Copyright© 2011, Oracle. All rights reserved.
27
RACはスケールアウトで性能向上
•
•
CPUコア増設による同時実行性の向上
シングル・インスタンスと同様のデータアクセス方式
•
•
•
シングル・インスタンスと同様の接続方式
どのノードに接続しても同じSQLを実行可能
メモリを基本とするデータアクセス
oracle
oracle
oracle
oracle
oracle
oracle
Copyright© 2011, Oracle. All rights reserved.
28
RACのスケールアウトによる効果
•
RACは、複数ノードのCPUを利用して同時実行性を向上
• 処理できるアクセス・ユーザー数の増加
oracle
oracle
oracle
oracle
oracle
oracle
Copyright© 2011, Oracle. All rights reserved.
29
RACのスケールアウトによる効果
•
RACは、複数ノードのCPUを利用して同時実行性を向上
• 処理できるアクセス・ユーザー数の増加
• 1つのSQL実行における並列度の向上
oracle
PS
PS
Parallel Slave Processes
Copyright© 2011, Oracle. All rights reserved.
30
RACにおけるパラレル・クエリー
•
RACは複数ノードのCPUを利用して、1つのSQL実行における並列度を
上げることが可能
 1つのSQLの実行時間を短縮することが可能
oracle
PS
PS
PS
PS
PS
PS
PS
PS
Copyright© 2011, Oracle. All rights reserved.
31
RACのスケーラビリティまとめ
• RACはスケールアウトで性能向上
• CPUコア増設による同時実行性の向上
• シングル・インスタンスと同様のデータアクセス方式
•
複数ノードのデータの一貫性を自動的に維持
• Cache Fusion
• RACは優れたスケーラビリティを実現
•
•
処理できるアクセス・ユーザー数を増加
1つのSQL実行における並列度の向上
Copyright© 2011, Oracle. All rights reserved.
32
RACの高可用性
• RACのインスタンス・リカバリのしくみ
• Oracle Clusterwareの役割
• RAC高可用性のしくみ
Copyright© 2011, Oracle. All rights reserved.
RACの高可用性
•
•
•

RACは障害ノードを自動的に切り離してシステムを継続
障害ノード以外のノードへの接続は維持
障害発生時も、トランザクションの一貫性を自動的に維持
インスタンス・リカバリ
Oracle
Instance
ACTIVE
障害
Oracle
Instance
Oracle
Instance
ACTIVE
ACTIVE
Copyright© 2011, Oracle. All rights reserved.
34
RACのインスタンス・リカバリのしくみ
•
シングル・インスタンス同様、REDOログを読込みインスタンス・リカバリを行う
• RACでは、正常ノードのデータベース・インスタンスが障害ノードのREDO
ログを読込みインスタンス・リカバリを行う
シングル・インスタンス
RAC
Instance 3
Instance 2
Instance 1
REDO
REDO
REDO
REDO
REDO
REDO
REDO
REDO
UNDO
UNDO
UNDO
UNDO
Instance 1用
Instance 2用
Copyright© 2011, Oracle. All rights reserved.
Instance 3用
35
Oracle Clusterwareの役割
•
•
監視対象リソースの管理
• リスナーやOracleインスタンス等の監視対象となるプロセスの起動/停止
クラスタ・メンバーシップの管理
• 各ノードが正常であることを確認
tnslsnr
Oracle
Instance
ASM
Instance
tnslsnr
tnslsnr
Oracle
Instance
ASM
Instance
Oracle
Instance
ASM
Instance
監視対象リソース管理
Oracle Clusterware
Oracle Clusterware
Oracle Clusterware
クラスタ・メンバーシップ管理
Copyright© 2011, Oracle. All rights reserved.
36
監視対象リソースの管理
RAC高可用性のしくみ
• 監視対象リソースの起動 / 停止の管理:
• 障害でリソースが異常終了した場合、リソースを自動的に再起動
tnslsnr
Oracle
Instance
ASM
Instance
Oracle Clusterware
tnslsnr
tnslsnr
Oracle
Instance
ASM
Instance
Oracle
Instance
ASM
Instance
Oracle Clusterware
Oracle Clusterware
Copyright© 2011, Oracle. All rights reserved.
37
監視対象リソースの管理
RAC高可用性のしくみ
• 監視対象リソースの起動 / 停止の管理:
• 障害でリソースが異常終了した場合、リソースを自動的に再起動
tnslsnr
Oracle
Instance
ASM
Instance
Oracle Clusterware
tnslsnr
tnslsnr
Oracle
Instance
ASM
Instance
Oracle
Instance
ASM
Instance
Oracle Clusterware
Oracle Clusterware
Copyright© 2011, Oracle. All rights reserved.
38
クラスタ・メンバーシップの管理
RAC高可用性のしくみ
• ノード間の生存確認(ハートビート)の経路:
• インターコネクト・ネットワーク上
• 共有ディスク上
Interconnect Network
tnslsnr
Oracle
Instance
ASM
Instance
Oracle Clusterware
tnslsnr
Oracle
Instance
ASM
Instance
Oracle Clusterware
Voting Disk
tnslsnr
Oracle
Instance
ASM
Instance
Oracle Clusterware
クラスタのメンバーシップ
を記録する領域
Copyright© 2011, Oracle. All rights reserved.
39
クラスタ・メンバーシップの管理
RAC高可用性のしくみ
• ハート・ビートに失敗すると、自動的にその障害ノードを切り離す
Interconnect Network
tnslsnr
tnslsnr
tnslsnr
Oracle
instance
Oracle
Instance
Oracle
Instance
Oracle Clusterware
Oracle Clusterware
Oracle Clusterware
Voting Disk
Copyright© 2011, Oracle. All rights reserved.
40
クラスタ・メンバーシップの管理
RAC高可用性のしくみ
• 障害ノードのOSを再起動させることで、クラスタから切り離し
• 生存ノードでシステムを継続
•
生存ノードがインスタンス・リカバリを行う
Interconnect Network
tnslsnr
Oracle Clusterware
tnslsnr
Oracle
Instance
Oracle
Instance
Oracle Clusterware
Oracle Clusterware
Voting Disk
Copyright© 2011, Oracle. All rights reserved.
41
RAC高可用性のまとめ
• RACは障害ノードを自動的に切り離してシステムを継続
• 正常ノードがインスタンス・リカバリを行う
• Oracle Clusterware
• 監視対象リソースの管理
• クラスタ・メンバーシップの管理
• RACは高可用性を実現
 サーバー障害時のダウンタイムが短い
 トランザクションの一貫性が維持される
Copyright© 2011, Oracle. All rights reserved.
42
まとめ
Copyright© 2011, Oracle. All rights reserved.
Oracle Real Application Clusters
• RACは最適なデータベース・サーバー環境
• スケーラビリティ 複数ノードのCPUを利用して同時実行性を向上
• 高可用性
 障害ノードを切り離してシステムを継続
process
process
process
process
process
process
Oracle
Instance
ACTIVE
障害
Copyright© 2011, Oracle. All rights reserved.
Oracle
Instance
Oracle
Instance
ACTIVE
ACTIVE
44
OTNセミナーオンデマンド
コンテンツに対する
ご意見・ご感想を是非お寄せください。
OTNオンデマンド 感想
http://blogs.oracle.com/oracle4engineer/entry/otn_ondemand_questionnaire
上記に簡単なアンケート入力フォームをご用意しております。
セミナー講師/資料作成者にフィードバックし、
コンテンツのより一層の改善に役立てさせていただきます。
是非ご協力をよろしくお願いいたします。
Copyright© 2011, Oracle. All rights reserved.
45
OTNセミナーオンデマンド
日本オラクルのエンジニアが作成したセミナー資料・動画ダウンロードサイト
掲載コンテンツカテゴリ(一部抜粋)
100以上のコンテンツをログイン不要でダウンロードし放題
Database 基礎
データベースからハードウェアまで充実のラインナップ
Database 現場テクニック
Database スペシャリストが語る
毎月、旬なトピックの新作コンテンツが続々登場
Java
WebLogic Server/アプリケーション・グリッド
EPM/BI 技術情報
サーバー
ストレージ
例えばこんな使い方
•
•
•
•
製品概要を効率的につかむ
基礎を体系的に学ぶ/学ばせる
時間や場所を選ばず(オンデマンド)に受講
スマートフォンで通勤中にも受講可能
コンテンツ一覧 はこちら
http://www.oracle.com/technetwork/jp/ondemand/index.html
毎月チェック!
新作&おすすめコンテンツ情報 はこちら
http://oracletech.jp/seminar/recommended/000073.html
OTNオンデマンド
Copyright© 2011, Oracle. All rights reserved.
46
オラクルエンジニア通信
オラクル製品に関わるエンジニアの方のための技術情報サイト
技術資料
インストールガイド・設定チ
ュートリアルetc. 欲しい資
料への最短ルート
特集テーマ
Pick UP
性能管理やチューニングな
ど月間テーマを掘り下げて
詳細にご説明
アクセス
ランキング
他のエンジニアは何を見て
いるのか?人気資料のラン
キングは毎月更新
技術コラム
SQLスクリプト、索引メンテ
ナンスetc. 当たり前の運用
/機能が見違える!?
http://blogs.oracle.com/oracle4engineer/
オラクルエンジニア通信
Copyright© 2011, Oracle. All rights reserved.
47
oracletech.jp
ITエンジニアの皆様に向けて旬な情報を楽しくお届け
製品/技術
情報
Oracle Databaseっていく
ら?オプション機能も見積
れる簡単ツールが大活躍
スキルアップ
ORACLE MASTER!
試験頻出分野の模擬問
題と解説を好評連載中
セミナー
基礎から最新技術まで
お勧めセミナーで自分にあ
った学習方法が見つかる
Viva!
Developer
全国で活躍しているエンジ
ニアにスポットライト。きらり
と輝くスキルと視点を盗もう
http://oracletech.jp/
oracletech
Copyright© 2011, Oracle. All rights reserved.
48
あなたにいちばん近いオラクル
Oracle Direct
まずはお問合せください
Oracle Direct
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
ステム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Web問い合わせフォーム
フリーダイヤル
専用お問い合わせフォームにてご相談内容を承ります。
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
0120-155-096
※フォームの入力にはログインが必要となります。
※こちらから詳細確認のお電話を差し上げる場合がありますので
ご登録の連絡先が最新のものになっているかご確認下さい。
※月曜~金曜
9:00~12:00、13:00~18:00
(祝日および年末年始除く)
Copyright© 2011, Oracle. All rights reserved.
49
Copyright© 2011, Oracle. All rights reserved.
Copyright© 2011, Oracle. All rights reserved.
51