ORA-16401: archivelog rejected by RFS

本文涉及的产品
函数计算FC,每月15万CU 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介:
早上检查邮件的时候发现有 ORA-16401: archive log rejected by Remote File Server (RFS)报警邮件!
通常此问题是由于主库的fal_client参数与备库的log_archive_dest_n中的service参数不匹配造成的。
模拟一下环境(案例来自metalink [ ID 1183143.1 ])
********* Primary ********
log_archive_config DG_CONFIG=(p1ncm1,p1ncm2)
log_archive_dest_1 location=/u99/ORACLE/p1ncm1/archive valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=p1ncm1
log_archive_dest_2 service=p1ncm2_dgfal.csm.fub.com optional reopen=60 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=p1ncm2
fal_client=p1ncm1_fc.csm.fub.com
fal_server=p1ncm2_fs.csm.fub.com 

********* Standby ********
log_archive_config DG_CONFIG=(p1ncm1,p1ncm2)
log_archive_dest_1 location=/u99/ORACLE/p1ncm2/archive valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=p1ncm2
log_archive_dest_2 service=p1ncm1_dgfal.csm.fub.com optional reopen=60 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=p1ncm1
fal_client=p1ncm2_fc.csm.fub.com
fal_server=p1ncm1_fs.csm.fub.com
注意:从以上的配置中可以看出主库的 fal_client=p1ncm1_fc.csm.fub.com,与备库中的LAD_2 中的service= p1ncm1_dgfal.csm.fub.com的值不一样。也正是此问题导致ORA-16041..
--- 主库告警日志 alert_p1ncm1.log ---
ARC0 started with pid=14, OS id=23650
ARC0: Archival started
ARC1: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE ---启动归档日志进程arc0,arc1
ARC1 started with pid=15, OS id=23652
ARC0: Becoming the 'no FAL' ARCH
ARC0: Becoming the 'no SRL' ARCH
Thread 1 opened at log sequence 4722
ARC1: Becoming the heartbeat ARCH
.....skipping ....
ALTER SYSTEM SET log_archive_trace=1 SCOPE=BOTH; <<--------- 启动跟踪文件功能
ALTER SYSTEM ARCHIVE LOG <<-----切换归档
Thread 1 cannot allocate new log, sequence 4938
Private strand flush not complete
.....skipping ....
Thread 1 advanced to log sequence 4939 (LGWR switch)
.....skipping ....
ALTER SYSTEM ARCHIVE LOG
ARCH: Evaluating archive log 3 thread 1 sequence 4939
Thread 1 advanced to log sequence 4940 (LGWR switch)
Current log# 4 seq# 4940 mem# 0: /u04/ORACLE/p1ncm1/p1ncm1.redo.g04.m01.rdo
Current log# 4 seq# 4940 mem# 1: /u01/ORACLE/p1ncm1/p1ncm1.redo.g04.m02.rdo
ARCH: Destination LOG_ARCHIVE_DEST_2 archival not expedited
ARCH: Beginning to archive thread 1 sequence 4939 (7809558586167-7809568175169) (p1ncm1)
ARCH: Creating local archive destination LOG_ARCHIVE_DEST_1: '/u99/ORACLE/p1ncm1/archive/p1ncm1.arch.4939.1.673712453.log' (thread 1 sequence 4939)
(p1ncm1)<<--归档日志到本地

ARC0: Evaluating archive log 3 thread 1 sequence 4939
ARC0: Unable to archive thread 1 sequence 4939
Log actively being archived by another process
ARCH: Closing local archive destination LOG_ARCHIVE_DEST_1: '/u99/ORACLE/p1ncm1/archive/p1ncm1.arch.4939.1.673712453.log'
(p1ncm1)
Committing creation of archivelog '/u99/ORACLE/p1ncm1/archive/p1ncm1.arch.4939.1.673712453.log'
Invoking non-expedited destination LOG_ARCHIVE_DEST_2 thread 1 sequence 4939 host p1ncm2_dgfal.csm.fub.com
Wed Aug 11 00:00:58 2010
ARCH: Completed archiving thread 1 sequence 4939 (7809558586167-7809568175169) (p1ncm1)
Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid
FAL[server, ARC1]: Begin FAL noexpedite archive (dbid 0 branch 673712453 thread 1 sequence 4939 dest p1ncm2_dgfal.csm.fub.com)
ARC1: Creating remote archive destination LOG_ARCHIVE_DEST_2: 'p1ncm2_dgfal.csm.fub.com' (thread 1 sequence 4939)
(p1ncm1)
Wed Aug 11 00:01:19 2010
ARC1: Closing remote archive destination LOG_ARCHIVE_DEST_2: 'p1ncm2_dgfal.csm.fub.com'
(p1ncm1)
FAL[server, ARC1]: Complete FAL noexpedite archive (dbid 0 branch 673712453 thread 1 sequence 4939 destination p1ncm2_dgfal.csm.fub.com) <<--- arc1 completed remote archival of seq# 4939 to destination "p1ncm2_dgfal.csm.fub.com"
FAL[server, ARC1]: Begin FAL archive (dbid 0 branch 673712453 thread 1 sequence 4939 dest p1ncm2_fc.csm.fub.com)
ARC1: Creating remote archive destination LOG_ARCHIVE_DEST_1: 'p1ncm2_fc.csm.fub.com' (thread 1 sequence 4939) <<<<--- arc1 again attempts to create same log seq# 4939 to destination "p1ncm2_fc.csm.fub.com" by means of FAL resolution
(p1ncm1)
Errors in file /u00/oracle/admin/p1ncm1/bdump/p1ncm1_arc1_23652.trc:
ORA-16401: archivelog rejected by RFS
FAL[server, ARC1]: Complete FAL archive (dbid 0 branch 673712453 thread 1 sequence 4939 destination p1ncm2_fc.csm.fub.com)
alter database backup controlfile to trace
Completed: alter database backup controlfile to trace
ALTER SYSTEM ARCHIVE LOG
Thread 1 cannot allocate new log, sequence 4941
Private strand flush not complete

