データベースの更新
この記事では、コンソールおよびAPIを使用してDBシステムのデータベースを更新する手順について説明します。
必要なIAMポリシー
Oracle Cloud Infrastructureを使用するには、管理者からポリシーでセキュリティ・アクセス権が付与されている必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。
管理者の場合: 「データベース管理者がOracle Cloudデータベース・システムを管理できるようにします」のポリシーにより、指定したグループがデータベースおよび関連データベース・リソースに対してすべてのことを実行できるようになります。
ポリシーを初めて使用する場合は、ポリシーの開始および共通ポリシーを参照してください。データベースのポリシーの記述方法の詳細は、データベース・サービスの詳細を参照してください。
データベースの更新について
Oracleでは、DBシステム内のデータベースを更新する前に、そのDBシステムを更新することをお薦めします。
Oracle Databaseでは、最新バージョン4つ(NからN-3)の更新を使用できます。たとえば、インスタンスが21cを使用しており、提供されている21cの最新バージョンが21.10.0.0の場合、21.10.0.0、21.9.0.0、21.8.0.0および21.7.0.0はOracle Databaseの更新に使用できます。これらの更新のいずれかを使用できますが、Oracleでは最新の使用をお薦めします。
カスタム・データベース・ソフトウェア・イメージを使用してOracle Databaseを更新することもできます。ソフトウェア・イメージを使用して更新する場合、Oracleでは、4つの最新バージョン(NからN-3)のいずれかに基づくイメージを使用した更新がサポートされています。
次のことは、12.1と12.2の2022年4月の更新以降、および19cの2022年7月の更新以降の、Oracleベースの更新にのみ適用されます。
暫定更新(旧称は個別パッチ)がインストールされている場合は、新しい更新のインストール前に、それらの暫定更新が自動的にロールバックされます。新しい更新に暫定更新が含まれていない場合は、新しい更新のインストールの完了後に、暫定更新を再度インストールできます。
データベースに暫定更新がインストールされている場合は、新しい更新後に暫定更新をインストールしないように、カスタム・データベース・ソフトウェア・イメージを使用し、そのイメージを使用してデータベースを更新することをお薦めします。
事前チェックの実行後、dbcliで次のコマンドを実行して、追加の暫定更新をインストールしているかどうかを確認できます。
dbcli describe-job -i <job id>
ここで、job id
(dbcli list-jobs
)は事前チェック実行のジョブIDです。
Oracleホーム内のすべての変更は、新しく更新およびインストールされたデータベースにコピーされます。
ノート:
- データベース・ホーム内のファイルを変更することはお薦めしません。
- データベース・ホームに加えたすべての変更が正しくコピーされたか確認してください。
tnsnames.ora
、listener.ora
などのファイルまたはフォルダをデータベース・ホームにコピーした場合は、それらのファイルを手動でバックアップする必要があります。
DBシステムは、OCI内のアイデンティティおよびオブジェクト・ストレージのエンドポイントにアクセスできる必要があります。プライベート・サブネットで実行されているDBシステムが、サービス・ゲートウェイのみで構成されており、追加のゲートウェイ(NATゲートウェイなど)がない場合、サービス・ゲートウェイが、オブジェクト・ストレージのみでなく、すべてのOracleサービスへのアクセスを許可するように設定されていることを確認する必要があります。アイデンティティおよびオブジェクト・ストレージのエンドポイントに他の手段でアクセスできる場合、変更は必要ありません。
現在使用可能なデータベース更新のリストの詳細は、現在使用可能な更新を参照してください。
ノート:
OJVM更新は、OPATCHツールを使用して手動で適用する必要があります。データベース・ソフトウェア・イメージを使用した暫定更新の適用
DBシステムに暫定更新を適用することはお薦めしません。かわりに、必要な修正を含むデータベース・ソフトウェア・イメージを作成してデプロイする必要があります。暫定更新をGIホームに適用するなど、データベース・ソフトウェア・イメージを使用できない場合にのみ、サービス・リクエスト(SR)を申請し、暫定更新をダウンロードするためのサポート支援を要請できます。
データベース・ソフトウェア・イメージの詳細は、ソフトウェア・イメージを参照してください。
データベース更新の適用
古い更新リリースのデータベースを更新するには、次のステップを実行します。
- ナビゲーション・メニューを開きます。「Oracle Database」を選択し、「Oracle Base Database Service」を選択します。
- コンパートメントを選択しますDBシステムのリストが表示されます。
- DBシステムのリストで、更新するデータベースが含まれるDBシステムの名前をクリックします。
- DBシステムの詳細に続いてデータベースのリストが表示されます。
- データベースのリストで、更新するデータベースの名前をクリックします。
- 「データベース情報」タブの「バージョン」で、「データベース・バージョン」フィールドの横にある「表示」リンクをクリックします。
- 「データベース」で、データベースに使用可能な更新のリストを確認します。
- 「Oracle Databaseソフトウェア・イメージ」タブには、データベースの更新に使用できる一般利用可能なOracle Databaseソフトウェア・イメージが表示されます。
- 「カスタム・データベース・ソフトウェア・イメージ」タブでは、事前に作成したデータベース・ソフトウェア・イメージを選択できます。
- 「コンパートメントの選択」セレクタを使用して、ソフトウェア・イメージを含むコンパートメントを指定します。
- 「リージョン」フィルタを使用して、別のリージョンで作成されたソフトウェア・イメージにアクセスします。
- 目的の更新の「アクション」メニューをクリックし、次のいずれかのアクションをクリックします:
- 事前チェック: 更新を正常に適用できることを確認するために、前提条件をチェックします。事前チェックを実行するには、「Precheck」をクリックし、「Confirm precheck」ダイアログで確認します。
- 適用: 選択した更新を適用します。更新を適用する前に、更新の事前チェック操作を実行することをお薦めします。更新を適用するには、「Apply」をクリックし、「Confirm」ダイアログで確認します。
リストでは、「状態」に操作のステータスが表示されます。更新の適用中は、「状態」が「更新中」と表示されます。データベースのステータスも「更新中」として表示されます。データベースおよびそのリソースに対するライフサイクル操作は一時的に使用できなくなる可能性があります。更新が正常に完了すると、「状態」が「適用済」に変更され、データベースのステータスが「使用可能」に変わります。
データベース更新履歴の表示
データベースの更新履歴を表示するには、次のステップを実行します。
ノート:
コンソールの更新履歴ビューには、dbcliやパッチ・ユーティリティなどのコマンドライン・ツールを使用して適用された更新は表示されません。- ナビゲーション・メニューを開きます。「Oracle Database」を選択し、「Oracle Base Database Service」を選択します。
- コンパートメントを選択しますDBシステムのリストが表示されます。
- DBシステムのリストで、更新の詳細を表示するデータベースが含まれるDBシステムの名前をクリックします。
- DBシステムの詳細に続いてデータベースのリストが表示されます。
- データベースのリストで、更新の詳細を表示するデータベースの名前をクリックします。
- 「データベース情報」タブの「バージョン」で、「データベース・バージョン」フィールドの横にある「表示」リンクをクリックします。
- 「更新」ページで、左側のメニューの「更新履歴」をクリックします。
- そのデータベースに対する更新およびアップグレードの操作の履歴が表示されます。
暫定更新の適用
ノート:
このトピックは、単一ノードおよびマルチノードのRAC DBシステムのデータベース・ホームにのみ適用されます。暫定更新を適用して特定の障害を修正するには、この項の手順に従います。Opatch
ユーティリティを使用して、暫定更新をデータベース・ホームに適用します。
ノート:
手順の例では、データベース・ホーム・ディレクトリは/u02/app/oracle/product/12.1.0.2/dbhome_1で、更新番号は26543344です。- My Oracle Supportから適用可能な暫定更新を取得します。
- 更新
README.txt
ファイルで情報を確認します。このファイルには、更新を正常に適用するために実行する必要がある追加手順やカスタム手順が含まれている可能性があります。 - SCPまたはSFTPを使用して、ターゲット・データベースに更新を配置します。
- データベース・ホームで実行中の各データベースを停止します。
srvctl stop database -db <db name> -stopoption immediate -verbose
- Oracleホーム環境変数を、ターゲットOracleホームを指すように設定します。
sudo su - oracle export ORACLE_HOME=/u02/app/oracle/product/12.1.0.2/dbhome_1
- 更新を配置したディレクトリに変更し、更新を解凍します。
cd <working directory where opatch is stored> unzip p26543344_122010_Linux-x86-64.zip
- 更新を解凍したディレクトリに変更し、競合がないか確認します。
cd 26543344 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
- 更新を適用します。
$ORACLE_HOME/OPatch/opatch apply
- 更新が正常に適用されたことを確認します。
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
- データベース・ホームにデータベースが含まれている場合は、再起動します。
$ORACLE_HOME/bin/srvctl start database -db <db name>
そうでない場合は、
root
ユーザーとして次のコマンドを実行します。# /u01/app/<db version>/grid/bin/setasmgidwrap o=/u01/app/oracle/product/<db version>/dbhome_1/bin/oracle
- 更新に
sqlpatch
コンポーネントが含まれていることがreadmeに示されている場合は、各データベースに対してdatapatch
コマンドを実行します。datapatch
を実行する前に、すべてのプラガブル・データベース(PDB)がオープンされていることを確認します。PDBをオープンするには、SQL*Plusを使用して、PDBに対して次を実行します。ALTER PLUGGABLE DATABASE <pdb name> OPEN READ WRITE
$ORACLE_HOME/OPatch/datapatch
APIの使用
APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
データベース更新を管理するには、次のAPIを使用します:
- ListDbHomePatches
- ListDbHomePatchHistoryEntries
- GetDbHomePatch
- GetDbHomePatchHistoryEntry
- UpdateDbHome
- UpdateDatabase
データベース・サービスのAPIの完全なリストは、データベース・サービスAPIを参照してください。