15 シングル・インスタンスOracle DatabaseのOracle RACおよびOracle RAC One Nodeへの変換

Oracle Databaseシングル・インスタンス・データベースからOracle Real Application Clusters (Oracle RAC)およびOracle RAC One Nodeデータベースに変換するための手順について説明します。

注意:

マルチテナント・コンテナ・データベースは、Oracle Database 20cで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。

15.1 データベースをOracle RACに変換する場合の管理上の問題点

シングル・インスタンス・データベースをOracle RACに変換する前に、管理要件に対処しておく必要があります。

これらの変換手順は、元のシングル・インスタンス・データベースとターゲットのOracle Real Application Clusters (Oracle RAC)データベースが同じリリースを使用し、同じプラットフォーム上で実行されていることを前提としています。変換を開始する前に、次の要件に注意してください。

  • シングル・インスタンスのOracle DatabaseからOracle RACへ変換する前にバックアップ手順を完了し、変換後に使用できるようにしておきます。Oracle RACへの変換前に既存のデータベースのバックアップを作成し、変換後すぐにOracle RACデータベースのバックアップを準備します。

  • Oracle RAC環境でアーカイブする場合、アーカイブ・ファイル形式にはスレッド番号が必要です。

  • メディア・リカバリには、Oracle RACデータベースのすべてのインスタンスのアーカイブ・ログが必要です。この要件のため、ファイルにアーカイブし、クラスタ・ファイル・システムを使用しない場合または共有ファイル・システムを提供する他の手段を使用しない場合、クラスタ・データベースのインスタンスがあるすべてのノードからアーカイブ・ログにアクセスする方法が必要です。

  • デフォルトでは、すべてのデータベース・ファイルはOracle Managed Filesに移行されます。この機能によって、表領域の作成が簡単になり、データ・ファイルの場所の一貫性およびOracle Flexible Architecture規則への準拠が確保されるため、データ・ファイル管理での人為的なミスが減少します。

注意:

Oracle RACデータベースでは、クラスタ化されたOracle Automatic Storage Management(Oracle ASM)インスタンスを使用する必要があります。

15.2 DBCAを使用したOracle RACおよびOracle RAC One Nodeへの変換

Database Configuration Assistant (DBCA)を使用してシングル・インスタンスのOracle DatabaseからOracle Real Application Clusters (Oracle RAC)またはOracle RAC One Nodeデータベースに変換するためのガイドラインおよび手順について説明します。

15.2.1 DBCAを使用したデータベースのOracle RACへの変換の概要

Database Configuration Assistant (DBCA)には、シングル・インスタンスのOracle DatabaseからOracle Real Application Clusters (Oracle RAC)データベースまたはOracle RAC One Nodeデータベースへの変換を支援するという一定の利点があります。

DBCAを使用すると、制御ファイル属性が自動的に構成され、UNDO表領域とREDOログが作成されて、クラスタ対応環境用の初期化パラメータ・ファイルのエントリが作成されます。また、DBCAは、Oracle Enterprise Managerまたはサーバー制御ユーティリティ(SRVCTL)を使用して、Oracle Net ServicesとOracle Clusterwareリソースの構成およびOracle RACデータベース管理用の構成を行います。

DBCAを使用してシングル・インスタンスのデータベースをOracle RACまたはOracle RAC One Nodeデータベースに変換する前に、システムが次の条件を満たしていることを確認します。

  • システムで、サポートされているハードウェアおよびオペレーティング・システム・ソフトウェアが使用されている。システムが、Oracle RACデータベースをサポートするように適切に構成されている。

  • ノードから共有記憶域にアクセスでき、たとえば、Oracle Cluster File SystemまたはOracle ASMが使用可能で、すべてのノードからアクセスできる。Linux on POWER Systemsの場合は、GPFSが使用可能で、すべてのノードからアクセスできる。

  • 使用しているアプリケーションが、その特性によりクラスタ・データベース・プロセスで使用不可能になることがない。

ご使用のプラットフォームがクラスタ・ファイル・システムをサポートしている場合は、Oracle RACでそのクラスタ・ファイル・システムを使用できます。Oracle RACに変換して、非共有ファイル・システムを使用することもできます。いずれの場合も、Oracle Universal Installerを使用してOracle Databaseをインストールし、クラスタで選択された各ノード上の同じ場所にOracleホームおよびインベントリを設定することをお薦めします。

