如何使用RMAN增量备份来处理归档丢失导致的Dataguard间隙

分类:编程技术 时间:2024-02-20 15:52 浏览:0 评论:0
0
本文将与大家分享如何使用RMAN增量备份来处理归档丢失导致的Dataguard间隙。小编觉得还是比较实用的,所以分享给大家,作为参考。下面就跟随小编来看看吧。

场景:

备库执行日志应用出现以下错误:

Thu Mar 29 11:21:45 2023
FAL[ client]: 请求间隙序列失败
GAP - 线程 1 序列 184-185
DBID 1484954774 分支 960494131
FAL[client]: 已尝试所有定义的 FAL 服务器。
- --- ---------------------------------------------------------- --- ------
检查 CONTROL_FILE_RECORD_KEEP_TIME 初始化
参数是否定义为足够大的值
足以维护足够的日志切换信息以解决
归档日志间隙.

查询缺失的归档日志:

SQL> select * from v$archive_gap;

THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---- ------ ------------- --------------
1 183 185

去主库查看存档,发现存档已经丢失

SQL>存档日志列表;

数据库日志模式归档模式
自动归档已启用
归档目标/u01/archivelog
最早的在线日志序列186
下一个要归档的日志序列188
当前日志序列188

[Oracle@prim archivelog]$ pwd
/u01/archivelog
[oracle@prim archivelog]$ ls -ltr
总计 1964
-rw- r----- 1 oracle oinstall 74752 3月29日11:17 1_186_960494131.dbf
-rw-r----- 1 oracle oinstall 1930240 3月29日11:17 1_187_960494131.dbf

下面我们开始使用RMAN来进行基于SCN的增量备份和恢复。如需恢复,请参阅文档 ID 836986.1

1。取消备库日志申请

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE取消;

2.在备库上确定需要启动增量备份的SCN

SQL> SELECT CURRENT_SCN FROM V$DATABASE;

CURRENT_SCN
-----------
3505254

