现象描述:

环境:

操作系统:Red Hat Enterprise Linux release 8.10

数据库版本: Oracle 19.24.0.0.0 企业版

备份作业在执行RMAN备份时,告警日志中会出现ORA-48132 & ORA-48170错误,如下所示(数据库实例用xxx做了混淆)

2025-02-12T11:10:11.070519+08:00
Errors in file /xxxdb/diag/rdbms/xxx/xxx/trace/xxx_ora_3430285.trc:
ORA-48132: requested file lock is busy, [HM_RUN] [/xxxdb/diag/rdbms/xxx/xxx/lck/AM_1618_3044626670.lck]
ORA-48170: unable to lock file - already in use
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 8
Additional information: 2421413
2025-02-12T11:11:50.186760+08:00
Errors in file /xxxdb/diag/rdbms/xxx/xxx/trace/xxx_ora_3430287.trc:
ORA-48132: requested file lock is busy, [HM_RUN] [/xxxdb/diag/rdbms/xxx/xxx/lck/AM_1618_3044626670.lck]
ORA-48170: unable to lock file - already in use
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 8
Additional information: 2421413

原因分析:

备份作业之前是完全正常的,而且没有做过配置与参数的变更,突然间出现了这样的报错。研究了报错的trc文件后确定是RMAN备份时抛出的错误,另外,在分析研究过程中,我们发现如果备份的时候能够重现这个错误的话,就可以观察到有ADR file lock。如果错过了备份时间段,也可以通过AWR或ASH发现,如下截图所示:

另外,我还发现一个很奇怪的问题,如下截图所示,最开始遇到这个问题的时间是是2025-02-02,在出现这个问题后,发现备份时间从15分钟多变成了50多分钟,而且每秒写出IO(OUTPUT_BYTES_PER_SEC_DISPLAY)也变小了,也就是说RMAN备份变慢了,如下所示:

CON_ID START_TIME          END_TIME            BACKUP_TYP   IN_GB IO_IN_RATE  OUT_GB IO_OUT_RAT ELAPSED_MIN OUTPUT_D
------ ------------------- ------------------- ---------- ------- ---------- ------- ---------- ----------- --------
     1 2025-01-29 18:30:07 2025-01-29 18:45:54 DB FULL      588.6   636.47M    144.4   156.18M         15.8 DISK
     1 2025-01-30 18:30:07 2025-01-30 18:46:02 DB FULL      587.8   630.25M    143.8   154.17M         15.9 DISK
     1 2025-01-31 18:30:07 2025-01-31 18:45:54 DB FULL      587.8   635.63M    143.7   155.43M         15.8 DISK
     1 2025-02-01 18:30:07 2025-02-01 18:46:00 DB FULL      587.4   631.12M    142.9   153.52M         15.9 DISK
     1 2025-02-02 18:30:06 2025-02-02 19:21:39 DB FULL      582.1   192.73M    137.4    45.49M         51.6 DISK
     1 2025-02-03 18:30:07 2025-02-03 19:21:39 DB FULL      582.3   192.84M    137.4    45.51M         51.5 DISK
     1 2025-02-04 18:30:07 2025-02-04 19:21:39 DB FULL      582.2   192.80M    137.4    45.50M         51.5 DISK
     1 2025-02-05 18:30:07 2025-02-05 19:21:39 DB FULL      588.0   194.74M    140.7    46.59M         51.5 DISK
     1 2025-02-06 18:30:06 2025-02-06 19:21:38 DB FULL      586.4   194.22M    140.5    46.54M         51.5 DISK
     1 2025-02-07 18:30:07 2025-02-07 19:21:38 DB FULL      582.6   193.00M    136.7    45.30M         51.5 DISK
     1 2025-02-08 18:30:07 2025-02-08 19:21:39 DB FULL      583.4   193.21M    136.9    45.34M         51.5 DISK
     1 2025-02-09 18:30:07 2025-02-09 19:21:40 DB FULL      583.6   193.21M    137.3    45.45M         51.6 DISK
     1 2025-02-10 18:30:06 2025-02-10 19:21:40 DB FULL      583.7   193.17M    137.1    45.39M         51.6 DISK
     1 2025-02-11 18:30:07 2025-02-11 19:21:38 DB FULL      584.4   193.62M    137.2    45.46M         51.5 DISK
     1 2025-02-12 10:36:50 2025-02-12 11:20:23 DB FULL      590.2   231.30M    142.9    56.00M         43.6 DISK
     1 2025-02-12 11:21:35 2025-02-12 11:35:55 DB FULL      550.4   655.32M    103.1   122.71M         14.3 DISK