15.2.2 DBCAを使用したOracle DatabaseのインストールのOracle RACへの変換

クラスタ化されていないコンピュータ上のシングル・インスタンスのOracle DatabaseからOracle Real Application Clusters (Oracle RAC)に変換するには、ここで説明する各手順を実行します。

警告:

次の各項で説明されている各手順を、示されている順序で実行する必要があります。

15.2.2.1 DBCAを使用したシングル・インスタンス・データベースのイメージの作成

シングル・インスタンス・データベースからOracle Real Application Clusters (Oracle RAC)データベースへの変換プロセスの一環としてシングル・インスタンス・データベースの事前構成済イメージを作成するには、このDBCA手順を使用します。

  1. $ORACLE_HOMEの下のbinディレクトリに移動して、DBCAを起動します。

  2. 「ようこそ」ページで「次へ」をクリックします。

  3. 「操作」ページで、「テンプレートの管理」を選択して「次へ」をクリックします。

  4. 「テンプレート管理」ページで、「データベース・テンプレートの作成」および「既存のデータベースを使用(データおよび構造)」を選択して「次へ」をクリックします。

  5. 「ソース・データベース」ページの「データベース・インスタンス」リストで、データベース名を選択して「次へ」をクリックします。

  6. SQLを使用して、すべてのプラガブル・データベース(PDB)がオープンしていることを確認します。

    SQL> SELECT name, open_mode FROM v$pdbs;

    いずれかのPDBのステータスがOPEN以外の場合は、SQLを使用してオープンします。

  7. 「テンプレート・プロパティ」ページで、「名前」フィールドにテンプレート名を入力します。データベース名を使用することをお薦めします。

    デフォルトでは、テンプレート・ファイルはディレクトリ$ORACLE_HOME/assistants/dbca/templatesに生成されます。「説明」フィールドにファイルの説明を入力して、「テンプレート」データファイル・フィールドでテンプレート・ファイルの場所を変更できます。

    入力が完了したら、「次へ」をクリックします。

  8. 「データベース関連ファイルの位置」ページで、現行のディレクトリ構造にデータベースをリストアできるように「ファイル位置を保持」を選択して「終了」をクリックします。

DBCAは、データベース構造ファイル(template_name.dbc)およびデータベースの事前構成済イメージ・ファイル(template_name.dfb)の2つのファイルを生成します。

15.2.2.2 Oracle Clusterwareのインストールの完了

シングル・インスタンス・データベースをOracle Real Application Clusters (Oracle RAC)に進めるには、Oracle Clusterwareのインストールを完了する必要があります。

Oracle Clusterwareのインストールを完了するには、オペレーティング・システムのドキュメントを参照してください。

15.2.2.3 クラスタの検証

Oracle Clusterwareのインストール後、クラスタ検証ユーティリティ(CVU)を使用してクラスタ構成を検証します。

15.2.2.4 事前構成済データベース・イメージのコピー

クラスタを検証した後で、事前構成済データベース・イメージをコピーします。

事前構成済データベース・イメージをコピーする場合は、データベース構造ファイル*.dbcおよびデータベースの事前構成済イメージ・ファイル*.dfb (変換プロセスでDBCAを使用してすでに作成しているファイル)もDBCAを実行するクラスタのノード上の一時的な場所にコピーします。

15.2.2.5 新しいOracle DatabaseソフトウェアおよびOracle RACのインストール

