Oracle 19c Active Data Guard環境におけるパッチ適用およびロールバック手順

前提条件と環境の確認

本手順は、Oracle 19c(19.3.0.0.0)を対象としたパッチ適用プロセスを解説します。作業前に、プライマリ・スタンバイ両サーバーの環境変数($ORACLE_HOME)が適切に設定されていることを確認してください。

1. OPatchツールの更新

最新のRU(Release Update)を適用するためには、所定のバージョン以上のOPatchツールが必要です。以下のコマンドで既存のディレクトリを退避し、新しいツールを配置します。

# 旧OPatchのバックアップと新ツールの展開
cd $ORACLE_HOME
mv OPatch OPatch_backup
unzip -q /tmp/p6880880_190000_linux64.zip -d $ORACLE_HOME

# 権限の適正化
chown -R oracle:oinstall $ORACLE_HOME/OPatch
chmod -R 755 $ORACLE_HOME/OPatch

# バージョン確認
opatch version

2. 事前バックアップの実施

万が一の事態に備え、Oracleホームディレクトリ全体をアーカイブします。

tar -czvf db_home_backup_$(date +%Y%m%d).tar.gz -C $ORACLE_HOME .

3. データベースおよびリスナーの停止

パッチ適用のため、稼働中のプロセスをすべて停止します。

# リスナー停止
lsnrctl stop

# データベースの停止
sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF

4. パッチの適用

パッチファイルを展開し、適用前の競合チェックを実行してからパッチを反映させます。

# パッチの展開
unzip /tmp/patch_35943157.zip -d /tmp/patches/
cd /tmp/patches/35943157

# 競合チェック
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

# パッチ適用 (スタンバイ、その後プライマリの順に実施)
opatch apply

5. データベースの更新処理(Post-patch)

SQL層の更新を行うため、データベースを起動しdatapatchを実行します。

# データベースの起動
lsnrctl start
sqlplus / as sysdba <<EOF
startup;
exit;
EOF

# SQL変更の反映
cd $ORACLE_HOME/OPatch
./datapatch -verbose

6. OS権限の設定

セキュリティのため、extjob実行ファイルの所有者と権限を修正します。

chown root $ORACLE_HOME/bin/extjob
chmod 4750 $ORACLE_HOME/bin/extjob

7. パッチ適用状況の確認

以下のクエリで、リポジトリにパッチ情報が正しく登録されているか確認します。

sqlplus / as sysdba <<EOF
SELECT version, version_full FROM dba_registry;
EXIT;
EOF

8. パッチのロールバック手順

適用したパッチを元に戻す必要がある場合は、以下の手順に従います。

# 1. データベース停止
lsnrctl stop
sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF

# 2. ロールバックの実行
cd $ORACLE_HOME/OPatch
opatch rollback -id 35943157

# 3. データベース再起動とSQLの整合性確保
lsnrctl start
sqlplus / as sysdba <<EOF
startup;
-- datapatchでロールバックが必要な場合のみ実行
-- ./datapatch -verbose
exit;
EOF

タグ: Oracle 19c DataGuard Patching OPatch

6月29日 23:16 投稿