8.4.3.2 データベース・サーバーのpatchmgr構文

patchmgrを使用して、Oracle Exadataデータベース・サーバーのソフトウェアを更新できます。

前提条件

patchmgrは、Oracle Linuxを実行しているOracle Exadataデータベース・サーバーまたはOracle Exadata以外のシステムである駆動システムで実行されます。これにより、中央のサーバーからpatchmgrを実行して、複数のOracle Exadataシステムを更新できます。patchmgrがOracle Exadataデータベース・サーバーから実行される場合、そのデータベース・サーバーは、patchmgrコマンドのターゲットにすることはできません。

データベース・サーバーのpatchmgr構文

./patchmgr --dbnodes database_node_file
{ --backup --repo { base_URL | zipped_iso_file } [--rolling] [--unkey] |
  --precheck --repo { base_URL | zipped_iso_file } --target_version version [ --unkey ]
    [ --live-update-target { highcvss | allcvss | full } ]
    [ { --additional-rpms { rpm_spec[,rpm_spec]... | rpm_dir } | 
        --additional-rpms-list rpm_list } 
      [ --additional-rpms-from-repo ] ] |
  --upgrade --repo { base_URL | zipped_iso_file } --target_version version [ --rolling ] [ --unkey ]
    [ --live-update-target { highcvss | allcvss | full } [ --live-update-schedule-outstanding-work { timestamp | never }] ] 
    [ { --additional-rpms { rpm_spec[,rpm_spec]... | rpm_dir } | 
        --additional-rpms-list rpm_list } 
      [ --additional-rpms-from-repo ] ] |
  --complete [ --target_version version ] [--unkey] |
  --rollback [--rolling] [--unkey] |
  --cleanup  [--unkey] |
  --live-update-schedule-outstanding-work { timestamp | never | reset } |
  --live-update-list-outstanding-work }
[ --log_dir { log_directory | auto } ]

メイン引数

引数 説明
--dbnodes database_node_file

database_node_fileは、patchmgr操作のターゲットであるデータベース・サーバーを識別するテキスト・ファイルです。

このファイルが存在し、各行に1つのターゲット・データベース・サーバーのホスト名またはIPアドレスが含まれている必要があります。patchmgrを実行しているサーバーは、ファイルに含めることができません。

--backup

ホスト・リストに指定されたデータベース・ノードのバックアップを実行します。

ローリング方式(一度に1つのノード)でバックアップを実行するには、--rollingオプションを指定します。

--precheck ホスト・リストで指定されたデータベース・ノードでアップグレード前の検証チェックを非ローリング方式で実行します。
--upgrade

ホスト・リストに指定されたデータベース・ノードを更新します。

ローリング方式(一度に1つのノード)で更新を実行するには、--rollingオプションを指定します。

Exadataライブ・アップデートを使用して更新を実行するには、--live-update-targetオプションを指定します。

--complete '完了ステップ'のみを実行します。通常、これはすでに--upgradeの一部として実行されているため、これを別々に実行する必要はありません。ノート: データベース・スタックまたはユーザー・ドメインが起動している場合、それを停止して再起動します。
--rollback

ホスト・ファイルに指定されたデータベース・ノードをロールバックします。

ローリング方式(一度に1つのノード)でロールバックを実行するには、--rollingオプションを指定します。

--cleanup 非ローリング方式で、ホスト・リストに指定されたデータベース・サーバーのすべての一時コンテンツをクリーン・アップします。

Exadata Databaseサーバーを更新するためのオプション

データベース・サーバーのパッチ適用およびロールバックでは、次のオプションがサポートされています:

表8-3 Exadataデータベース・サーバーのpatchmgrオプション

オプション 説明

--allow_active_network_mounts

アクティブなNFSまたはSMBマウントを使用してdbnodeupdateを実行することを許可します。

これはdbnodeupdate.sh -aコマンドと同等です。

--allow_non_signed_repo

署名されていないリポジトリでのdbnodeupdateの実行を許可します。(Oracle Exadata System Softwareリリース19.2以降)

--dbnode_patch_base

パッチISOイメージとdbnodeupdateアーカイブ・ファイルが解凍されるターゲット・データベース・サーバー上のユーザーの推奨の場所。

ノート: 提供された場所はローカル・ファイル・システムの絶対パスである必要があり、十分な空き領域およびinodeが必要です。

--force_remove_custom_rpms