クラスタ・インストール・モードを選択して、新しいOracle Databaseリリースをインストールします。

  1. Oracle Universal Installerを実行して、Oracle DatabaseおよびOracle RACをインストールします。

  2. Oracle Universal Installerのハードウェアのクラスタ・インストール・ページで「クラスタ・インストール・モード」を選択し、Oracle RACデータベースに含めるノードを選択します。

  3. Oracle Universal Installerのデータベース構成タイプ・ページで、拡張インストール・タイプを選択します。

    Oracle Databaseソフトウェアのインストール後、Oracle Universal Installerはインストール後の構成ツール(Net Configuration Assistant (NETCA)、DBCAなど)を実行します。

  4. DBCAのテンプレートの選択ページで、前の項で一時的な場所にコピーしたテンプレートを使用します。テンプレートの位置を選択するには、「参照」オプションを使用します。

    デプロイするオプションを選択します。Oracle RACデータベース、Oracle RAC One Nodeデータベースまたはシングル・インスタンスOracle Databaseから選択できます。

  5. Oracle RACデータベースを作成すると、DBCAに「パスワード管理」ページが表示され、このページで、SYSDBA権限とSYSOPER権限を持つデータベース・ユーザーのパスワードを変更する必要があります。DBCAを終了すると、変換処理が完了します。

15.2.3 DBCAを使用したクラスタ上のシングル・インスタンスのOracle RAC One Nodeへの変換

シングル・インスタンスのOracle DatabaseをOracle RAC One Nodeに変換するには、このDatabase Configuration Assistant (DBCA)手順を使用します。

  1. $ORACLE_HOME/binディレクトリに移動します。

  2. 次のように、DBCAを起動します。

    $ dbca
  3. 「ようこそ」ウィンドウから、「Oracle RAC One Nodeデータベース」を選択します。

  4. シングル・インスタンスのOracle DatabaseからOracle RACへの変換時に選択したDBCAテンプレートを使用して、Oracle RAC One Nodeをデプロイします。

15.2.4 DBCAを使用したクラスタ上のシングル・インスタンスのOracle RACへの変換

シングル・インスタンスのOracle DatabaseをOracle Real Application Clustersインスタンスに変換できる場合について説明し、変換の実行方法を示します。

15.2.4.1 クラスタ上のシングル・インスタンスをOracle RACに変換するためのシナリオ

Database Configuration Assistant (DBCA)を使用してクラスタ上のOracle Databaseシングル・インスタンスをOracle Real Application Clusters (Oracle RAC)インスタンスに変換できるシナリオが3つあります。

  • シナリオ1: シングル・インスタンス・データベースのOracleホームがクラスタ・ノードにインストールされ、Oracle RACが有効になっている場合。

  • シナリオ2: シングル・インスタンス・データベースのOracleホームはクラスタ・ノードにインストールされているものの、このOracleホームのOracle RAC機能が無効になっている場合。

  • シナリオ3: シングル・インスタンス・データベースのOracleホームが、クラスタのローカル・ノードにのみインストールされている場合。この構成は、Oracle Databaseをインストールするときに、Oracle Universal Installerのハードウェアのクラスタ・インストールの指定ページで「ローカル・インストール」オプションを選択した場合に発生します。

15.2.4.2 RAC対応のOracleホームからクラスタ上のシングル・インスタンス・データベースが実行されている場合

Oracle RACオプションが有効になっているOracleホームから実行されているクラスタ・ノードでシングル・インスタンス・データベースを変換するには、次の手順を実行します。

15.2.4.2.1 クラスタ上のシングル・インスタンス・データベースを変換するためのクラスタの設定

Oracle RACオプションが有効になっているOracleホームから実行されているクラスタ・ノードでシングル・インスタンス・データベースを変換するには、まずDBCAを使用してクラスタを設定します。

  1. DBCAを使用して、シングル・インスタンス・データベースの事前構成済イメージを作成します。手動で変換を実行するには、シングル・インスタンス・データベースを停止します。

  2. ノードをクラスタに追加します。すべてのノードがOracle ClusterwareおよびOracle RACで使用される共有記憶域にアクセスできることを確認します。

  3. 既存のOracleホームから、このホームを新しいノードに拡張します。

  4. 新しく追加したノードから、NETCAを使用して追加のノードにリスナーを構成します。既存のノードで使用したポート番号およびプロトコルと同じポート番号およびプロトコルを選択します。NETCAでノード・リスト・ページに既存のノードが表示される場合は、リスナーがすでに構成されているため、ノードを選択しないでください。

  5. 次のいずれかの手順でデータベースを変換します。

クラスタの準備が完了したら、Database Configuration Assistant (DBCA)による自動変換を使用するか手動変換を実行することで、データベースを変換する準備ができました。好みに応じて手順を選択します。

