Oracleのフェイルオーバーについて

Published: 2016年3月1日 by tomsato

◼︎ 概要

Oracleのフェイルオーバーの設定について説明します
接続先が死んでいた際に自動的にフェイルオーバーさせます

Oracle勉強シリーズ

◼︎ 接続時フェイルオーバー(CTF)について

Connection Time Failover

新規に接続する際に接続先が死んでいた場合などで失敗した場合フェイルオーバーさせる
設定方法としてはtnsnames.oraファイルにFAILOVER=ONを記述

※ SCAN利用時はADDRESS_LIST句にSCANを指定すると自動的に3つのSCAN VIPを利用した接続時フェイルオーバーが行われるのでtnsnames.oraにFAILOVERの記述は不要になる

◼︎ 透過的アプリケーション・フェイルオーバー(TAF)について

Transparent Application Failover

接続中に接続先が死んだ場合などでエラーが発生した場合にフェイルオーバーする

再接続するまでの流れ</p>
  1. クライアントからSCAN経由でDBサーバにセッションを貼る
  2. RAC構成ノードのどれか1つのDBサーバに接続
  3. DBがダウン (セッション切断)
  4. TAFを利用している場合は自動で再接続する

TAFの設定でSELECT中の切断時でもSELECTのリトライをすることが可能になる
INSERT,UPDATE,DELETEなどは再接続しても処理を引き継げないためロールバックが行われる

設定例

test_db =
  (DESCRIPTION =
    (enable = broken)
    (ADDRESS = (PROTOCOL = TCP)(HOST = hoge.host)(PORT = 98765))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = sn_testdb)
      (FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 10)(DELAY = 10))
    )
  )
設定項目 説明
TYPE フェイルオーバーの種類
SESSION: セッションをフェイルオーバー
SELECT: SELECT中の切断でもリトライできる
NONE: デフォルト、フェイルオーバー機能を使用しない
RETRIES フェイルオーバー後に接続を行う回数を指定
デフィルトでは5回
DELAY 次に接続を試みるまでの待機時間を秒数で指定
デフォルトは1秒

◼︎ SCANについて

Single Client Access Name

Oracle Databaseにアクセスする際にクライアントが(実際は複数の接続先があるが)単一の名前で使用できる
なのでクラスタにノードやデータベースを追加・削除したりしてもSCANを使用しているクライアントのtnsnames.oraの記述の変更が必要ない

◼︎ 参考サイト

コメントを書く

※ Emailは公開されません

※ コメントは承認されると下記に表示されます

コメント一覧

最近の投稿

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

Netlify Formsを使ってブログサイトにコメント機能を追加する方法を調べたので紹介 Netlify FormsはNetlifyに標準機能として用意されているフォーム機能 サーバレスなので別途コメント用にサーバを用意する必要がなくHTMLを埋め込むだけで準備できる

TypeScriptの入門の入門チートシート 型の種類や使い方についてまとめていくだけでなく、 TypeScriptについてや必要性などについてもまとめることでこのページでTypeScriptをざっくり理解できる程度の内容を目指す

NetlifyのFormsやSplit Testing、Functionsについて使い方をまとめる FormsはNetlifyに標準機能として用意されているフォーム機能でコメント保存用にサーバを用意する必要がない Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

カテゴリ一覧

タグ一覧