16 rows selected

解决这个问题是在2025-02-12日10点多,临时解决后RMAN备份速度又恢复正常了。我搜索了Oracle官方文档,关于这个错误,其实官方文档Oracle Support上有详细文档ORA-48132 ORA-48170 When Running RMAN Backups (Doc ID 2904353.1)介绍,我们这边遇到的案例跟链接内容极其相似(但是还有点不同),这里就不画蛇添足了,贴上具体内容如下所示

APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.2.0.4 and later
Information in this document applies to any platform.

SYMPTOMS

Alert log flooded with below errors while running the RMAN backup.
 
ADR or AMH operation error:; err_code=48132, "dbkh_create_pseudo_run_ctx-1"=dbkh_create_pseudo_run_ctx-1
at 0xffffffff7fff5870 placed krbb.c@25071
ORA-48132: requested file lock is busy, [HM_RUN] [/db01/app/oracle/diag/rdbms/<DB_NAME>/<SID>/lck/AM_1618_3044626670.lck]
ORA-48170: unable to lock file - already in use
SVR4 Error: 11: Resource temporarily unavailable
Additional information: 8
Additional information: 2701

'ADR file lock' wait event observed during the backup.
 
INST_ID     SID CH                            SEQ# EVENT                         STATE            SECS        
---------- ------- --------------------------- ------ ----------------------------  ---------- ----------
        1     262                               6114 SQL*Net message from client   WAITING            50
        1     467 rman channel=ORA_SBT_TAPE_1    898 ADR file lock                 WAITING             2 >>>>>>>>>>>>>>>>>>>>>>>>>
 
 
CHANGES
 
CAUSE
This symptom is being investigated by developer in Bug 10125939.
Bug 10125939 - GSFBDRA: RMAN VALIDATE HANG WAITING FOR 'ADR FILE LOCK' Closed as could not reproduce

SOLUTION
Choose the following workaround:

Solution 1:

Disable HM Monitor as below:

alter system set "_diag_hm_rc_enabled"=false scope=both;

Solution 2:

Enable krb trace , this might lead to more RMAN KRB traces to generate.

If RAC, Krb tracing needs to enabled on all nodes.

alter system set event='logon trace name krb_options level 20' scope=spfile; <==== To set it.
alter system set event='logon trace name krb_options off' scope=spfile; <==== To set it off

Solution 3:

Rename/Move lck folder.

ex: /db01/app/<BASE>/diag/rdbms/<sid>/<SID>/lck/AM_1618_3044626670.lck

Shutdown database;

cd /db01/app/<BASE>/diag/rdbms/<sid>/<SID>

mv lck lck_bkp

start the database

purge adrci

adrci>purge

这里我们通过删除lck文件了暂时解决了RMAN备份时告警日志报ORA-48132&ORA-48170错误。在Oracle Service Requests提交SR反馈给官方后,Oracle技术人员也确认是遇到了bug,不过他们反馈遇到的是Bug 35500265 - Slow backups with errors ORA-48132 ORA-48170 ( Doc ID 35500265.8 )导致。而不是上文中的Bug 10125939,官方结论如下:

-- Conclusion:

The following bug might be hit:

Bug 35500265 - Slow backups with errors ORA-48132 ORA-48170 ( Doc ID 35500265.8 )

-- Evidence:

1. The symptom that RMAN backup slow with ORA-48132 and ORA-48170 is similar.

2. 19.24 is in the scope of 35500265's effected version.

3. The patch of 35500265 is not applied in this system

关于Bug 35500265,这个Bug已将在19.25.0.0.241015中fix掉了。如果要彻底解决这个问题就必须安装相关补丁。

参考资料:

ORA-48132: Requested File Lock Is Busy, [HM_RUN] (Doc ID 3066412.1)

ORA-48132 ORA-48170 When Running RMAN Backups (Doc ID 2904353.1)

