パッチの適用
Oracle Database Cloud Serviceコンソールでのパッチの適用
始める前に
-
パッチ適用プロセスでは、Exadata Cloud at Customer環境に含まれるクラウド固有のツールが使用されます。また、特定のパッチで、このツールの特定のバージョンで提供される機能が必要になる場合があります。 このため、パッチ操作を実行する前に、クラウド・ツールを最新バージョンに更新することをお薦めします。 Exadata Cloud at Customerのクラウド・ツールの更新を参照してください。
-
Oracle Databaseパッチを適用した後、Oracleでは、対応するソフトウェア・イメージも同じリリース・レベルに更新することをお薦めします。 これにより、更新後に作成されたデータベースおよびプラガブル・データベース(PDB)で、更新されたソフトウェアと一致するイメージが使用されるようになります。 ソフトウェア・イメージの管理を参照してください。
-
Oracle Databaseパッチを適用すると、Oracleホーム名が更新され、新しく適用されたパッチのリリース・レベルが反映されます。 パッチの適用がOracleホームに与える影響を参照してください。
手順
-
パッチを適用するデータベース・デプロイメントの「パッチの適用」ページに移動します:
-
Oracle Database Cloud Serviceコンソールを開きます。
詳細な手順は、「My ServicesダッシュボードおよびOracle Database Cloud Serviceコンソールへのアクセス」を参照してください。
-
パッチを適用するデータベース・デプロイメントをクリックします。
「Oracle Database Cloud Service Overview」ページが表示されます。
-
「Administration」タイルをクリックしてから、「Patching」タブをクリックします。
「Oracle Database Cloud Service Patching」ページが表示されます。 「Available Patches」セクションに、適用できるパッチの一覧が表示されます。
ノート:
Oracle Database Cloud Serviceの「パッチの適用」ページには、各パッチ適用カテゴリ(オペレーティング・システム・パッチ、データベース・パッチまたはグリッド・インフラストラクチャ・パッチ)のデータベース・デプロイメントに関連付けられている最新のパッチのみが表示されます。
-
-
適用するパッチに関連付けられているアクション・メニュー(
)をクリックし、「パッチ」を選択します。
「Patch Service」ウィンドウが表示されます。
-
データベース・デプロイメントで共有Oracleホームを使用する場合は、共有Oracleホームに関連付けられているすべてのデータベース・デプロイメントにパッチを適用するオプションを選択できます。
このオプションを選択すると、既存のOracleホームを更新することで、すべてのデータベースに同時にパッチが適用されます。
このオプションを指定しない場合、現在のデータベース・デプロイメントにのみパッチが適用されます。 この場合、共有Oracleホームに関連付けられた最初のデータベースにパッチを適用すると、新しいパッチが適用されたOracleホームを使用するように移動され、元の共有Oracleホームから後続のデータベースにパッチを適用すると、最初のデータベースと同じパッチが適用されたOracleホームを使用するように移動されます。 これにより、元の共有アフィニティを維持したまま、個々のデータベースにパッチを適用できます。
-
パッチに関連付けるノートを入力します。 次に、「パッチ」をクリックします。
「Patch Service」ウィンドウが閉じてパッチ適用処理が開始します。
「Administration」タイルにパッチ適用処理の開始時間が表示され、「Patch」ボタンのかわりに「Patching...」メッセージが表示されます。
パッチ適用処理が完了すると、「Patching」ページにパッチ適用処理の完了時間が表示され、「Details of Last Patching Activity」セクションにこの処理のアクティビティ・ログが表示されます。 処理が成功した場合、「Available Patches」の一覧からそのパッチが削除されます。 処理が失敗した場合、そのパッチは一覧に残るため、「Details of Last Patching Activity」セクションで失敗の情報を確認してください。
ノート:
データベースへの影響を最小限に抑えるため、パッチ適用操作はローリング方式、つまり一度に1つのコンピュート・ノードで実行されます。 「データベース・タイプ」が「RACとData Guardスタンバイを使用したデータベース・クラスタリング」であるデータベース・デプロイメントの場合、スタンバイ・サイトに最初にパッチが適用され、次にプライマリ・サイトにパッチが適用されます。
パッチを適用するその他の方法
Oracle DatabaseおよびOracle Grid Infrastructureのパッチでは、exadbcpatchmultiまたはdbaascliユーティリティを使用できます。 次を参照してください:
ノート:
Oracle Databaseパッチを適用すると、Oracleホーム名が更新され、新しく適用されたパッチのリリース・レベルが反映されます。 ただし、exadbcpatchmultiまたはdbaascliユーティリティを使用してパッチを適用した場合、変更されたOracleホーム名はOracle Database Cloud Serviceコンソールで更新されません。 詳細は、「パッチの適用がOracleホームに与える影響」を参照してください。
exadbcpatchmultiコマンドを使用したパッチの適用
exadbcpatchmultiコマンドを使用してパッチを適用できます。
パッチ適用操作は次のとおりです:
-
1つのコマンドを使用して一部またはすべてのコンピュート・ノードにパッチを適用するために使用できます。
-
1つのコマンドを使用して1つ以上のデータベースにパッチを適用するために使用できます。
-
複数ノードのパッチ適用をローリング方法で調整します。
-
クラスタ内のすべてのコンピュート・ノードにパッチを適用した後、パッチ関連のSQLを実行できます。
次のようにしてexadbcpatchmultiコマンドを使用してパッチ適用操作を実行できます。
-
opcユーザーとしてコンピュート・ノードに接続し、コマンド・シェルをrootユーザーとして起動します。詳細な手順は、「Secure Shell (SSH)経由でのコンピュート・ノードへの接続」を参照してください。
-
-apply_asyncアクションを指定してexadbcpatchmultiコマンドを実行します。-
特定のインスタンスの場合:
# /var/opt/oracle/exapatch/exadbcpatchmulti -apply_async patchid -instance1=hostname1:oracle_home [-instance2=hostname2:oracle_home ...] [-dbnames=dbname[,dbname2 ...]] [-run_datasql=(0|1)] [-sshkey=sshkey_file] -
データベース名のみを指定する場合:
# /var/opt/oracle/exapatch/exadbcpatchmulti -apply_async patchid -dbnames=dbname[,dbname2 ...] [-run_datasql=(0|1)] [-alldbs] [-sshkey=sshkey_file]
前述のコマンドの内容は次のとおりです:
-
patchidは、適用するパッチを識別します。ノート:
使用可能なパッチ識別子を見つける方法の詳細は、使用可能なパッチのリストを参照してください。 -
-instanceNでは、パッチ適用操作の対象のコンピュート・ノードおよびOracleホーム・ディレクトリを指定します。 このコンテキストでは、Oracleホーム・ディレクトリは、Oracle Databaseホーム・ディレクトリまたはOracle Grid Infrastructureホーム・ディレクトリになります。この引数を使用して共有Oracleホーム・ディレクトリを指定し、
-dbname引数を指定しない場合、指定したOracleホームを共有するすべてのデータベースにパッチが適用されます。 -
-dbnamesでは、パッチ適用操作のターゲットであるデータベースのデータベース名を指定します。このオプションを使用して共有Oracle Homeを使用するデータベースにパッチを適用し、
-alldbsオプションを指定しない場合、パッチが適用されたOracle Databaseバイナリを含む別のOracle Homeにデータベースが移動されます。 -
-alldbsは、-dbnames引数で指定されたデータベースと同じOracle Databaseバイナリ(Oracleホーム)を共有するすべてのデータベースにパッチを適用します。 -
--run_datasqlは、パッチに関連付けられたSQLコマンドの実行を制御します:-
--run_datasql 1は、パッチに関連付けられたSQLコマンドを実行します。 -
--run_datasql 0は、パッチに関連付けられたSQLコマンドを実行しません。
引数が指定されていない場合、パッチ関連のSQLがデフォルトで実行されます。これは
--run_datasql 1と同等です。パッチ関連SQLは、すべてのコンピュート・ノードにパッチが適用された後でのみ実行されます。 1つのノードにパッチを適用し、それ以外のノードはまだパッチを適用しない場合は、必ず
--run_datasql 0を指定してください。この引数は、コンピュート・ノードでパッチ適用操作を行う場合のみ指定できます。 すべてのノードにパッチを適用し、この引数を指定しなかった場合は、パッチに関連付けられているSQLコマンドを手動で実行する必要があります。通常、これには、Oracle Database 11gの場合は
catbundle.sqlスクリプト、Oracle Database 12c以降の場合はdatapatchユーティリティの実行が含まれます。 詳細は、パッチのドキュメントを参照してください。 -
-
-sshkeyでは、オプションでクラスタ内のコンピュート・ノードへの接続に使用される、opcユーザーのSSH秘密キーの場所を指定します。
次に例を示します。
# /var/opt/oracle/exapatch/exadbcpatchmulti -apply_async 23456789 -instance1=hostname1:/u02/app/oracle/product/12.1.0.2/dbhome_1 -instance2=hostname2:/u02/app/oracle/product/12.1.0.2/dbhome_1 -run_datasql=1 -sshkey=/home/opc/.ssh/id_rsa -
ノート:
時間およびストレージ領域を保存するために、パッチ適用操作によって、パッチが適用されたOracle Databaseバイナリがすでに含まれている別のOracle Homeにデータベースが移動される場合があります。
dbaascliコマンドを使用したパッチの適用
次のように、dbaascliコマンドを使用してパッチ適用操作を実行できます:
-
opcユーザーとしてコンピュート・ノードに接続し、コマンド・シェルをrootユーザーとして起動します。詳細な手順は、「Secure Shell (SSH)経由でのコンピュート・ノードへの接続」を参照してください。
-
dbaascli patch db applyコマンドを実行します:-
特定のインスタンスの場合:
# dbaascli patch db apply --patchid patchid --instance1 hostname:oracle_home [--dbnames dbname[,dbname2 ...]] [--run_datasql (0|1)] -
データベース名のみを指定する場合:
# dbaascli patch db apply --patchid patchid --dbnames dbname[,dbname2 ...] [--run_datasql (0|1)] [-alldbs]
前述のコマンドの内容は次のとおりです:
-
patchidは、適用するパッチを識別します。ノート:
使用可能なパッチ識別子を見つける方法の詳細は、使用可能なパッチのリストを参照してください。 -
--instance1では、パッチ適用操作の対象のコンピュート・ノードおよびOracleホーム・ディレクトリを指定します。 このコンテキストでは、Oracleホーム・ディレクトリは、Oracle Databaseホーム・ディレクトリまたはOracle Grid Infrastructureホーム・ディレクトリになります。この引数を使用して共有Oracleホーム・ディレクトリを指定し、
--dbname引数を指定しない場合、指定したOracleホームを共有するすべてのデータベースにパッチが適用されます。 -
--dbnamesでは、パッチ適用操作のターゲットであるデータベースのデータベース名を指定します。このオプションを使用して共有Oracle Homeを使用するデータベースにパッチを適用し、
-alldbsオプションを指定しない場合、パッチが適用されたOracle Databaseバイナリを含む別のOracle Homeにデータベースが移動されます。 -
-alldbsは、--dbnames引数で指定されたデータベースと同じOracle Databaseバイナリ(Oracleホーム)を共有するすべてのデータベースにパッチを適用します。 -
--run_datasqlは、パッチに関連付けられたSQLコマンドの実行を制御します:-
--run_datasql 1は、パッチに関連付けられたSQLコマンドを実行します。 -
--run_datasql 0は、パッチに関連付けられたSQLコマンドを実行しません。
引数が指定されていない場合、パッチ関連のSQLがデフォルトで実行されます。これは
--run_datasql 1と同等です。パッチ関連SQLは、すべてのコンピュート・ノードにパッチが適用された後でのみ実行されます。 1つのノードにパッチを適用し、それ以外のノードはまだパッチを適用しない場合は、必ず
--run_datasql 0を指定してください。この引数は、コンピュート・ノードでパッチ適用操作を行う場合のみ指定できます。 すべてのノードにパッチを適用し、この引数を指定しなかった場合は、パッチに関連付けられているSQLコマンドを手動で実行する必要があります。通常、これには、Oracle Database 11gの場合は
catbundle.sqlスクリプト、Oracle Database 12c以降の場合はdatapatchユーティリティの実行が含まれます。 詳細は、パッチのドキュメントを参照してください。 -
次に例を示します。
# dbaascli patch db apply --patchid 23456789 --instance1 hostname1:/u02/app/oracle/product/12.1.0.2/dbhome_1 --run_datasql 1 -
ノート:
時間およびストレージ領域を保存するために、パッチ適用操作によって、パッチが適用されたOracle Databaseバイナリがすでに含まれている別のOracle Homeにデータベースが移動される場合があります。
パッチの適用がOracleホームに与える影響
このトピックでは、exadbcpatchmultiまたはdbaascliを使用したパッチの適用が環境内のOracleホームに与える影響について説明します。
Oracle Databaseパッチを適用すると、Oracleホーム名が更新され、新しく適用されたパッチのリリース・レベルが反映されます。
たとえば、2019年4月のパッチ・セット更新でOracle Database 18cを使用するデプロイメントのOracleホーム名は、OraHome100_18600_dbru190416_0のようになります。 ただし、2020年1月のパッチ・セット更新の適用後、Oracleホーム名はOraHome100_18900_dbru200114_0に変更されます。
これは、Oracle Database Cloud Serviceコンソールを使用して適用するかどうか、exadbcpatchmultiまたはdbaascliユーティリティを使用してパッチを適用するかどうかに関係なく発生します。
ただし、exadbcpatchmultiまたはdbaascliユーティリティを使用してパッチを適用した場合、変更されたOracleホーム名はOracle Database Cloud Serviceコンソールで更新されません。 したがって、更新されたOracleホーム名は、既存のデータベース・デプロイメントに関連付けられた詳細を表示するコンソール・ページには表示されず、コンソールを使用して新しいデータベース・デプロイメントを作成する際に既存のOracleホームのリストに表示されません。
既存のデータベース・デプロイメントの正しいOracleホームの詳細を表示するには、dbaascli dbhome infoコマンドを使用します。 dbaascliユーティリティを使用したOracleホームに関する情報の表示を参照してください。
Oracle Database Cloud Serviceコンソールに表示されないパッチ適用済のOracleホーム名を使用してデータベース・デプロイメントを作成するには、次のオプションを使用します:
-
Oracleホーム - デフォルトのままにして、新しいOracleホーム・ディレクトリの場所を作成するオプションを指定します。 リストから既存のOracleホームの場所を選択しないでください。
-
Oracleホーム名 - 新しいデータベース・デプロイメントに使用するパッチ適用済のOracleホームのフル・ネームを指定します。
この手順を使用した後、コンソールを使用して別の新しいデータベース・デプロイメントを作成すると、パッチ適用済のOracleホームの名前が既存のOracleホームのリストに表示されます。