6 既知の問題と回避方法
ORA-12154: TNS:接続識別子を解決できませんでした
説明: Oracle Exadata Database Service on Dedicated Infrastructure (ExaDB-D)上のデータベースのExadataフリート更新コレクションのパッチ適用サイクルの完了後に、特定のデータベースのORA-12154: TNS:could not resolve the connect identifier。
<Database home>/bin/sqlplus <db_user>/<db_pass>@<tns service name>
SQL*Plus: Release x.x.x.x.x
Version x.x.x.x.x
Copyright (c) 1982, 2022, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Enter user-name:
アクション: 特定のデータベースの古いOracleホームから現在のOracleホームにファイルをコピーします。
cp <old_oracle_home>/network/admin/<dbname>/* <current_oracle_home>/network/admin/<dbname>/
DBパッチの適用に失敗
説明: データベース・パッチの適用は、パラメータ
WALLET_LOCATION
またはENCRYPTION_WALLET_LOCATION
と、sqlnet.ora
ファイル内の値が次のように分割または分割されると失敗します:WALLET_LOCATION=
(SOURCE= (METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/grid/tcps_wallets)))
ENCRYPTION_WALLET_LOCATION=
(SOURCE= (METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/ST1001DB/wallet_root/tde)))
アクション: 影響を受ける
sqlnet.ora
ファイルを次のように変更して、パラメータWALLET_LOCATION
およびENCRYPTION_WALLET_LOCATION
とその値が同じ行にあることを確認します。WALLET_LOCATION= (SOURCE= (METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/grid/tcps_wallets)))
ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/ST1001DB/wallet_root/tde)))
Oracle Exadata Database Service on Dedicated Infrastructureのコレクションの作成に失敗する(ExaDB-D)
説明: イングレスのソースCIDRが宛先ポート7085に対して大きすぎます。 パブリック・サブネットocid
のCIDRブロックを指定して、関連するセキュリティ・ルールのソースCIDRを更新します。
アクション: 次のようにセキュリティ・ルールを更新します:
- ステートレス: いいえ(すべてのルールはステートフルである必要があります)
- ソース・タイプ: CIDR
- ソースCIDR: クライアント・サブネットCIDR
- IPプロトコル: TCP
- ソース・ポート範囲: すべて
- 宛先ポート範囲: 7085
- 説明: オプションで、ルールのわかりやすい説明を追加します。 たとえば、サブネット内のExadataフリート更新プライベート・エンドポイントへのアクセスを許可します。
Exadata Cloud ServiceでExadataフリート更新を介した23.7から23.5へのデータベースのロールバックが失敗
アクション:
23.7から23.5に戻すときにロールバックが失敗しないようにするには、次の回避策を適用します:
- OPatch適用を使用して、パッチ37547027を23.5 DBホームへの個別適用として適用します。
- 修正を適用した後、23.7から23.5へのロールバック操作を続行します。
これにより、エラーが発生することなくロールバック・プロセスが成功します。
(または)
23.7から23.5へのロールバック中に
datapatch
出力で次のエラーが発生した場合は、次のステップに従って解決します。Error: prereq checks failed! patch 36741532: Value of ru_version is undefined in dba_registry_sqlpatch_ru_info in PDB PDB$SEED
- 環境変数を設定してください
export ORACLE_HOME="<targetHomePath>" export ORACLE_SID="<DBSID>"
- SYSDBAとしてSQL*Plusに接続
$ORACLE_HOME/bin/sqlplus / as sysdba
PDB$SEED
を読取り/書込みモードで開くalter session set "_oracle_script"=true; alter pluggable database pdb$seed close instances=all; alter pluggable database pdb$seed open read write instances=all;
PDB$SEED
に切り替えてエラーを確認alter session set container=pdb$seed; select * from dba_errors;
次のようなエラーが発生することがあります:PLS-00907: cannot load library unit SYS.SYS_STUB_FOR_PURITY_ANALYSIS (referenced by SYS.GETLONG)
- 必要なパッケージのコンパイル
alter package SYS.SYS_STUB_FOR_PURITY_ANALYSIS compile; show errors; -- Should return "No errors."
alter package dbms_lob compile body; show errors; -- Should return "No errors."
次の問合せを実行して、エラーが残っていないことを確認します:select * from dba_errors;
PDB$SEED
を読取り専用モードでクローズして再オープンalter pluggable database pdb$seed close instances=all; alter pluggable database pdb$seed open read only instances=all;
- SQL*Plusを終了します
exit;
datapatch
を実行してSQLパッチを適用$ORACLE_HOME/OPatch/datapatch -verbose
複数のPDBがあり、パッチ適用ワークロードを複数のノードに分散する場合は、
-pdbs
オプションを使用できます。- データベースを再起動します
# Stop the database srvctl stop database -d <DB_NAME>
# Start the database srvctl start database -d <DB_NAME>
- PDBの状態の検証
再起動後、すべてのPDBがRESTRICTEDモードから解放され、23.5へのロールバックが成功します。