データベース・サーバーの更新に主要なオペレーティング・システムの更新が含まれている場合は、カスタムRPMを削除します。たとえば、Oracle Linux 7からOracle Linux 8へのアップグレードです。

--ignore_alerts Exadataサーバーのアクティブ・ハードウェア・アラートを無視し、パッチ適用を続行します。

--log_dir ( log_directory| auto )

ログ・ディレクトリへの絶対パス、またはautoを指定して、patchmgrの起動ディレクトリおよびノード・リスト・ファイルのコンテンツに基づくログ・ディレクトリを使用できます。

--log_dirオプションを指定すると、複数のパッチ・マネージャ呼出しを実行することも、root以外のユーザーとしてパッチ・マネージャを実行することもできます。

--no_connection_draining

以前は高速ホーム・プロビジョニング(RHP)と呼ばれていたフリート・パッチ適用およびプロビジョニングのデータベース接続の排出を無効にします。接続排出の可用性は、Oracle Grid Infrastructureのリリースによって決まります。このオプションは、ローリング更新にのみ適用されます。

--nobackup

更新の前にデータベース・サーバーをバックアップしないでください。

--repo { base_URL | zipped_iso_file }

Exadata更新リポジトリのベースURLまたは圧縮されたISOファイルへのパスを指定します。

このオプションは、--backup--precheckおよび--upgradeアクションに指定する必要があります。

--rolling

更新が一度に1つのサーバーのローリング方式で実行されるよう指定します。指定しない場合、更新は非ローリング方式で実行されます。

環境変数EXA_PATCH_ACTIVATE_TIMEOUT_SECONDSは、グリッド・ディスクがアクティブ化されるまで待機するタイムアウト値を制御します。デフォルトでは36000 (10時間)に設定されます。

ノート: -rollingオプションが指定されている場合でも、常に非ローリング方式で前提条件チェックとクリーン・アップが実行されます。

--rolling_backups

各ノードを更新する前にローリング方式でバックアップするようpatchmgrに指示します。このオプションが指定されていない場合(デフォルト)、patchmgrは最初のノードを更新する前に、すべてのノードのバックアップをパラレルに完了します。

このオプションは--rollingオプションと一緒にのみ使用できます。それ以外の場合、このオプションは無視され、デフォルトのバックアップ方法が使用されます。

--nobackupがコマンドに含まれている場合、このオプションは無視されます。

--skip_gi_db_validation

Oracle Grid InfrastructureおよびOracle DatabaseホームとOracle Linux 7との互換性の動作保証をスキップします。

Oracle Linux 6からOracle Linux 7への更新の場合のみ。

--smtp_from "email_addr"

patchmgr通知の送信元(from)の電子メール・アドレスを指定します。

--smtp_to "email_addr1 email_addr2 email_addr3 ..."

patchmgr通知の送信先(to)の電子メール・アドレスを指定します。

--smtp_set_envelope_sender

「Return-Path:」メール・ヘッダーと同じ送信元(from)アドレスが使用されることを指定します。

--target_version version

パッチのREADMEファイルに指定されている完全パッチ・バージョン。例: 23.1.8.0.0.231109

このオプションは、--precheckおよび--upgradeアクションに指定する必要があります。

--unkey 終了する前にサーバーへのパスワードなしのSSHアクセスを削除します。

Exadataライブ・アップデートのオプション

Oracle Exadata System Softwareリリース24.1.0では、Exadataデータベース・サーバー用の一連の更新機能拡張であるExadataライブ・アップデートが導入されています。

Exadataライブ・アップデートでは、オンライン更新機能を使用します。更新の特定の内容によっては、データベースを中断したり、サーバーを再起動せずに操作が完了することがあります。再起動が必要な場合は、後の時点に延期することもできます。

Exadataライブ・アップデートでは、セキュリティの問題に対処するための部分的な更新もサポートされています。

ノート:

Exadataライブ・アップデートは、サポートしている特定の更新にのみ使用できます。詳細は、各更新に関連するリリース情報を常に参照してください。

次の追加オプションでは、Exadataデータベース・サーバー上のExadataライブ・アップデートがサポートされます:

表8-4 Exadataデータベース・サーバーでのExadataライブ・アップデートのpatchmgrオプション

オプション 説明

--live-update-target

Exadataライブ・アップデートを使用して操作を実行します。