SQL> select min(checkpoint_change#) from v$datafile_header
其中 file# 不在 (从 v$datafile 中选择文件#,其中启用 = '只读');

MIN(CHECKPOINT_CHANGE#)
------------------ -----

(如果结果为空,则重新启动备用数据库至mount状态)
SQL> shutdown立即;
数据库关闭。
数据库已卸载。< br/>ORACLE 实例关闭。
SQL> 启动挂载;
ORACLE 实例启动。

系统全局区域总计 1002127360 字节
固定大小 2259440 字节
可变大小 285214224 字节
数据库缓冲区 708837376 字节
重做缓冲区 5816320 字节
已安装数据库。
SQL> select min(checkpoint_change#) from v$datafile_header
where file#不在(从 v$datafile 中选择文件#,其中启用 = '只读');

MIN(CHECKPOINT_CHANGE#)
--------------- --------
3505255

选择上述结果中最小的SCN作为增量备份的起点(这里是 350524)。

3.对主数据库进行基于SCN的增量备份

RMAN> BACKUP INCRENTAL FROM SCN 3505254 DATABASE FORMAT '/tmp/ForStandby_%U' tag 'FORSTANDBY';

4.将刚才的备份复制到备库

scp /tmp/ForStandby_* 192.168.211.162:/tmp

5.将复制的备份注册到备库的控制文件中

[oracle@stand ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Thu 2023 年 3 月 29 日 11:37:52

版权所有 (c) 1982、2011,Oracle 和/或其附属公司。保留所有权利。

连接到目标数据库:ORCL(DBID=1484954774,未打开)

RMAN> CATALOG START WITH '/tmp/ForStandby';

使用目标数据库控制文件而不是恢复目录
搜索与模式 /tmp/ForStandby 匹配的所有文件

数据库未知的文件列表
====== ===============================
文件名:/tmp/ForStandby_08sv0bdj_1_1
文件名:/ tmp /ForStandby_07sv0bcg_1_1

您确实要对上述文件进行编目吗(输入 YES 或 NO)?是
正在编目文件...
编目完成

编目文件列表
=================== ====
文件名:/tmp/ForStandby_08sv0bdj_1_1
文件名:/tmp/ ForStandby_07sv0bcg_1_1

6.使用增量备份恢复备用数据库

RMAN> RECOVER DATABASE NOREDO;

于 2018 年 3 月 29 日开始恢复
分配的通道:ORA_DISK_1
通道 ORA_DISK_1 : SID=16 设备类型=DISK
通道 ORA_DISK_1: 启动增量数据文件备份集恢复
通道 ORA_DISK_1: 指定要从备份集恢复的数据文件
数据文件 00001 恢复的目标: / u01/app/oracle/oradata/rzorcl/system01.dbf
数据文件 00002 恢复目标: /u01/app /oracle/oradata/rzorcl/sysaux01​​.dbf
数据文件 00003 恢复目标:/ u01/app/oracle/oradata/rzorcl/undotbs01.dbf
数据文件 00004 恢复的目标:/u01/app /oracle/oradata/rzorcl/users01.dbf
数据文件 00005 的恢复目标:/u01/app/oracle/oradata/rzorcl/example01.dbf
数据文件 00006 的恢复目标:/u01/app /oracle/oradata/rzorcl/ odc_tps01.dbf
数据文件 00007 的恢复目标:/u01/app/oracle/oradata/rzorcl/test01.dbf
数据文件 00008 的恢复目标:/u01/app /oracle/oradata/rzorcl/ big01.dbf
数据文件 00009 恢复的目标:/u01/app/oracle/oradata/rzorcl/big02.dbf
通道 ORA_DISK_1:从备份片 /t​​mp/ForStandby_07sv0bcg_1_1 读取
通道 ORA_DISK_1:片断句柄=/tmp/ForStandby_07sv0bcg_1_1 tag=FORSTANDBY
通道 ORA_DISK_1:已恢复备份片断 1
通道 ORA_DISK_1:恢复完成,已用时间:00:00:01

已于 29 完成恢复-MAR-18

7。重新备份主库中备库的控制文件并scp到备库

RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/tmp/ForStandbyCTRL.bck';

< p>从 29 开始备份-MAR-18
使用目标数据库控制文件而不是恢复目录
分配通道:ORA_DISK_1
通道 ORA_DISK_1:SID=9 设备类型=DISK
通道 ORA_DISK_1:开始完整数据文件备份设置
通道 ORA_DISK_1:指定备份集中的数据文件
包括备份集中的备用控制文件
通道 ORA_DISK_1:于 2018 年 3 月 29 日开始片段 1
通道 ORA_DISK_1:于 2018 年 3 月 29 日完成第 1 块
块句柄=/tmp/ForStandbyCTRL.bck tag=TAG20230329T114413 comment=NONE
通道 ORA_DISK_1:备份集完成,已用时间:00:00:01
于2018年3月29日完成备份

[oracle@prim tmp]$ scp ForStandbyCTRL.bck 192.168.211.162:/tmp
oracle@192.168.211.162的密码:
ForStandbyCTRL.bck 100% 9856KB 9.6MB/s 00:00

8.备库恢复控制文件:

RMAN> shutdown立即;

数据库卸载

Oracle实例关闭

RMAN>startup nomount;

已连接到目标数据库(未启动)
Oracle i实例启动

总系统全局区域1002127360字节

固定大小2259440字节
可变大小285214224字节
数据库缓冲区708837376字节
重做缓冲区5816320字节

RMAN> 从“/tmp/ForStandbyCTRL.bck”恢复待机控制文件;

于 2018 年 3 月 29 日开始恢复
分配的通道:ORA_DISK_1
通道ORA_DISK_1: SID=10 设备类型=DISK

通道 ORA_DISK_1: 恢复控制文件
通道 ORA_DISK_1: 恢复完成,运行时间: 00:00:01
输出文件名=/u01 /app/oracle/oradata/rzorcl/control01.ctl
输出文件名=/u01/app/oracle/oradata/rzorcl/control02.ctl
于2018年3月29日完成恢复

9.重启备库挂载

RMAN> SHUTDOWN;
RMAN> 启动安装;

10。如果数据库使用OMF管理数据文件,则需要在备库的控制文件中重新注册数据文件,示例如下:

(如果数据文件存储在文件系统和 OMF 为 n未使用,请跳过此步骤)

RMAN> CATALOG START WITH '+DATA /rzorcl/datafile/';

数据库未知的文件列表
=== ======================= ============
文件名:+data/rzorcl/DATAFILE/SYSTEM .309.685535773
文件名:+data/rzorcl/DATAFILE/SYSAUX.301.685535773
文件名:+data/rzorcl/DATAFILE/UNDOTBS1.302.685535775
文件名:+data/rzorcl/DATAFILE/ SYSTEM.297.688213333
文件名:+data/rzorcl/DATAFILE/SYSAUX.267.688213333
文件名:+data/rzorcl/DATAFILE/UNDOTBS1.268.688213335

您确实要编目吗上述文件(输入“是”或“否”)?是
正在编目文件...
编目完成

编目文件列表
==================== ====
文件名:+data /rzorcl/DATAFILE/SYSTEM.297.688213333
文件名:+data/rzorcl/DATAFILE/SYSAUX.267.688213333
文件名:+data/rzorcl/ DATAFILE/UNDOTBS1.268.688213335

确保主库不会在该SCN之后添加新的数据文件。如果是这样,则需要返回分开了。并恢复,请参考文档 ID 836986.1

SQL> select file#,name from v$datafile wherecreation_change# > 3505254;

未选择任何行

RMAN > SWITCH DATABASE TO COPY;

数据文件 1 切换到数据文件副本 "+DATA/rzorcl/datafile/system.297.688213333"
数据文件 2 切换到数据文件副本 "+DATA/rzorcl/datafile/undotbs1 .268.688213335"
数据文件3切换到数据文件副本“+DATA/rzorcl/datafile/sysaux.267.688213333”

11.如果备库开启闪回,需要重新开启闪回

SQL> ALTER DATABASE FASHBACK OFF;
SQL> 更改数据库闪回;

12.备用数据库清除备用日志组

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 4;
SQL> 更改数据库清除日志文件组 5;
SQL> 更改数据库清除日志文件组 6;
SQL> 更改数据库清除日志文件组 7;

13 .在备用数据库中启动日志应用程序。流程到此结束。流程结束

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

感谢您的阅读!这篇《如何使用RMAN增量备份处理归档丢失导致的Dataguard间隙》的文章就分享到这里。希望以上内容能够给大家带来一些帮助,让大家能够学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何使用RMAN增量备份来处理归档丢失导致的Dataguard间隙

用户评论