15.2.4.2.2 DBCAを使用した自動変換の手順

シングル・インスタンスのOracle DatabaseからOracle Real Application Clusters (Oracle RAC)データベースへの自動変換を完了するには、この手順を使用します。

DBCAを使用してシングル・インスタンス・データベースの事前構成済イメージを作成した場合は、次のステップを実行して、Oracle RACデータベースへの変換を完了します。

  1. 元のノードからDBCAを起動します。クラスタ・データベースの一部として含めるノードの名前を選択します。テンプレートの選択ページで、DBCAで前に作成した事前構成済テンプレートを選択します。データベース名を入力し、残りのDBCAのプロンプトに従って入力します。

  2. Oracle Databaseデータ・ファイルの共有記憶域の場所を指定します。

Oracle RACデータベースを作成すると、DBCAに「パスワード管理」ページが表示され、このページで、SYSDBA権限とSYSOPER権限を持つデータベース・ユーザーのパスワードを変更する必要があります。DBCAを終了すると、変換処理が完了します。

15.2.4.2.3 手動変換の手順

シングル・インスタンスのOracle DatabaseからOracle Real Application Clusters (Oracle RAC)データベースへの手動変換を完了するには、この手順を使用します。

前の項の説明に従って、DBCAを使用してシングル・インスタンス・データベースの事前構成済イメージを作成しなかった場合は、次のステップを実行して、変換を完了します。

  1. 追加した各ノード上にOptimal Flexible Architectureディレクトリ構造を作成します。

  2. REUSEキーワードを指定したCREATE CONTROLFILE SQL文を実行して制御ファイルを再作成し、Oracle RAC構成に必要なMAXINSTANCESMAXLOGFILESなどを指定します。MAXINSTANCESのデフォルト値は、32に指定することをお薦めします。

  3. データベース・インスタンスを停止します。

  4. シングル・インスタンス・データベースでSPFILEを使用していた場合は、次のSQL文を使用してSPFILEから一時的なパラメータ・ファイル(PFILE)を作成します。

    CREATE PFILE='pfile_name' from spfile='spfile_name'
  5. CLUSTER_DATABASEパラメータをTRUEに設定し、sid.parameter =value構文を使用して、INSTANCE_NUMBERパラメータをインスタンスごとに一意の値に設定します。

    シングル・インスタンス・データベースのメモリ使用量を最適化していた場合は、システム・グローバル領域(SGA)のサイズを調整して、Oracle RACへの変換時にスワップおよびページングが発生しないようにします。Oracle RACではグローバル・キャッシュ・サービス(GCS)用に各バッファに約350バイトずつ必要になるため、この調整を行うことをお薦めします。たとえば、バッファが10,000ある場合、Oracle RACは約350×10,000バイトの追加メモリーを必要とします。その結果、必要に応じてDB_CACHE_SIZEおよびDB_nK_CACHE_SIZEパラメータを変更することでSGAのサイズを調整し、スワッピングおよびページングを回避します。

  6. ステップ4で作成したPFILEを使用して、データベース・インスタンスを起動します。

  7. シングル・インスタンス・データベースで自動UNDO管理を使用していた場合は、CREATE UNDO TABLESPACE SQL文を使用して、追加インスタンスごとにUNDO表領域を作成します。

  8. 2つ以上のREDOログを持つREDOスレッドを追加インスタンスごとに作成します。SQL文のALTER DATABASEを使用して、新しいREDOスレッドを使用可能にします。その後で、データベース・インスタンスを停止します。

  9. Oracleパスワード・ファイルを、元のノードまたは作業中のノードから追加ノード(クラスタ・データベースのインスタンスが存在するノード)の対応する位置にコピーします。追加インスタンスごとに、各パスワード・ファイルのORACLE_SID名を適切に置換します。

  10. REMOTE_LISTENERパラメータに単一クライアント・アクセス名(SCAN)およびポートを設定します。

  11. データベースとインスタンスのネット・サービス・エントリ、インスタンスごとのLOCAL_LISTENERのアドレス・エントリ、およびtnsnames.oraファイルのREMOTE_LISTENERのアドレス・エントリを構成し、tnsnames.oraファイルをすべてのノードにコピーします。

  12. PFILEからSPFILEを作成します。

  13. 次のエントリを含む$ORACLE_HOME/dbs/initsid.oraファイルを作成します(ここで、spfile_path_nameはSPFILEの完全パス名です)。

    spfile='spfile_path_name'
  14. ローカル・ノードで、SQL*Plusを使用してcatclust.sqlを実行します。このスクリプトによって、Oracle RACデータベースに必要なディクショナリ・ビューが作成されます。次に例を示します。

    SQL> start ?/rdbms/admin/catclust.sql
  15. SRVCTLを使用して、Oracle RACまたはOracle RAC One Nodeデータベースの構成とそのインスタンスのノードへのマッピングを追加します。

    1. Oracle RACデータベースの構成を追加するには、次のコマンドを使用します。

      $ srvctl add database -dbname db_name -oraclehome 
                                  Oracle_home -spfile spfile_path_name
      $ srvctl add instance -dbname db_name -instance inst1_name -node 
                                  node1_name
      $ srvctl add instance -dbname db_name -instance inst2_name -node 
                                  node2_name
      ...
    2. Oracle RAC One Nodeデータベースの構成を追加するには、次のコマンドを使用します。

      $ srvctl add database -dbname db_name -dbtype 
                                  RACONENODE -oraclehome Oracle_home
        -spfile spfile_path_name
  16. SRVCTLを使用してOracle RACまたはOracle RAC One Nodeデータベースを起動します。

    srvctl start database -d db_name