--live-update-targetの後に次のいずれかの値を指定する必要があります:

  • highcvss: クリティカルなセキュリティ・アップデートのみを実行して、共通脆弱性評価システム(CVSS)スコアが7以上の脆弱性に対処します。

  • allcvss: セキュリティ・アップデートのみを実行して、CVSSスコアが1以上の脆弱性に対処します。

  • full: 完全更新を実行します。これには、セキュリティ関連のすべての更新と他のすべての非セキュリティ・アップデートが含まれます。

--live-update-schedule-outstanding-work

未処理の作業のスケジュールを制御します。

未処理の作業とは、オンラインで完了できず、システムの再起動を必要とする更新項目です。たとえば、Exadataライブ・アップデートでは、kspliceを使用してLinuxカーネルをオンラインで更新できますが、新しいLinuxカーネル・バージョンに変更するには、システムの再起動が必要です。

Exadataライブ・アップデート操作とともに未処理の作業を制御するには、--live-update-schedule-outstanding-work--live-update-targetとともに指定します。--live-update-schedule-outstanding-work--live-update-targetとともに指定しない場合、未処理の作業は、次の正常なサーバーの再起動に自動的にスケジュールされます。

--live-update-targetを指定せずに--live-update-schedule-outstanding-workを使用して、以前のExadataライブ・アップデート操作から残された未処理の作業の処理方法を変更することもできます。

--live-update-schedule-outstanding-workの後に次の値を指定できます:

  • timestamp: 指定した時間に未処理の作業をスケジュールします。

    この場合、未処理の作業が完了するのは、指定した時間の(前または後) 10分以内に正常なサーバーの再起動が開始された場合のみです。

    正常な再起動が行われずにスケジュールされた時間が経過した場合は、別の時間または次の正常なサーバーの再起動時に、未処理の作業を再スケジュールする必要があります。

    必要なタイムスタンプの書式は、"YYYY-MM-DD HH24:MM:SS"または"YYYY-MM-DD HH24:MM:SS TZ"です。タイム・ゾーン(TZ)を指定しない場合、デフォルトのタイム・ゾーン値はUTCです。前後の引用符を含める必要があります。

  • never: 未処理の作業がスケジュールされないことを指定します。この値は、未処理の作業の完了を実質的に無効にします。

    この設定を使用した後に未処理の作業を完了するには、他の値のいずれかを使用して未処理の作業を再スケジュールする必要があります。

  • reset: 次の正常なサーバーの再起動時に発生するように未処理の作業を再スケジュールします(ただし、ノードの削除、停電またはシステム・クラッシュによる正常でない停止の後では発生しません)。

    この値は、--live-update-targetを指定せずに--live-update-schedule-outstanding-workを使用する場合にのみ有効です。

このオプションが適用されるのは、Exadataライブ・アップデートを使用する更新のみです。

--live-update-list-outstanding-work

未処理の作業を完了するようにスケジュールされているシステムの再起動に関する情報を表示します。

このオプションが適用されるのは、Exadataライブ・アップデートを使用する更新のみです。

追加RPMを更新するためのオプション

Oracle Linuxのメジャー・バージョン番号を変更しない更新の場合、Oracle Exadata System Softwareリリース25.1.0では、Exadataデータベース・サーバー更新操作の一部としてExadata以外の追加ソフトウェア・パッケージを更新するオプションが導入されています。この統合機能により、Exadata以外の追加ソフトウェア・パッケージがシステムにインストールされているときに発生するソフトウェア・パッケージ依存関係の問題に簡単に対処できます。

この機能を使用すると、--precheckオプションを指定してpatchmgrを繰り返し実行し、システムにインストールされているExadata以外の追加ソフトウェア・パッケージに関連するパッケージ依存関係の問題を検出して解決できます。クリーンな更新に必要な追加パッケージ更新を理解すると、Exadataデータベース・サーバー更新を自信を持って実行し、同時に追加パッケージを更新できます。

次の追加オプションを使用すると、patchmgrを使用してExadataデータベース・サーバーのExadata以外の追加ソフトウェア・パッケージを更新できます。

ノート:

Oracle Linuxのメジャー・バージョン番号を変更する更新では、次のオプションは使用できません。たとえば、Oracle Linux 7からOracle Linux 8へのアップグレードです。

表8-5 追加RPMを更新するためのpatchmgrオプション

オプション 説明

