そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

ORA-48132リクエストされたファイル・ロックはビジーです。ORA-48170ファイルをロックできません すでに使用されています

※[PR]当ブログの記事の中にはプロモーションが含まれています。

Oracleデータベースで「ORA-48132」「ORA-48170」エラーが出た。
・原因や対処方法を教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. 「ORA-48132: リクエストされたファイル・ロックはビジーです。」エラー
  2. 「ORA-48170: ファイルをロックできません - すでに使用されています」エラー

サトナカ (@souiunogaii)

この記事を書いている私は、某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>

これでしばらく様子を見ようと思います。