1. ホーム
  2. データベース
  3. 神託

オラクル・ラックのケーススタディ

2022-01-18 04:43:54

racとは?

異なるサーバー上の複数のインスタンス、共有データベースファイルへのアクセス、CPUとメモリのスケーリング、パフォーマンスの向上、複数ノード、HAを可能にします。

racはどのような問題を解決するのか

  1. 高可用性:自動切り替え、ロードバランシング
  2. ハイパフォーマンス:マルチインスタンス、多接続、同時実行
  3. 高いスケーラビリティ:ノードのスケールアップに伴うダウンタイムがない。

実現までの道のり

構成

3層構造。

  1. クラスタソフトウェア:クラスタ管理、ノード追加、削除、ハートビート、同期、2つのコンポーネント(投票ディスク、クラスタ登録サービス)を含む。
  2. racデータベースソフトウェア:データベースインスタンスを提供します。
  3. rac データベース:共有ストレージ、共有ファイル。

1. トポロジー図

2. ストレージの分割例

共有ストレージは現在、説明のためにASMを提案しています。

rac共通操作

1. スタート/ストップ

shutdown: listen->db->cluster->os

  1. リスナー(グリッドユーザー)をシャットダウンし、新しいプログラムが接続できないようにします。
    srvctl stop listener
  2. ダーティブロックの書き込み
    alter systerm checkpoint; (複数回実行)
  3. データベースをシャットダウンします (グリッドユーザで) racdb はデータベースのグローバル一意名です。実行に時間がかかりますが、終了しないでください。
    /u01/app/11.2.0/grid/bin/srvctl stop database -d racdb -o immediate
  4. クラスタウェアをシャットダウンします(rootユーザー)
    /u01/app/11.2.0/grid/bin/crsctl stop cluster -all
  5. リソースの状態を見る
    /u01/app/11.2.0/grid/bin/crsctl status resource -t
  6. オペレーティングシステムのシャットダウン(root)
    シャットダウン -h now

----------- RACデータベースを起動する ------。

クラスタ->db

  1. デフォルトでは、OS起動時(root)にクラスタソフトウェアが起動します。
    クラスタリソースを確認します。/u01/app/11.2.0/grid/bin/crsctl status resource -t -- すべてオンラインであることが必要です。
    クラスタリソースを起動します。/u01/app/11.2.0/grid/bin/crsctl start cluster -all
  2. データベース(グリッド)の起動
    srvctl start database -d racdb
  3. リスナーの状態を確認します。デフォルトでは、リスナーはクラスタソフトウェア(グリッド)と共に起動されます。
    srvctl status listener -- リスナーの状態を表示する。
    srvctl start listener -- リスナーを起動します。
  4. 接続テストのためにplsqlにログインします。

2. 追加と削除

  1. RACのインストールと同じようにOSを設定し、Mountでディスクを共有します。ただし、Oracleとグリッドソフトはインストールしない
  2. グリッドインストーラのスクリプトを使用して、ノード間のsshを設定します。
  3. グリッドユーザーでノードを追加する場合、主にグリッドコンポーネントを追加すると、grid_homeの内容が新しいノードにコピーされます
  4. oracle ユーザーの下にノードを追加すると、主に oracle コンポーネントを追加して、oracle_home 以下のコンテンツが新しいノードにコピーされます
  5. DBCAを使用して新しいインスタンスを追加するか、手動で追加します(このdbca add)。

難易度

1. ノードデータの整合性。

インメモリトランザクション情報、ロック、異なるノードからのデータを同期する場合、異なるノード間の競合を避けるために、単一のインスタンス。 cacheFusion、キャッシュフュージョン
サーバー間でキャッシュを共有する。hdpは分散ファイルシステムをベースにしており、ノード上でブロックベースの計算を行い、その後マージすることで、真の独立性を保ちます。

質問です。

hbaカード

光ファイバーネットワークカード

仮想IPとは何をするものですか?

Oracleインストール時にパブリックNICへのバインディングが自動生成され、外部に提供される(パブリックNICの仮想IP)
rac2 が失敗すると、その仮想 ip は自動的に rac1 の物理 NIC に流れます。クライアントがそれを要求すると、rac2 は vip1 を再接続して入ってくるように失敗メッセージを返します。
vipがない場合、クライアントシングルリクエストが来ると、3回試行した後、tcp\ip接続が失敗するまで失敗を返すので、体験が悪くなる。
vipはHA実装のための重要なツールです。

<リンク