当前位置:  数据库>oracle

Oracle DataGuard归档日志丢失处理方法

    来源: 互联网  发布时间:2017-06-23

    本文导语: 某数据库配置了Physical DataGuard(以下简称dg),由于没有检查,所以在主库上把归档日 删除了,而备库又没有完全应用,所以导致备库一直停留在之前的归档日志中。 主库检查,发现dest_id为的25号日志就丢失了. PRIMARY> select dest_id,se...

某数据库配置了Physical DataGuard(以下简称dg),由于没有检查,所以在主库上把归档日 删除了,而备库又没有完全应用,所以导致备库一直停留在之前的归档日志中。

主库检查,发现dest_id为的25号日志就丢失了.

PRIMARY> select dest_id,sequence#,applied,status,first_change#,next_change# from v$archived_log                         
  where sequence#>20 order by dest_id,sequence#; 


    DEST_ID  SEQUENCE# APPLIED S FIRST_CHANGE# NEXT_CHANGE#
 ---------- ---------- --------- - ------------- ------------
 1  21 NO D 1765541      1765764
 1  22 NO D 1765764      1768228
 1  23 NO D 1768228      1768269
 1  24 NO D 1768269      1768400
 1  25 NO X 1768400      1768516
 1  26 NO X 1768516      1768531
 1  27 NO X 1768531      1768611
 2  21 YES A 1765541      1765764
 2  22 YES A 1765764      1768228
 2  23 YES A 1768228      1768269
 2  24 NO A 1768269      1768400

    DEST_ID  SEQUENCE# APPLIED S FIRST_CHANGE# NEXT_CHANGE#
 ---------- ---------- --------- - ------------- ------------
 2  26 NO A 1768516      1768531
 2  27 NO A 1768531      1768611

所以备库一直无法使用.这种情况下要么就重做整个备库,或是从备库断点的日志那个时候起恢复数据库.
由于数据库比较大,决定采用第二种方案;

在备库上,我们查看当前的数据文件最大的SCN

STANDBY> select name,file#,checkpoint_change# from v$datafile order by checkpoint_change#;

NAME    FILE# CHECKPOINT_CHANGE#
 ------------------------------------------------------- ---------- ------------------
 /u01/app/Oracle/oradata/dc1stby/undotbs01.dbf 4      1768269
 /u01/app/oracle/oradata/dc1stby/sysaux01.dbf 3      1768269
 /u01/app/oracle/oradata/dc1stby/system01.dbf 1      1768269
 /u01/app/oracle/oradata/dc1stby/users01.dbf 6      1768269

在主库上做一个增量SCN备份,起始的位置就是备库数据文件的最小SCN号.

[oracle@newplat ~]$ rman target / nocatalog

[oracle@newplat ~]$ $ORACLE_HOME/bin/rman target / nocatalog

 RMAN> run
 2> {
 3> allocate channel c3 device type disk;
 4>  backup as compressed backupset incremental from scn 1768269 database format '/home/oracle/bak/%U';
 5> release channel c3;
 6> }

 released channel: ORA_DISK_1
 allocated channel: c3
 channel c3: SID=42 device type=DISK
 .....................................................
 including current control file in backup set
 channel c3: starting piece 1 at 03-APR-16
 channel c3: finished piece 1 at 03-APR-16
 piece handle=/home/oracle/bak/0rr22q7u_1_1 tag=TAG20160403T022709 comment=NONE
 channel c3: backup set complete, elapsed time: 00:00:01
 Finished backup at 03-APR-16

备份完成后,我们通过SCP很快把备份文件传到备库的机器上来

[oracle@newplat bak]$ scp *1_1 192.168.56.22:/home/oracle/bak

这时候我们需要关闭备库,然把把实例启动到nomount关态

STANDBY> shutdown immediate;
 ORA-01109: database not open

 Database dismounted.
 ORACLE instance shut down.
 STANDBY> startup nomount;
 ORACLE instance started.

 Total System Global Area 1224736768 bytes
 Fixed Size    2923824 bytes
 Variable Size  939524816 bytes
 Database Buffers  268435456 bytes
 Redo Buffers  13852672 bytes

实例启动到mount状态后,我们进入备库的rman,这时候需要恢复控制文件,原备库的控制文件因为
 包含了redo apply老的应用信息所以不能用了.

 [oracle@dg2 bak]$ rman target / nocatalog

 RMAN> restore standby controlfile from '/home/oracle/bak/0rr22q7u_1_1';

 Starting restore at 03-APR-16
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: SID=23 device type=DISK
 ............................................