--additional-rpms { rpm_spec[,rpm_spec]... | rpm_dir

オプションで、事前チェック操作または更新操作中に含める追加パッケージ(RPM)を指定します。

追加RPMをカンマ区切りリストとして指定することも、追加RPMが含まれるディレクトリの名前を指定することもできます。

--additional-rpms-from-repoオプションを使用せずにこのオプションを指定した場合、patchmgrを実行しているサーバーでは、追加RPMファイルにアクセスしてターゲット更新サーバーに転送する必要があります。この場合、完全ファイル・パスまたはHTTP(S) URLを使用して各RPMを識別する必要があります。

あるいは、--additional-rpms-from-repoオプションを追加して、YumまたはDNFリポジトリからRPMを直接ダウンロードするように更新ターゲット・サーバーに指示することもできます。この場合、各RPMは名前で識別できます。

--additional-rpms-list rpm_list

オプションで、事前チェック操作または更新操作中に含める追加パッケージ(RPM)のリストを含むテキスト・ファイルを指定します。

ファイルでは、各RPMを別個の行で指定する必要があります。

--additional-rpms-from-repoオプションを使用せずにこのオプションを指定した場合、patchmgrを実行しているサーバーでは、追加RPMファイルにアクセスしてターゲット更新サーバーに転送する必要があります。この場合、完全ファイル・パスまたはHTTP(S) URLを使用して各RPMを識別する必要があります。

あるいは、--additional-rpms-from-repoオプションを追加して、YumまたはDNFリポジトリからRPMを直接ダウンロードするように更新ターゲット・サーバーに指示することもできます。この場合、各RPMは名前で識別できます。

--additional-rpms-from-repo

オプションで、YumまたはDNFリポジトリからRPMを直接ダウンロードするように更新ターゲット・サーバーに指示します。

このオプションを使用するには、ターゲット・サーバーで適切なリポジトリが構成され、構成済リポジトリがターゲット・サーバーからアクセス可能である必要があります。

例8-7 データベース・サーバーのバックアップ後の更新の実行

次のコマンドは、Oracle Exadataデータベース・サーバーをバックアップし、データベース・サーバー更新の前提条件チェックを実行し、データベース・サーバーをローリング形式で更新します。

[root@pmserver ~]# ./patchmgr --dbnodes dbnode_group --backup --repo /var/stage/p35869377_231000_Linux-x86-64.zip --target_version 23.1.8.0.0.231109

[root@pmserver ~]# ./patchmgr --dbnodes dbnode_group --precheck --repo /var/stage/p35869377_231000_Linux-x86-64.zip --target_version 23.1.8.0.0.231109

[root@pmserver ~]# ./patchmgr --dbnodes dbnode_group --upgrade --nobackup --repo /var/stage/p35869377_231000_Linux-x86-64.zip --target_version 23.1.8.0.0.231109 --rolling

例8-8 Exadataライブ・アップデートを使用した更新の実行

次のコマンドは、Exadataライブ・アップデートを使用して完全更新を実行します。最初のコマンドは、事前チェック操作を実行します。2番目のコマンドは更新を実行します。3番目のコマンドは、更新によって発生した未処理の作業をすべて延期します。4番目のコマンドは、更新によって発生した未処理の作業に関する情報を表示します。最後のコマンドは、特定の時間に未処理の作業をスケジュールします。

[root@pmserver ~]# ./patchmgr --dbnodes dbs_group --precheck --repo /my/dir/exadata_ol8_24.1.0.0.0.240409_Linux-x86-64.zip --target_version 24.1.0.0.0.240409 --log_dir auto --live-update-target full

[root@pmserver ~]# ./patchmgr --dbnodes dbs_group --upgrade --repo /my/dir/exadata_ol8_24.1.0.0.0.240409_Linux-x86-64.zip --target_version 24.1.0.0.0.240409 --log_dir auto --live-update-target full

[root@pmserver ~]# ./patchmgr --dbnode dbs_group --live-update-schedule-outstanding-work never --log_dir auto

[root@pmserver ~]# ./patchmgr --dbnodes dbs_group --live-update-list-outstanding-work --log_dir auto

[root@pmserver ~]# ./patchmgr --dbnode dbs_group --live-update-schedule-outstanding-work "2024-12-31 23:10:10 PDT" -log_dir auto

例8-9 追加RPMを含む事前チェックの実行

この例では、--additional-rpmsオプションを使用してコマンドラインに指定された追加RPMファイルを含む事前チェックを示します。この場合、patchmgrコマンドは--additional-rpms-from-repoオプションを使用しないため、patchmgrは、追加RPMファイルにアクセスして各ターゲット・サーバーに転送する必要があります。

[root@pmserver ~]# patchmgr --dbnodes dbs_group --precheck --repo /my/dir/exadata_ol8_25.1.0.0.0.241130_Linux-x86-64.zip --target_version 25.1.0.0.0.241130 --log_dir auto 
                      --additional-rpms /my/dir/rpms/elfutils-debuginfod-client-0.190-2.el8.x86_64.rpm,/my/dir/rpms/elfutils-libelf-devel-0.190-2.el8.x86_64.rpm,/my/dir/rpms/keyutils-libs-devel-1.5.10-9.0.1.el8.x86_64.rpm

例8-10 追加RPMを含む更新の実行

この例では、/my/dir/additionalpackages1.txtのテキスト・ファイルにローカル・ファイル名のリストとして指定された追加RPMファイルを含む更新を示します。この場合、patchmgrコマンドは--additional-rpms-from-repoオプションを使用しないため、patchmgrは、追加RPMファイルにアクセスして各ターゲット・サーバーに転送する必要があります。

[root@pmserver ~]# cat /my/dir/additionalpackages1.txt
/my/dir/rpms/elfutils-debuginfod-client-0.190-2.el8.x86_64.rpm
/my/dir/rpms/elfutils-libelf-devel-0.190-2.el8.x86_64.rpm
/my/dir/rpms/keyutils-libs-devel-1.5.10-9.0.1.el8.x86_64.rpm
/my/dir/rpms/krb5-devel-1.18.2-28.0.1.el8_10.x86_64.rpm

[root@pmserver ~]# ./patchmgr --dbnodes dbs_group --upgrade --repo /my/dir/exadata_ol8_25.1.0.0.0.241130_Linux-x86-64.zip --target_version 25.1.0.0.0.241130 --log_dir auto --additional-rpms-list /my/dir/additionalpackages1.txt

例8-11 追加RPMを使用する更新の実行

この例では、/my/dir/additionalpackages1.txtのテキスト・ファイルにHTTPS URLのリストとして指定された追加RPMファイルを含む更新を示します。この場合、patchmgrコマンドは--additional-rpms-from-repoオプションを使用しないため、patchmgrは、追加RPMファイルをダウンロードして各ターゲット・サーバーに転送する必要があります。

[root@pmserver ~]# cat /my/dir/additionalpackages2.txt
https://yum-mirror.example.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/sssd-nfs-idmap-2.9.4-3.0.1.el8_10.x86_64.rpm
https://yum-mirror.example.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/timedatex-0.5-3.el8.x86_64.rpm
https://yum-mirror.example.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/zlib-devel-1.2.11-25.el8.x86_64.rpm

[root@pmserver ~]# ./patchmgr --dbnodes dbs_group --upgrade --repo /my/dir/exadata_ol8_25.1.0.0.0.241130_Linux-x86-64.zip --target_version 25.1.0.0.0.241130 --log_dir auto --additional-rpms-list /my/dir/additionalpackages2.txt

例8-12 追加RPMを使用する更新の実行

この例では、/my/dir/additionalpackages3.txtのテキスト・ファイルに指定された追加RPMファイルを含む更新を示します。この例では、--additional-rpms-from-repoオプションを使用しているため、追加RPMファイルを識別するファイルにはRPM名のみが必要です。この場合、patchmgrは各ターゲット・サーバーにRPM名のみを伝播し、各ターゲット・サーバーは適切に構成されたYumまたはDNFリポジトリからRPMを直接ダウンロードします。

[root@pmserver ~]# cat /my/dir/additionalpackages3.txt
elfutils-debuginfod-client-0.190-2.el8.x86_64.rpm
elfutils-libelf-devel-0.190-2.el8.x86_64.rpm
keyutils-libs-devel-1.5.10-9.0.1.el8.x86_64.rpm
krb5-devel-1.18.2-28.0.1.el8_10.x86_64.rpm
zlib-devel-1.2.11-25.el8.x86_64.rpm

[root@pmserver ~]# ./patchmgr --dbnodes dbs_group --upgrade --repo /my/dir/exadata_ol8_25.1.0.0.0.241130_Linux-x86-64.zip --target_version 25.1.0.0.0.241130 --log_dir auto --additional-rpms-list /my/dir/additionalpackages3.txt --additional-rpms-from-repo

関連トピック