顧客ユーザー処理のサポート
Exadata Fleet Updateでは、Oracle Exadata Database Service on Dedicated Infrastructure (ExaDB-D)およびExadata Cloud@Customer (ExaDB-C@C)でのデータベース(DB)およびGrid Infrastructure (GI)のパッチ適用中に、ユーザー定義のユーザー・アクションがサポートされるようになりました。
この新機能により、適用前および適用後のスクリプトをパッチ・ワークフローに統合できるため、既存の操作フレームワークを変更することなく、リストア・ポイントの作成、utlrp.sqlの実行、構成バックアップの取得などの環境固有の要件を満たすことができます。
What’s in It for You
- プロセスの保持: Exadata Fleet Updateでパッチ適用を管理しながら、既存の自動化およびコンプライアンス・ステップを引き続き使用します。
- カスタム統合ポイント: パッチ適用の前後に、決定的なポイントにスクリプトを挿入します。
- ターゲット・スコープ: DBまたはGIのパッチ適用にスクリプトを適用し、オプションでメジャー・バージョン(12、19、23)で制限します。
- 一貫した実行: パッチ・サイクルに関連するすべてのノードでスクリプトが確実に実行されます。
仕組み
- オプトイン・モデル:
useractions.zipファイルをターゲットのdomUの/u02/efu/に配置します。 - 自動検出: Exadata Fleet Updateは、zipを
/var/opt/oracle/managed/fppua(oracle:oinstall、モード750が所有)に抽出し、安全でない同時上書きを防止します。 - 実行ポイント: スクリプトは、適用前ステージおよび適用後ステージでノード/インスタンスごとに順番に実行されます。
- エラー処理: ゼロ以外の終了コードでジョブが失敗します。パッチ適用をブロックしない場合は、終了0を使用します。
主要な概念
- ユーザー操作: カスタム・スクリプトまたはプラグイン。
- アクション・ポイント:
- DBパッチ適用: 前(インスタンスの再起動前)および後(再起動後)
- GIパッチ適用: 前(CRS事前パッチ前)および後(CRSパッチ適用後)
- ターゲット・タイプ:
dbまたはgi。 - バージョン範囲指定: 特定のメジャー・バージョン(12、19、23)にスクリプトを適用します。
ユーザー処理入力引数
カスタム・ユーザー・アクション・スクリプトの開発を容易にするために、Exadata Fleet Updateは、次の入力引数をユーザー・アクション・スクリプトに渡します。 これらの引数は、必要なアクションを実行するためにスクリプトで使用できます。
表4-1ユーザー・アクションの入力引数
| スクリプトに渡された引数 | 値の例 |
|---|---|
RHP_OPTYPE |
MOVE_DATABASE / MOVE_GIHOME |
RHP_PHASE |
PRE / POST |
RHP_SOURCEPATH |
<Source DB home> / <Source Grid Infrastructure home> |
RHP_DESTINATIONPATH |
<Patched DB home> / <Destination Grid Infrastructure home> |
RHP_DBNAME |
データベース名(orclなど)。
|
RHP_VERSION |
データベースまたはGIホーム・バージョン(19.0.0.0.0など)。 |
RHP_NODES |
バッチ内のノード(phxdbfza26 phxdbfza17など)。
|
RHP_EXEC_NODE |
現在実行されているノード(phxdbfza17など)。
|
RHP_CLIENT |
ターゲット・クラスタ名(racclusterなど)。
|
RHP_TARGETNODE |
クラスタのターゲット・ノード(例: phxdbfza17)。
|
ユーザー・アクションの有効化
- zipの準備:
oracle:oinstall(750)が所有する/u02/efu/useractions.zipを作成します。 - 構造スクリプト:
db/またはgi/ディレクトリの下に配置します。- 命名規則に従います。
db/fppua1_pre_apply.sh db/fppua1_post_apply.sh db/19/fppua1_pre_apply.sh gi/fppua2_post_apply.sh - 順序付けには数値接頭辞(
nn)を使用します。
実行動作
- 順序:
fppua1_*→fppua2_*→fppua3_*… - タイムアウト: スクリプト当たり30分。
- ユーザー・コンテキスト:
- DBスクリプトは、DB所有者(
oracle)として実行されます。 - GIスクリプトはCRSユーザーとして実行します。
- DBスクリプトは、DB所有者(
- 渡される引数:
RHP_PHASE (PRE/POST)、RHP_DBNAME、RHP_VERSION、RHP_EXEC_NODEなどの環境変数がスクリプトに提供されます。
ベスト・プラクティス
- スクリプトがべき等になり、再試行しても安全になります。
- 実行前に環境変数を検証します。
- タイムスタンプ、ノードおよびDB識別子を使用して明確にログに記録します。
- 非ブロッキング条件の場合は、終了0を使用します。
- 操作を軽量(30分未満)に保ちます。
- 対話型プロンプトや外部依存関係を回避します。
- ロールアウトする前に、非本番環境でテストします。
トラブルシューティング
- PRGH-1024: スクリプトがゼロ以外を返しました。スクリプトを修正するか、0を終了してください。
- PRCZ-4001/2103: コマンドをoracleとして実行できませんでした。所有権/権限を確認してください。
- PRGT-496: 権限が正しくないため、ユーザー処理は無視されました。
- 実行なし: 機能フラグ、zip所有権、サイズ(10MB未満)および構造を確認します。
- タイムアウト: 長時間実行スクリプトを分割または最適化します。
セキュリティおよびコンプライアンス
- スクリプトは、DB (
oracle)またはGI (CRSユーザー)所有者と同じ権限で実行されます。 - 厳密なアクセス権(
oracle:oinstall 750)が適用されます。正しく構成されていないzipは無視されます。 - 新しいアイデンティティや特権付きエスカレーションは導入されません。
- 機密情報をジョブ・ログに許可する前に、スクリプト出力で機密情報を確認します。
サマリー
Exadata Fleet Updateユーザー・アクションは、ExaDB-DおよびExaDB-C@CでのDBおよびGIパッチ適用のための制御されたセキュアな拡張メカニズムを提供します。 軽量なzipベースのアプローチと厳格な権限制御により、コンプライアンス、セキュリティ、運用基準を犠牲にすることなく、環境固有の操作を自動化されたローリング・パッチ・サイクルにシームレスに統合できます。
親トピック: How-toガイド