RMAN备份时遇到ORA-48132 &ORA-48170且备份变慢案例的更多相关文章

  1. mysqldump进行数据库的全备时,备份数据库的顺序是什么,就是先备份哪个库,然后再备份哪个库

    需求描述: 今天在用mysqldump工具进行数据库的备份的时候,突然想了一个问题,比如我有10个库要进行备份 那么是先备份哪个,然后再备份哪个呢,所以,做了实验,验证下. 操作过程: 1.使用--a ...

  2. Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

    原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...

  3. Percona备份mysql全库及指定数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份) Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对I ...

  4. oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性

    学习:http://www.cnblogs.com/william-lee/archive/2010/10/20/1856261.html 之前因为安装的是windows server 2008 r2 ...

  5. ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

    不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册.与单实例相同,RAC非缺省端口的监听器也是通过设置参数 ...

  6. listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

    oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 英文说明: The ...

  7. mysql完整备份时过滤掉某些库

    mysql进行完整备份时使用--all-database参数比如:#mysqldump -u root -h localhost -p --all-database > /root/all.sq ...

  8. mysql 恢复备份时出错 Unknown command ‘\”

    今天恢复mysql备份时,出现了Unknown command ‘\”这样的错误,原以为是备份文件出错,重新备份导入时还是出错.研究了一凡是因为编码的问题,解决方案如下: 使用你导出备份时的编码重新导 ...

  9. 关于GTID模式下备份时 --set-gtid-purged=OFF 参数的实验【转】

    刚刚听了吴老师是复制章节课程,对于GTID模式下备份数据--set-gtid-purged=OFF 参数有些不理解,于是乎做了实验,加深理解,得出些结论,如有错漏请批评指正! 部分备份: [root@ ...

  10. mysqldump备份时保持数据一致性

    对MySQL数据进行备份,常见的方式如以下三种,可能有很多人对备份时数据一致性并不清楚 1.直接拷贝整个数据目录下的所有文件到新的机器.优点是简单.快速,只需要拷贝:缺点也很明显,在整个备份过程中新机 ...

随机推荐

  1. 终端工具之Tabby

    我工作中用的最多的工具之一就是「终端连接工具」了,因为经常和 Linux 服务器打交道,经常在上面跑代码.排查系统问题等等. Windows 系统最常用的就是 Xshell 这款终端工具了,但是它只能 ...

  2. ecognition server注意事项

    1.4002端口是节点管理界面,默认密码admin. 2.8184端口是任务管理界面. 3.节点在线状态下,查看提交的影像矢量路径是否正确. 4.看服务器读取各个文件是否有误. 5.用develope ...

  3. JAVA开发规范v1.0

    01-中铜国贸JAVA开发规范v1.0 一.编程规约 (一)命名风格 [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例:_name / _name / $Obje ...

  4. 11C++循环结构-for循环(1)——教学

    一.for语句 (第27课 老狼老狼几点钟)参考1 引出问题: 当需要重复执行某一语句时,使用for语句.for语句最常用的格式为: for (循环变量赋初值:循环条件:循环变量增值) 语句: 注: ...

  5. VS Code 变身小霸王游戏机!

    在韩老师的<Visual Studio Code 权威指南>一书中,我向大家推荐了许多好用的插件,其中也不乏许多摸鱼插件,刷知乎.炒股票.看电影.听音乐.追番.看小说,一应俱全. 今天,就 ...

  6. 聊一聊 C#线程池 的线程动态注入 (上)

    一:背景 1. 讲故事 在线程饥饿的场景中,我们首先要了解的就是线程是如何动态注入的?其实现如今的ThreadPool内部的实现逻辑非常复杂,而且随着版本的迭代内部逻辑也在不断的变化,有时候也没必要详 ...

  7. 【C#】【MySQL】【配置数据源】SSL Connection error 发生一个或多个错误。由于·意外的数据包格式,握手失败

    [编程语言]C# [数据库]MySQL [控件]SqlDataSource [问题描述]使用SqlDataSource远程连接数据库时,测试连接发生如下错误:"SSL Connection ...

  8. Anaconda功能、优点、安装步骤(安装视频)

    目录 介绍 功能(包和环境的管理器) 优点(省时省心) 下载地址 安装教程 要点 conda 的常见命令 查询完整帮助文件 管理conda和anaconda 管理环境 包管理 其他 ​ 介绍 Anac ...

  9. 【自媒体直播】手机摄像电脑控制OBS多平台推流解决方案

    1.准备iriun 官网:Iriun 这个软件是免费的,不过会有水印.你需要在官网下载安装包进行安装,有windows系统版本和MAC系统版本.Ubuntu版本可以选择,根据自己电脑系统版本选择. 这 ...

  10. Log4j2的JNDI注入漏洞(CVE-2021-44228)原理分析与思考

    https://www.freebuf.com/vuls/316143.html 前言 最近Log4j2的JNDI注入漏洞(CVE-2021-44228)可以称之为"核弹"级别.L ...