当前位置: 首页 > news >正文

11.备库出现gap处理方法

备库检查是否有日志缺失:
select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#


1 99 109
从上面的信息可以看出,备库中缺失了99到109的日志。

select name from v$archived_log where thread#=1 and dest_id=1 and sequence# between 99 and 109;

把日志拷贝到备库上,4、在备库上手工注册上一步中从主库拷贝来的日志
alter database register logfile '/u01/archivelog/1_99_626106231.arc';

稍等片刻,观察备库的alert日志信息 :
Sun Aug 12 20:38:47 2007
Media Recovery Log /u01/archivelog/1_99_626106231.arc
Media Recovery Log /u01/archivelog/1_100_626106231.arc
Media Recovery Log /u01/archivelog/1_101_626106231.arc
Media Recovery Log /u01/archivelog/1_102_626106231.arc
从以上信息,可以看出之前注册的日志已经被正常应用。或者查询视图v$archived_log的applied字段

检查备库是否还有日志GAP
SQL> select * from V$ARCHIVE_GAP;

gap较多,主库增量备份到备库进行恢复

备库操作:查看gap、scn等

1、备库确认丢失归档信息
SQL>select * from v$archive_gap;

2、备库确认最小scn号

在备库上执行:

1)停止日志应用服务
SQL>alter database recover managed standby database cancel;

2)查看备库当前的scn
SQL>select current_scn from v$DATABASE;
CURRENT_SCN

39597750709

3)查看文件头部的最小scn
SQL>select min(f.checkpoint_change#) from v$datafile_header f,v$datafile d where f.file#=d.fileand d.enabled !='READ ONLY';
CURRENT_SCN

39597657793

以上分别查出了备库当前的scn和文件头部的最小scn,采用两者最小的scn在主库进行增量备份

4.2.主库确认增量备份

SQL>select file#,to_char(creation_time,'yyyy-mm-dd hh24:mi:ss' ) creation_time,status,last_time,name from v$datafile where creation_change#>39597657793;

4.3.主库进行增量备份、创建备库控制文件

1、主库执行增量备份
RMAN>backup as compressed backupset incremental from scn 1276181632 database format'/backupdata/incr_bak_full_%U.bak'

2、主库备份控制文件
SQL>alter database create standby controlfile as '/backupdata/ctl20190829_bak.ctl';

3、主库拷贝备份到备库
[oracle@rac2 backupdata]$ scp ctl20190829_bak.ctl oracle@172.16.10.115:/archdata
[oracle@rac2 backupdata]$ scp incr_bak_full_0iuae673_1_1.bak oracle@172.16.10.115:/archdata

4.4.备库恢复

1、备份备库的控制文件
SQL>startup mount --备库首先启动至mount状态

RMAN>backup current controlfile format '/archdata/ncdg_bak_20190829.ctl'; --备份当前备库的控制文件

2、备库启到nomount状态,恢复主库备份过来的新的控制文件
SQL>startup nomount --启动数据库到nomount状态

RMAN>restore controlfile from '/archdata/ctl20190829_bak.ctl';

3、备库mount,将主库备份的增量备份文件,注册到catalog库
SQL>alter database mount

RMAN>catalog start with '/archdata/incr_bak_full_0iuae673_1_1.bak';

3、备库恢复
RMAN>recover database noredo;

4.5.验证结果

1、备库: 执行接收并恢复日志操作

1)恢复日志应用
SQL> alterdatabase recover managed standby database disconnect from session;

2)检查是否还有gap
SQL> select * fromv$archive_gap;

3)检查最大的日志
SQL> select THREAD#,max(SEQUENCE#) from v$archived_log group by THREAD#;
THREADMAX(SEQUENCE#)


     1           3729

2、主库:验证结果

1)检查最大日志
SQL> select THREAD,max(SEQUENCE#) from v$archived_log group by THREAD#;
THREADMAX(SEQUENCE#)


    1           3729

2)Primary进行日志切换,查看standby告警日志。
SQL>alter system switch logfile;
SQL>alter system checkpoint;

gap较多,主库duplicate全库备份恢复到备库

5.5.1.备库操作:查看gap、scn等

1、备库确认丢失归档信息
SQL>select * from v$archive_gap;

2、备库停止日志应用服务

SQL>alter database recover managed standby database cancel;

5.2.主库进行duplicate在线全备并恢复到备库

主库oracle用户执行
rman target sys/oracle@ncdb1 auxiliary sys/oracle@ncdg
RMAN>duplicate target database for standby from active database;

5.3.备库验证恢复完成

备份备库的控制文件
SQL>select open_mode,PROTECTION_LEVEL,DATABASE_ROLE,SWITCHOVER_STATUS from v$database;

5.4.验证结果

1、备库: 执行接收并恢复日志操作

1)恢复日志应用
SQL> alterdatabase recover managed standby database disconnect from session;

2)检查是否还有gap
SQL> select * fromv$archive_gap;

3)检查最大的日志
SQL> select THREAD#,max(SEQUENCE#) from v$archived_log group by THREAD#;
THREADMAX(SEQUENCE#)


     1           3729

2、主库:验证结果

1)检查最大日志
SQL> select THREAD,max(SEQUENCE#) from v$archived_log group by THREAD#;
THREADMAX(SEQUENCE#)


    1           3729

2)Primary进行日志切换,查看standby告警日志。
SQL>alter system switch logfile;
SQL>alter system checkpoint;

http://www.hskmm.com/?act=detail&tid=14455

相关文章:

  • [原创]《C#高级GDI+实战:从零开发一个流程图》第10章:鼠标拖动完成连线、拖动时实时显示半透明虚线连线效果、自定义连接点样式
  • 修改Abp中Auto API Controllers中 默认生成的 Put、Delete请求
  • 电阻-温度数据拟合工具(最小二乘法)
  • delphi clientdataset 中文过滤问题
  • 基于 systemd 的 Go 应用自动化部署完整指南
  • 马来西亚股票数据API对接文档
  • [OpenGL]相机环境
  • 指令流水线的影响因素
  • Gitee本土化创新实践:中国企业研发效能提升的新引擎
  • 画面拼接后推流/64路画面同时拼接到一路流/指定程序窗口采集推流/另一种解决方案
  • Markdown的基本语法
  • 工业级CAD数据优化工具:PiXYZ Studio 2025 图文安装指南
  • BIM建模利器 Tekla Structures 2025 全流程安装指南
  • containerd离线安装
  • (转)使用 Embarcadero Delphi FMX 应用程序实现多点触控
  • 百度云服务ubtuntu安装docker
  • ubuntu安装mysql8并切换数据存储目录
  • WCF-双工通讯
  • 跨网文件安全交换系统:打破数据壁垒的高效之选!
  • 【F#学习】可区分联合 Discriminated Unions
  • Midscene.js - 开源的 AI 操作助手 - 广东靓仔
  • 详细介绍:【Datawhale25年9月组队学习:llm-preview+Task1:大模型介绍与环境配置】
  • Git仓库ssh不同环境配置
  • 超大附件怎么发送的高效解决方案与技巧
  • dm sql 缓存区
  • 给国外传输大文件的最佳策略与解决方案
  • idea mvn package 报错java head space/ java.lang.OutOfMemoryError: Java heap space
  • 大环境不好,这几个赚钱网站可以试试
  • Day20类与对象的小结
  • 电流探头的测试原理