********* Standby ********
log_archive_config DG_CONFIG=(p1ncm1,p1ncm2)
log_archive_dest_1 location=/u99/ORACLE/p1ncm2/archive valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=p1ncm2
log_archive_dest_2 service=p1ncm1_dgfal.csm.fub.com optional reopen=60 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=p1ncm1
fal_client p1ncm2_fc.csm.fub.com
fal_server p1ncm1_fs.csm.fub.com
---备库告警日志  alert_p1ncm2.log ---
ALTER SYSTEM SET log_archive_trace=1 SCOPE=BOTH;

Media Recovery Waiting for thread 1 sequence 4939
RFS[2]: Begin archive primary thread 1 sequence 4939 (p1ncm2)
RFS[2]: No standby redo logfiles created
RFS[2]: Completed archive primary log 0 thread 1 sequence 4939 (p1ncm2)
RFS[2]: Archived Log: '/u99/ORACLE/p1ncm2/archive/p1ncm1.arch.4939.1.673712453.log'
Committing creation of archivelog '/u99/ORACLE/p1ncm2/archive/p1ncm1.arch.4939.1.673712453.log'
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[14]: Assigned to RFS process 32487
RFS[14]: Identified database type as 'physical standby'

RFS[14]: Begin archive primary thread 1 sequence 4939 (p1ncm2)
Errors in file /u00/oracle/admin/p1ncm2/udump/p1ncm2_rfs_32487.trc:
ORA-16401: archivelog rejected by RFS
Media Recovery Log /u99/ORACLE/p1ncm2/archive/p1ncm1.arch.4939.1.673712453.log
原因:错误的fal_client命名。
主库派分指定的log到log_archive_dest_2=p1ncm2_dgfal.csm.fub.com指定的目的地址,备库可以自己做日志间断分析并且根据实际情况向FAL_SERVERS请求间断日志。FAL servers 这个案例中是primary库,会接受请求并传送间断日志。当standby尝试解决日志间断问题时,主库得到一个不同的fal_client=p1ncm1_fs.csm.fub.com。实际上p1ncm2_dgfal.csm.fub.com and p1ncm1_fs.csm.fub.com 指向同一个备库。如果我们在备库上设置一个与主库上的LADn不同的tns别名,ORA-16401就会发生。
如果TNS别名匹配正确,那么我们就可以看见standby发出的FAL 请求和正常的LADn 派分的redo的FAL 请求一样,这样就不会有创建第二个FRB(FAL Request Block)
这样,ORA-16401就不会发生了。
在oracle 11gr2中oracle 明确地指出FAL_CLIENT 是可选的并且不应该被使用。
标识:LADn=log_archive_dest_n

解决办法:

设置主库上的 log_archive_dest_n的指向备库中的地址使用和备库上的 fal_client 配置一样的tns 别名。
--- 主库 ---
log_archive_dest_2 service=p1ncm2_dgfal.csm.fub.com optional reopen=60 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=p1ncm2
alter system set fal_client=p1ncm1_dgfal.csm.fub.com scope=both sid='*';
--- 备库 ---
当前的值:
fal_client=p1ncm2_fc.csm.fub.com
推荐的值:
alter system set fal_client=p1ncm2_dgfal.csm.fub.com scope=both sid='*'; ## same as primary's LAD_2
相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
存储 前端开发 安全
webhook是什么 与API的区别在哪里
webhooks是一个api概念,是微服务api的使用范式之一,也被成为反向api,即:前端不主动发送请求,完全由后端推送。 举个常用例子,比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhooks 的典型场景。
webhook是什么 与API的区别在哪里
|
6月前
|
Oracle Cloud Native 关系型数据库
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
314 0
Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
|
数据可视化
R语言自定义图形:ggplot2中的主题与标签设置
【8月更文挑战第30天】`ggplot2`作为R语言中功能强大的绘图包,其自定义能力让数据可视化变得更加灵活和多样。通过合理使用`theme()`函数和`labs()`函数,以及`geom_text()`和`geom_label()`等几何对象,我们可以轻松创建出既美观又富有表达力的图形。希望本文的介绍能够帮助你更好地掌握`ggplot2`中的主题与标签设置技巧。
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
311 1
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
281 1
|
10月前
|
监控 安全 网络协议
永久免费SSL证书教程—自动续签
要实现免费SSL证书的自动续签,选择合适的证书颁发机构(CA)至关重要。推荐使用JoySSL,填写注册码230922可获得免费且支持自动续签的SSL证书。申请步骤包括注册账户、选择证书类型、提交申请、验证域名所有权及安装证书。配置自动续签需安装续签工具、生成密钥和CSR,并设置续签参数。定期检查证书状态、备份证书和密钥,确保续签顺利进行。注意CA机构的政策和服务条款变化,以保持证书的有效性。
|
中间件 Java 调度
Seata两阶段提交AT模式详解
Seata两阶段提交AT模式详解
883 0
Seata两阶段提交AT模式详解
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的养老院老人健康监护平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的养老院老人健康监护平台的详细设计和实现(源码+lw+部署文档+讲解等)
218 0

热门文章

最新文章