SRVCTLでデータベースを起動すると、変換処理は完了です。次のSQL文を実行すると、Oracle RACデータベースのすべてのインスタンスのステータスを確認できます。

SQL> SELECT * FROM v$active_instances;
15.2.4.3 RAC非対応のOracle ホームからクラスタ上のシングル・インスタンス・データベースが実行されている場合

Oracle Real Application Clusters (Oracle RAC)オプションが無効になっているOracleホームから実行されているクラスタでシングル・インスタンス・データベースを作成できます。

Oracle RAC非対応のクラスタでOracleホームを作成する場合は、Oracle Databaseソフトウェアのインストール時にOracle Universal Installerの「ノードの選択」ページで「ローカル」および「非クラスタ」を選択できます。単一ノードのクラスタ(およびOracle RAC)のインストールを実行して、後でOracle RACオプションを無効にすることもできます。

次の手順に従って、このタイプのシングル・インスタンス・データベースをOracle RACまたはOracle RAC One Nodeデータベースに変換します。

  1. DBCAを使用して、シングル・インスタンス・データベースの事前構成済イメージを作成します。手動で変換を実行するには、シングル・インスタンス・データベースを停止します。

  2. ディレクトリを、Oracleホームのrdbmsディレクトリにあるlibサブディレクトリに変更します。

  3. 次のコマンドを実行して、oracleバイナリに再度リンクします。

    make -f ins_rdbms.mk rac_on
    make -f ins_rdbms.mk ioracle 
  4. ノードをクラスタに追加します。すべてのノードがOracle ClusterwareおよびOracle RACで使用される共有記憶域にアクセスできることを確認します。

15.3 変換後のステップ

シングル・インスタンス・データベースからOracle Real Application Clusters (Oracle RAC)データベースへの変換が完了したら、Oracle RAC環境の構成に関する次の推奨事項に従います。

変換後は、次のガイドラインに従うことをお薦めします。

  • 前の章で説明したように、ロード・バランシングおよび透過的アプリケーション・フェイルオーバーを使用する際の推奨事項に従います。

  • 『Oracle Database管理者ガイド』の説明に従って、ディクショナリ管理表領域ではなくローカル管理表領域を使用して、競合を軽減し、順序をOracle RACで管理します。

  • 自動セグメント領域管理の使用方法については、『Oracle Database管理者ガイド』のガイドラインに従ってください。

Oracle RACでのバッファ・キャッシュおよび共有プールの容量に関する要件は、シングル・インスタンスのOracle Databaseでの要件よりもわずかに大きくなります。このため、バッファ・キャッシュのサイズを約10パーセント、共有プールのサイズを約15パーセント増加する必要があります。