惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
博客园 - 聂微东
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
小众软件
小众软件
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
B
Blog
H
Help Net Security
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
月光博客
月光博客
博客园 - 司徒正美

博客园 - 石云华

gpnptool手动修改GPnP-Profile信息,解决GI集群因心跳配置异常而无法启动的问题 hugePage配置不当,浪费太多物理内存,内存不足导致集群重启 terminating the instance due to error 472,故障原因分析 Exadata存储节点的RPM数据库损坏 Oracle 19.25 RAC 业务 IP 平滑变更实操 EM13c监控Exadata,提示Agent Unreachable Exadata环境中的CVE-2026-31431漏洞说明 /var/log/message日志中的“megaraid_sas 0000:65:00.0: Application firmware crash dump mode set success”信息 DBCA后,只能启动一个实例,都是rp_filter惹的祸 分析Exadata写入慢的性能故障 Exadata更换Infiniband交换机 数据库集群中的bond1接口出现网络丢包 EM13告警:Metric evaluation error start - oracle.sysman.emSDK.agent.fetchlet.exception.FetchletException: Permission denied(publickey,password) Exadata,更换完思科交换机后,与上联交换机无法通信 Exadata更换计算节点的硬盘 Exalogic虚拟机的网络无法启动,提示Device has different MAC address than expected 单个ASM磁盘free空间为0,导致rebalance时提示“ASM磁盘组空间耗尽(ORA-15041)” Exadata的思科交换机,重启后进入到了rommon模式 SYSAUX表空间中的SYS.EXP_HEAD$表,占用大量空间 PX并行进程产生大量的trace日志,导致文件系统撑爆 回收站存在大量对象,导致Insert into...select语句夯住 用dg broker执行switchover时,报0RA-01017 增量备份恢复的方式修改缺失归档的DataGuard 未设置min_free_kbytes参数,导致操作系统进行页缓存回收时,整个操作系统夯住 Exadata数据库性能异常,备份进程卡住 MySQL 5.7版本,搭建一个两主一从的多源主从复制环境 恢复某个数据文件不适当,导致DataGuard无法open数据库 Exadata计算节点的内存出现故障,导致CPU耗尽 Bug 34885986 - Flashback log file was not reused even if db_flashback_retention_target is passed
duplicate方式搭建DataGuard时,报ORA-19563: header validat...
石云华 · 2026-08-23 · via 博客园 - 石云华

1、案例概述

客户有一套数据库需要迁移,驻场的同事计划利用DataGuard技术进行迁移,在搭建 Data Guard 物理备库(PSTEST → PSTESTDG)过程中,遭遇ORA-19563: header validation failed for file 错误。

2、案例分析

2.1 查看Duplicate命令详细的报错信息。

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 08/22/2026 04:49:37
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-06136: ORACLE error from auxiliary database: ORA-19563: header validation failed for file

可以看出,在duplicate的过程中,验证数据文件的文件头信息时失败。

2.2检查DataGuard文件转换相关的配置参数,如下所示:

db_file_name_convert = "/db/app/oracle/oradata/HR92PRD/","/db/app/oracle/oradata/HR92PRD/","/u01/data","/db/app/oracle/oradata/HR92PRD/"
log_file_name_convert = "/db/app/oracle/oradata/HR92PRD/","/db/app/oracle/oradata/HR92PRD/","/u01/data","/db/app/oracle/oradata/HR92PRD/"

可以看出,源端数据库的数据文件和日志文件存放在"/db/app/oracle/oradata/HR92PRD/"和"/u01/data"这两个路径下。

2.3 分析数据库的alert日志。

Fri Aug 21 23:12:12 2026
Managed Standby Recovery not using Real Time Apply
Read of datafile '/db/app/oracle/oradata/HR92PRD/psimage208.dbf' (fno 187) header failed with ORA-01210
Hex dump of (file 187, block 1) in trace file /db/app/oracle/diag/rdbms/pstestdg/PSTEST/trace/PSTEST_pr00_25405.trc
Corrupt block relative dba: 0x2ec00001 (file 187, block 1)
Bad header found during datafile header read
Data in bad block:
type: 11 format: 2 rdba: 0x39800001
last change scn: 0x0000.00000000 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00000b01
check value in block header: 0xaa1b
computed block checksum: 0x0
Rereading datafile 187 header failed with ORA-01210
MRP0: Background Media Recovery terminated with error 1110
Errors in file /db/app/oracle/diag/rdbms/pstestdg/PSTEST/trace/PSTEST_pr00_25405.trc:
ORA-01110: data file 187: '/db/app/oracle/oradata/HR92PRD/psimage208.dbf'
ORA-01122: database file 187 failed verification check
ORA-01110: data file 187: '/db/app/oracle/oradata/HR92PRD/psimage208.dbf'
ORA-01210: data file header is media corrupt
Recovery Slave PR00 previously exited with exception 1110

可以看出, psimage208.dbf这个数据文件异常。

2.4 搜索rman中report schema命令输出,发现如下:

image

 不同的目录下,有相同的数据文件名,这就是问题所在了。

源端的数据文件psimage208.dbf在经过db_file_name_convert 转换后,不可能在一个目录下生成两个同名的文件。

2.5 解决办法:在duplicate之前,先把所有重名的数据文件进行set newname操作。示例:

run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
set newname for datafile 187 to "/db/app/oracle/oradata/HR92PRD/psimage208_01.dbf";
set newname for datafile 230 to "/db/app/oracle/oradata/HR92PRD/psimage208_02.dbf";
duplicate target database for standby from active database nofilenamecheck;
}

最终,问题解决。

3、案例总结

更新DataGuard 的部署文档,把“不同路径下的相同文件名”的数据文件检查,作为一个前置的检查项。检查SQL如下所示:

select file_name_only, count(*)

  from (select regexp_substr(file_name, '[^\\/]+$') as file_name_only

          from dba_data_files)

 group by file_name_only

having count(*) > 1;