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

推荐订阅源

B
Blog
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
Latest news
Latest news
博客园 - 三生石上(FineUI控件)
美团技术团队
aimingoo的专栏
aimingoo的专栏
Google Online Security Blog
Google Online Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threatpost
Y
Y Combinator Blog
T
Tailwind CSS Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
小众软件
小众软件
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tenable Blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
D
Docker
Cyberwarzone
Cyberwarzone
量子位
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog
雷峰网
雷峰网
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
O
OpenAI News
Hacker News - Newest:
Hacker News - Newest: "LLM"
Scott Helme
Scott Helme
IT之家
IT之家
S
Secure Thoughts
MongoDB | Blog
MongoDB | Blog
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News

博客园 - 石云华

/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 未设置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
增量备份恢复的方式修改缺失归档的DataGuard
石云华 · 2025-12-02 · via 博客园 - 石云华

1、案例概述 

客户的一套12.1.0.2 RAC+DG环境,客户反馈备库的数据与主库相差较大。检查发现该DG环境已经出现了GAP,信息如下。

Media Recovery Waiting for thread 2 sequence 638764
Fetching gap sequence in thread 2, gap sequence 638764-638863
Mon Dec 01 10:09:50 2025
FAL[client]: Failed to request gap sequence
 GAP - thread 2 sequence 638764-638863

询问现场的工程师,得知相关的归档日志已经全部删除, 并且该数据库的数据量非常大,大约几十TB。目前,最快的修复办法就是进行增量备份恢复。

2、修复方案

增量备份恢复的主要步骤如下所示:

1. 查看备库当前的SCN
SQL> SELECT CURRENT_SCN SCN FROM V$DATABASE
union all
select min(checkpoint_change#) SCN from v$datafile_header; 
返回的最小SCN作为后期增量备份的基准。

2. 备库停止日志应用
SQL> alter database recover managed standby database cancel;
备库必须处于MOUNT状态。如果备库正在运行RAC,请确保只一个实例处于mount状态。
SQL> select open_mode from v$database;
如果数据库处于read only状态,则必须关闭数据库,并重启至mount状态。
SQL> shutdown immediate
SQL> startup mount

3. 主库检查故障时间段是否新增了数据文件
SQL> SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 刚才备库查询出来的SCN;
在故障之后,如果在主服务器上添加了数据文件,则无论是否设置了standby_file_management参数,这些数据文件都不会在备库上自动创建,新添加的数据文件必须restore到备库。

4. 主库做数据文件备份、增量备份、控制文件备份
RMAN> backup datafile X,Y,Z format '/tmp/ForDatafile_%U' tag 'ForDatafile';  ##如果主库存在新增的数据文件
RMAN> backup incremental from SCN 1957649 database format '/tmp/ForStandby_%U' tag 'FORSTANDBY';
RMAN> backup current controlfile for standby format '/tmp/ForStandbyCTRL.bck';

5. 将备份集传输至备库
$ scp /tmp/For* ggdb02:/tmp

6. 获取备库的数据文件信息
spool standby_datafile_names.txt
set pagesize 1000;
set lines 200
col name format a60
select file#, name from v$datafile order by file# ;
spool off

7.连接备库,恢复控制文件,并将备份集注册进备库的控制文件
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/ForStandbyCTRL.bck';
RMAN> ALTER DATABASE MOUNT;
RMAN> CATALOG START WITH '/tmp/For';

8.在备库恢复新增的数据文件
run
{
set newname for datafile X to '+DISKGROUP';
set newname for datafile Y to '+DISKGROUP';
set newname for datafile Z to '+DISKGROUP';
restore datafile x,y,z,....;
}

9.更新备库控制文件的数据文件路径(此步骤仅用于ASM环境)。
RMAN> CATALOG START WITH '+DATA/<db_unqiue_name>/datafile/';
需要为备库所有的数据文件所在的每个磁盘组(或目录)都执行CATALOG操作。之后,才允许执行switch database操作。
RMAN> SWITCH DATABASE TO COPY;
如果switch database to copy命令失败,出现 "RMAN-06571: datafile .. does not have recoverable copy "错误。 这表明没有对所有备用数据文件进行catalog,或者某些备用数据文件的位置/名称与主文件相同。
如果希望针对某个数据文件切换位置。例如:
RMAN> switch datafile 5 to copy; 

注意:此步骤仅用于ASM环境,如果是文件系统环境,不需要再更新控制文件中的数据文件路径。
最终,需要比较第6步的查询输出是否有任何差异(新添加的数据文件除外),以确保我们在备库中添加了所有数据文件。

10. 恢复备库
RMAN> RECOVER DATABASE NOREDO;

11. clear备库中所有的logfile.
SQL> select GROUP# from v$logfile order by GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 10;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 11;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 12;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 13;
....

12. 启动备库
SQL> alter database open;
SQL> alter database recover managed standby database disconnect from session;

13. 处理tempfile

SQL> alter tablespace temp add tempfile '+DISKGROUP';

至此,出现GAP的DG环境已经修复完毕。