データベースの更新

この記事では、コンソールおよびAPIを使用してDBシステムのデータベースを更新する手順について説明します。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。

管理者の場合: 「データベース管理者がOracle Cloudデータベース・システムを管理できるようにします」のポリシーにより、指定したグループがデータベースおよび関連データベース・リソースに対してすべてのことを実行できるようになります。

ポリシーを初めて使用する場合は、ポリシーの開始および共通ポリシーを参照してください。データベースのポリシーの記述方法の詳細は、データベース・サービスの詳細を参照してください。

データベースの更新について

Oracleでは、DBシステム内のデータベースを更新する前にDBシステムを更新することをお薦めします。

承認された最新のリリース更新は、デフォルトで利用可能です。表示されるメッセージを確認した後、前述の2つのリリース更新(N-1またはN-2)のいずれかを選択することもできます。N-2より前のリリース更新を使用するには、サービス・リクエストを発行する必要があります。

また、カスタム・データベース・ソフトウェア・イメージを使用してOracle AI Databaseを更新することもできます。選択可能なイメージは、該当するリリース選択コントロールによって異なります。

次のことは、12.1と12.2の2022年4月の更新以降、および19cの2022年7月の更新以降の、Oracleベースの更新にのみ適用されます。

暫定更新(旧称は個別パッチ)がインストールされている場合は、新しい更新のインストール前に、それらの暫定更新が自動的にロールバックされます。新しい更新に暫定更新が含まれていない場合は、新しい更新のインストールの完了後に、暫定更新を再度インストールできます。

データベースに暫定更新がインストールされている場合は、新しい更新後に暫定更新をインストールしないように、カスタム・データベース・ソフトウェア・イメージを使用し、そのイメージを使用してデータベースを更新することをお薦めします。

事前チェックの実行後、dbcliで次のコマンドを実行して、追加の暫定更新をインストールしているかどうかを確認できます。

dbcli describe-job -i <job id>

ここで、job id (dbcli list-jobs)は事前チェック実行のジョブIDです。

Oracleホーム内のすべての変更は、新しく更新およびインストールされたデータベースにコピーされます。

注意:

DBシステムは、OCI内のアイデンティティおよびオブジェクト・ストレージのエンドポイントにアクセスできる必要があります。プライベート・サブネットで実行されているDBシステムが、サービス・ゲートウェイのみで構成されており、追加のゲートウェイ(NATゲートウェイなど)がない場合、サービス・ゲートウェイが、オブジェクト・ストレージのみでなく、すべてのOracleサービスへのアクセスを許可するように設定されていることを確認する必要があります。アイデンティティおよびオブジェクト・ストレージのエンドポイントに他の手段でアクセスできる場合、変更は必要ありません。

現在使用可能なデータベース更新のリストの詳細は、現在使用可能な更新を参照してください。

ノート: OJVMの更新は、OPATCHツールを使用して手動で適用する必要があります。

データベース・ソフトウェア・イメージを使用した暫定更新の適用

DBシステムに暫定更新を適用することはお薦めしません。かわりに、必要な修正を含むデータベース・ソフトウェア・イメージを作成してデプロイする必要があります。暫定更新をGIホームに適用するなど、データベース・ソフトウェア・イメージを使用できない場合にのみ、サービス・リクエスト(SR)を申請し、暫定更新をダウンロードするためのサポート支援を要請できます。

データベース・ソフトウェア・イメージの詳細は、ソフトウェア・イメージに関する項を参照してください。

データベースの更新

OCIコンソールを使用して、古い更新リリースのデータベースを更新するには、次のステップを実行します。

  1. 「DBシステム」リスト・ページで、操作するデータベースを含むDBシステムを選択します。リスト・ページまたはDBシステムの検索に関するヘルプが必要な場合は、DBシステムのリストを参照してください。
  2. 「データベース」タブで、操作するデータベースを選択します。
  3. データベースの詳細ページで、「更新」タブを選択して、データベースで使用可能な更新のリストを表示します。
  4. 目的のアップデートに対する「アクション」メニューから、次のいずれかのアクションを選択します。

    • 詳細の表示: この更新の詳細を表示します。
    • 事前チェック: 更新が正常に適用できることを確認するために、前提条件をチェックします。
    • 更新の適用: 選択した更新を適用します。更新を適用する前に、更新の事前チェック操作を実行することをお薦めします。

リストでは、「状態」に操作のステータスが表示されます。更新の適用中は、「状態」が「更新中」と表示されます。データベースのステータスも「更新中」として表示されます。データベースとそのリソースに対するライフサイクル操作は、一時的に使用できなくなる可能性があります。更新が正常に完了すると、状態が「適用済」に変わり、データベースのステータスが「使用可能」に変わります。

データベース更新履歴の表示

OCIコンソールを使用してデータベースの更新履歴を表示するには、次のステップを実行します。

ノート:コンソールの更新履歴には、dbcliやパッチ適用ユーティリティなどのコマンドライン・ツールを使用して適用された更新は表示されません。

  1. 「DBシステム」リスト・ページで、操作するデータベースを含むDBシステムを選択します。リスト・ページまたはDBシステムの検索に関するヘルプが必要な場合は、DBシステムのリストを参照してください。
  2. 「データベース」タブで、操作するデータベースを選択します。
  3. 詳細ページで、「更新履歴」タブを選択して、そのデータベースの更新操作およびアップグレード操作の履歴を表示します。

暫定更新の適用

ノート:このトピックは、単一ノードおよびマルチノードのRAC DBシステムのデータベース・ホームにのみ適用されます。

暫定更新を適用して特定の障害を修正するには、この項の手順に従います。Opatchユーティリティを使用して、暫定更新をデータベース・ホームに適用します。

ノート:手順の例では、データベース・ホーム・ディレクトリは/u02/app/oracle/product/12.1.0.2/dbhome_1で、更新番号は26543344です。

  1. My Oracle Supportから適用可能な暫定更新を取得します。

  2. 更新README.txtファイルで情報を確認します。このファイルには、更新を正常に適用するために実行する必要がある追加手順やカスタム手順が含まれている可能性があります。

  3. SCPまたはSFTPを使用して、ターゲット・データベースに更新を配置します。

  4. データベース・ホームで実行中の各データベースを停止します。

    srvctl stop database -db <db name> -stopoption immediate -verbose
  5. Oracleホーム環境変数を、ターゲットOracleホームを指すように設定します。

    sudo su - oracle
    export ORACLE_HOME=/u02/app/oracle/product/12.1.0.2/dbhome_1
  6. 更新を配置したディレクトリに変更し、更新を解凍します。

    cd <working directory where opatch is stored>
    unzip p26543344_122010_Linux-x86-64.zip
  7. 更新を解凍したディレクトリに変更し、競合がないか確認します。

    cd 26543344
    $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
  8. 更新を適用します。

    $ORACLE_HOME/OPatch/opatch apply
  9. 更新が正常に適用されたことを確認します。

    $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
  10. データベース・ホームにデータベースが含まれている場合は、再起動します。

    $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
  11. 更新にsqlpatchコンポーネントが含まれていることがreadmeに示されている場合は、各データベースに対してdatapatchコマンドを実行します。

    datapatchを実行する前に、すべてのプラガブル・データベース(PDB)がオープンされていることを確認します。PDBをオープンするには、SQL*Plusを使用して、PDBに対して次を実行します。

    ALTER PLUGGABLE DATABASE <pdb name> OPEN READ WRITE
    $ORACLE_HOME/OPatch/datapatch