很快控制文件就了恢复完成了,我们打开另一个窗口,通过sqlplus把备库以standby的方式mount起来

STANDBY> alter database mount standby database;

Database altered.

数据库mount起来后,我们返回到rman提示符,这个时候我们可以对传过来的备份文件并进行编目了.这样我们在下一步操作中,就可以使用这些文件来行恢复

RMAN> catalog start with '/home/oracle/bak';

searching for all files that match the pattern /home/oracle/bak

 List of Files Unknown to the Database
 =====================================
 File Name: /home/oracle/bak/08r1ekse_1_1
 File Name: /home/oracle/bak/0or22q7t_1_1
 File Name: /home/oracle/bak/0kr22phj_1_1
 File Name: /home/oracle/bak/0nr22pic_1_1
 File Name: /home/oracle/bak/09r1eku6_1_1
 File Name: /home/oracle/bak/0rr22q7u_1_1

 Do you really want to catalog the above files (enter YES or NO)? yes
 cataloging files...
 cataloging done

文件编目后,我们就可以开始正式恢复数据库了.

RMAN> recover database;

 Starting recover at 03-APR-16
 using channel ORA_DISK_1

 starting media recovery

.....................................

 media recovery complete, elapsed time: 00:03:01
 Finished recover at 03-APR-16

备库完成恢复完成后,我们就可以启动redo apply 了.

STANDBY> alter database recover managed standby database disconnect from session using current logfile;

 Database altered.

 STANDBY> select process,client_process,sequence#,status from v$managed_standby;

 PROCESS  CLIENT_P  SEQUENCE# STATUS
 --------- -------- ---------- ------------
 ARCH  ARCH    0 CONNECTED
 ARCH  ARCH    0 CONNECTED
 ARCH  ARCH    0 CONNECTED
 ARCH  ARCH    0 CONNECTED
 ARCH  ARCH    0 CONNECTED
 RFS  ARCH    0 IDLE
 RFS  LGWR  33 IDLE
 MRP0  N/A  33 WAIT_FOR_LOG

现在我们查看备库状态,MRP进程已经开始最新的日志应用了.到此我们通过增量SCN备份和恢复来修复备库归档日志丢失的过程已经全部完成了。

 

Oracle 11gR2 在VMWare虚拟机中安装步骤

 

Debian 下 安装 Oracle 11g XE R2

 

Oracle Data Guard 重要配置参数

 

基于同一主机配置 Oracle 11g Data Guard

 

探索Oracle之11g DataGuard

 

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

 

Oracle Data Guard 的角色转换

 

Oracle Data Guard的日志FAL gap问题

 

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

 

 


    
 
 

您可能感兴趣的文章:

  • 切换Oracle的归档模式以及非归档模式
  • oracle的归档模式 ORACLE数据库归档日志常用命令
  • 更改Oracle数据库的归档模式
  • 查看修改Oracle10G归档日志空间的限制
  • 关于Oracle将目标数据库设为归档模式应该注意的问题
  • Oracle 删除归档日志实例
  • oracle 如何关闭打开归档日志
  • Oracle数据库归档模式的切换
  • Linux下Oracle归档日志自动清理脚本代码(sh)
  • Oracle中归档模式的定义简述
  • Oracle10g自动归档设置
  • 更改Oracle数据库到归档模式
  • oracle日志操作模式(归档模式和非归档模式的利与弊)
  • Oracle 11G闪回数据归档新功能详述
  • win平台oracle rman备份和删除dg备库归档日志脚本
  • Oracle相关:Rman Crosscheck删除失效归档
  • Oracle切换为归档模式的步骤及问题解决
  • ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法
  • Oracle Dataguard备库失败与主库响应测试
  • Linux下Oracle10_Dataguard配置与应用
  • 基于oracle小数点前零丢失的问题分析 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • RedHat8上解压Oracle9磁盘丢失磁盘空间,请大虾帮忙!
  • 基于oracle小数点前零丢失的问题分析
  • oracle中fdisk导致的ASM磁盘数据丢失的解决方法
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle 密码丢失解决方法祥述
  • oracle下实现恢复一个丢失的数据文件的代码
  • Oracle控制文件的损坏或完全丢失的恢复办法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3