・Oracleデータベースで「ORA-48132」「ORA-48170」エラーが出た。
・原因や対処方法を教えてほしい。
こういった疑問に答えます。
本記事の内容
この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
こういった私が、解説していきます。
私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。
ORA-48132リクエストされたファイル・ロックはビジーです。ORA-48170ファイルをロックできません すでに使用されています
発生したエラー
Oracleデータベースのアラートログ監視をHinemosで行っていて、
以下エラーを検知しました。
監視対象ファイル
/opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/alert_ORCLCDB.log
検知メッセージ
2021-03-07T02:01:43.915661+09:00 Errors in file /opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/ORCLCDB_ora_30783.trc: ORA-48132: リクエストされたファイル・ロックはビジーです。[HM_RUN] [/opt/oracle/diag/rdbms/orclcdb/ORCLCDB/lck/AM_1618_3044626670.lck] ORA-48170: ファイルをロックできません - すでに使用されています Linux-x86_64 Error: 11: Resource temporarily unavailable Additional information: 8 Additional information: 4258
ORA-48132、ORA-48170、についてネットで検索してみると、以下が見つかりました。
ORA-48132
ORA-48132: リクエストされたファイル・ロックはビジーです。[string] [string]
原因: 別のプロセスがファイル・ロックを保持しているため、要求したファイル・ロックはビジーです。処置: 後でファイル・ロックの取得を再試行してください。
https://docs.oracle.com/cd/E96517_01/errmg/ORA-48001.html
ORA-48170
ORA-48170: ファイルをロックできません - すでに使用されています。
原因: ファイルが別のプロセスにロックされています。このファイルは、別のプロセスによって現在使用されています。処置: どのプロセスが本来このファイルを所有しているかを確認してください。
https://docs.oracle.com/cd/E96517_01/errmg/ORA-48001.html
エラーが発生した時刻に動いていた処理を調べたら、ちょうど、RMANバックアップを実行しているタイミングでしたが、バックアップ処理自体は正常に完了していました。
「ロックできない」とされているファイルは、拡張子が「.lck」のファイルで、
これも何のファイルなのかよく分かりませんでした。
/opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/ORCLCDB_ora_30783.trc
試した対処方法
よく分からないので、ひとまず、Oracleデータベースを再起動してみました。
DBにSYSDABで接続
sqlplus / as sysdba
[oracle@SV-PLUTO]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 日 3月 7 09:26:33 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 に接続されました。
DBをシャットダウン
shutdown immediate
[SYS@ORCLCDB] SQL>shutdown immediate データベースがクローズされました。 データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。
DBを起動
startup
[SYS@ORCLCDB] SQL>startup ORACLEインスタンスが起動しました。 Total System Global Area 1543500832 bytes Fixed Size 9135136 bytes Variable Size 1157627904 bytes Database Buffers 369098752 bytes Redo Buffers 7639040 bytes データベースがマウントされました。 データベースがオープンされました。
PDBの状態を確認
show pdbs
[SYS@ORCLCDB] SQL>show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO 5 FINDTPDB READ WRITE NO [SYS@ORCLCDB] SQL>
これでしばらく様子を見ようと思います。