4 Oracle RAC One Nodeの管理
Oracle Real Application Clusters One Node (Oracle RAC One Node)の管理方法について説明します。
注意:
マルチテナント・コンテナ・データベースは、Oracle Database 20cで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
Oracle Real Application Clusters One Node(Oracle RAC One Node)は、クラスタ内の1つのノードで実行されるOracle Real Application Clusters(Oracle RAC)データベースのシングル・インスタンスです。このオプションによって、Oracleでのデータベース統合の柔軟性が向上します。フェイルオーバーによる保護で高可用性を実現しながら、多くのデータベースを最小限のオーバーヘッドで1つのクラスタに統合でき、オンラインでのローリング・パッチ適用、オペレーティング・システムおよびOracle Clusterwareのローリング・アップグレードも可能になります。
- Oracle RAC One Nodeデータベースの作成
その他のOracle Databaseと同様に、フリート・パッチ適用およびプロビジョニングまたはDatabase Configuration Assistant (DBCA)を使用すると、Oracle RAC One Nodeデータベースを作成できます(手動で作成したスクリプトも有効な代替手段です)。 - データベースの変換
SRVCTL
を使用すると、インスタンスが1つのOracle Real Application Clusters (Oracle RAC)データベースをOracle RAC One Nodeデータベースに変換することも、Oracle RACデータベース・インスタンスに戻すこともできます。 - オンライン・データベース再配置
オンライン・データベース再配置機能を使用して、サービスの可用性を維持したまま、Oracle RAC One Nodeデータベースを別のノードに再配置できます。
4.1 Oracle RAC One Nodeデータベースの作成
その他のOracle Databaseと同様に、フリート・パッチ適用およびプロビジョニングまたはDatabase Configuration Assistant (DBCA)を使用すると、Oracle RAC One Nodeデータベースを作成できます(手動で作成したスクリプトも有効な代替手段です)。
Oracle RAC One Nodeデータベースは、フリート・パッチ適用およびプロビジョニングと-dbtype RACONENODE
パラメータを指定したrhpctl add database
コマンドを使用することで作成できます。また、Oracle RAC One Nodeデータベースは、rhpctl add workingcopy
コマンドを使用して組み込むこともできます。
Oracle RAC One Nodeデータベースは、単一インスタンスOracle DatabaseまたはOracle RACデータベースからの変換の結果になることもあります。通常、オラクル社提供のツールは、Oracle RAC One NodeデータベースをOracle Clusterwareに登録します。構成が原因で、Oracle RAC One NodeデータベースのOracle Clusterwareへの自動登録は行われなかった可能性があります。この場合は、この項のステップに従って、Oracle RAC One NodeデータベースをOracle Clusterwareに登録してください。
注意:
サーバー制御ユーティリティ(SRVCTL)を使用して、Oracle RAC One Nodeデータベースを管理することをお薦めします。SRVCTLを使用すると、特定の操作(オンライン・データベース再配置など)のみを実行できます。Oracle RAC One NodeデータベースがOracle Clusterwareに自動的に登録されなかった場合は、srvctl add database
コマンドを使用してOracle RAC One Nodeデータベースをクラスタに追加します。次に例を示します。
$ srvctl add database -dbtype RACONENODE [-server server_list]
[-instance instance_name] [-timeout timeout]
管理者管理Oracle RAC One Nodeデータベースを追加する場合は、-server
オプションおよび-instance
オプションを使用します。
注意:
Oracle Grid Infrastructure 20c以降、ポリシー管理データベースは非推奨です。Oracle RAC One Nodeデータベースの場合、少なくとも1つの動的データベース・サービスを構成する必要があります(デフォルトのデータベース・サービスに加えて、かつ、これと反対に)。Oracle RAC One Nodeデータベースを使用する場合は、他のOracle RACデータベースと同様、サービスの登録が実行されます。
注意:
Oracle RAC One Nodeデータベースを追加する場合は、必要に応じて、srvctl add database
コマンドの-instance instance_name
パラメータを使用してインスタンス接頭辞を指定できます。こうすると、インスタンスの名前は、prefix_1
になります。インスタンス接頭辞を指定しないと、データベースの一意の名前の最初の12文字が接頭辞になります。インスタンス名は、オンライン・データベース再配置時にprefix_2
に変更され、後続のオンライン・データベース再配置時にprefix_1
に戻されます。フェイルオーバーでは、同じインスタンス名が使用されます。
4.2 データベースの変換
SRVCTL
を使用すると、インスタンスが1つのOracle Real Application Clusters (Oracle RAC)データベースをOracle RAC One Nodeデータベースに変換することも、Oracle RACデータベース・インスタンスに戻すこともできます。
- Oracle RACからOracle RAC One Nodeへのデータベースの変換
SRVCTLを使用して、Oracle RACデータベースをOracle RAC One Nodeデータベースに変換します。 - Oracle RAC One NodeからOracle RACへのデータベースの変換
SRVCTLを使用すると、Oracle RAC One NodeデータベースをOracle RACデータベースに変換できます。
親トピック: Oracle RAC One Nodeの管理
4.2.1 Oracle RACからOracle RAC One Nodeへのデータベースの変換
SRVCTLを使用して、Oracle RACデータベースをOracle RAC One Nodeデータベースに変換します。
Oracle RACデータベースをOracle RAC One Nodeデータベースに変換する前に、Oracle RACデータベースのインスタンスが1つのみであることを確認する必要があります。Oracle RACデータベースが管理者管理であり、かつ複数のインスタンスがある場合は、srvctl remove instance
コマンドを使用して、1つを除くすべてのインスタンスを削除する必要があります。Oracle RACデータベースがポリシー管理であり、かつ複数のインスタンスがある場合は、srvctl stop instance
コマンドを使用して、1つを除くすべてのインスタンスを停止する必要があります。
Oracle RACデータベースが管理者管理である場合は、すべてのサービスの構成を変更して、変換後でもOracle RAC One Nodeデータベースであるようなインスタンスに優先インスタンスを設定する必要があります。サービスにPRECONNECT TAF
ポリシーがある場合は、変換プロセスを開始する前に、そのTAFポリシーをBASIC
またはNONE
に更新する必要があります。これらのサービスでは、使用可能インスタンスが不要になります。
Oracle RACデータベースがポリシー管理である場合は、すべてのサービスの構成を変更して、Oracle RACデータベースをOracle RAC One Nodeデータベースに変換する前に、すべてのサービスで同じサーバー・プールが使用されるようにしておく必要があります。
次のように、srvctl convert database
コマンドを使用して、インスタンスが1つのOracle RACデータベースをOracle RAC One Nodeデータベースに変換できます。
$ srvctl convert database -db db_unique_name -dbtype RACONENODE
[-instance instance_name -timeout timeout]
-w timeout]
注意:
Oracle RAC One Nodeに変換するOracle RACデータベースでは、Oracle Managed Filesを使用しているか(自動スレッド割当てを有効にするため)、または2つ以上のREDOスレッドを保持している必要があります。
4.2.2 Oracle RAC One NodeからOracle RACへのデータベースの変換
SRVCTLを使用すると、Oracle RAC One NodeデータベースをOracle RACデータベースに変換できます。
注意:
Oracle Grid Infrastructure 20c以降、ポリシー管理データベースは非推奨です。Oracle RAC One Nodeデータベース所有者としてログインして、次のSRVCTLコマンドを入力します。
srvctl convert database -db db_unique_name -dbtype RAC
オンライン・データベース再配置を使用してOracle RACに変換するデータベースを再配置している場合、またはオンライン・データベース再配置が失敗した場合は、srvctl convert database
コマンドを実行する前に、再配置を終了するか、完了させる必要があります。
このコマンドを実行した後に、データベース・サーバー・プールの他に、各データベース・サービスのサーバー・プールを作成する必要があります。このデータベース・サービスが使用するサーバー・プールのSERVER_NAMES
の値に、Oracle RAC One NodeからOracle RACノードに変換したノードが設定されている必要があります。CRSCTLユーティリティまたはOracle Enterprise Managerを使用すると、サーバー・プールを作成して構成できます。
管理者管理Oracle RAC One NodeデータベースをOracle RACデータベースに変換するときに、Oracle RAC One Nodeデータベースのインスタンスが、変換後のOracle RACデータベースで、そのサービスの優先インスタンスになるように、すべてのデータベース・サービスを構成します。データベースを変換した後は、srvctl add instance
コマンドを実行してインスタンスをデータベースに追加できます。
ポリシー型管理のOracle RAC One NodeデータベースをOracle RACデータベースに変換すると、すべてのデータベース・サービスのカーディナリティがUNIFORMに設定されます。また、このデータベースが現在実行されているサーバー・プールが再利用されることになります。変換では、このデータベースがサーバー・プール内のすべてのノードで実行されるように再構成されます。このコマンドでは、追加のインスタンスは起動されませんが、srvctl start database
コマンドを実行すると、サーバー・プール内のすべてノードでこのデータベースが起動します。
親トピック: データベースの変換
4.3 オンライン・データベース再配置
オンライン・データベース再配置機能を使用して、サービスの可用性を維持したまま、Oracle RAC One Nodeデータベースを別のノードに再配置できます。
データベースの新規ノードへの再配置中に、データベース・セッションを継続できるように、計画的なオンライン・データベース再配置中にのみOracle RAC One Nodeデータベースの第2インスタンスが作成されます。Oracle RAC One Nodeデータベースではオンライン・データベース再配置のみを使用できますが、管理スタイルにかかわらず(管理者管理またはポリシー管理)、Oracle RACデータベースではオンライン・データベース再配置は使用できません。
srvctl relocate database
コマンドを使用して、再配置されるデータベースの開始およびサービスの移行後、データベースの以前のインスタンスが停止するまでの時間を構成できます。この構成時間は、操作全体にかかる時間の上限ではなく、再配置されるデータベースが以前のインスタンスから新しいインスタンスに接続が移行するのを待機した後、以前のインスタンスが停止するまでの時間を制御するだけです。
オンライン・データベース再配置は、次のように行われます。
-
新しいデータベース・インスタンスを別の場所で開始します。
-
再配置するインスタンスにすべてのサービスを移動します。
-
再配置するインスタンスにすべての接続が移行するまで待機します。
-
以前のデータベース・インスタンスを停止し、再配置するインスタンスに残りのすべての接続を強制移動します。
オンライン再配置のタイムアウトは、ステップ3を実行するために構成する時間です。
データベース・インスタンスのオンライン再配置を開始する前に、次のタスクを実行します。
-
データベースの候補サーバー・リストに現在存在していないターゲット・ノードにデータベース・インスタンスを再配置する場合は、Oracle ASMに格納されている共有パスワード・ファイルを使用しないかぎり、パスワード・ファイル(構成されている場合)をターゲット・ノードにコピーする必要があります。
-
共有パスワード・ファイルを使用せずにOracle RAC One Nodeデータベースのリモート管理に対してパスワード・ファイルベースの認証を使用する場合、データベースを実行できるノードごとに、
SID_prefix_1
およびSID_prefix_2
という名前の2つのパスワード・ファイルが必要です。パスワード・ファイルを更新するたびに、これらの両方のファイルをすべての候補ノードに再コピーする必要があります。これは、ポリシー管理型と管理者管理型の両方のデータベースに当てはまります。Oracle Clusterwareを使用してデータベースの起動および停止を行うこと、および他の管理用にデータ・ディクショナリにユーザーを定義することをお薦めします。
-
オペレーティング・システムがMicrosoft Windowsの場合、データベース・インスタンスを再配置する前に、データベース・サービス・ユーザーがウォレットに追加されていることを確認する必要があります。
crsctl query wallet -type OSUSER -all
を実行して、データベース・サービス・ユーザーがウォレットに存在するかどうかを確認します。存在しない場合、crsctl add wallet -type OSUSER -user user_name -passwd
を実行して、データベース・サービス・ユーザーをウォレットに追加します。
srvctl relocate database
コマンドを使用して、Oracle RAC One Nodeデータベースの再配置を実行します。次に例を示します。
$ srvctl relocate database -d rac1 -n node7