今天发生一起DataGuard 归档无法同步的情况,查看主库LNS进程存在表示,主库正常向备库传送归档日志:SQL> SELECT PROCESS,PID,GROUP#,RESETLOG_ID,THREAD#,SEQUENCE#,BLOCK#,BLOCKS,DELAY_MINS,KNOWN_AGENTS FROM V$MANAGED_STANDBY;

PROCESS          PID GROUP#     RESETLOG_ID    THREAD#  SEQUENCE#     BLOCK#     BLOCKS DELAY_MINS KNOWN_AGENTS

--------- ---------- ---------- ----------- ---------- ---------- ---------- ---------- ---------- ------------

ARCH            8067 1            845994484          1      23362     106496        685          0            0

ARCH            8069 3            845994484          1      23360     149504       1659          0            0

ARCH            8071 4            845994484          1      21741          1          2          0            0

ARCH            8073 4            845994484          1      23361     133120       1223          0            0

LNS             8075 2            845994484          1      23363     117792          1          0            0

但备库的MRP进程不在,判断是否存在归档的GAP:SQL> SELECT THREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

no rows selected

不存在GAP,手动启动MRP进程,仍无法启动查看告警日志,找到关键内容如下:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSIONAttempt to start background Managed Standby Recovery process (sss)

Thu Oct 09 11:38:58 2014

MRP0 started with pid=30, OS id=102010

MRP0: Background Managed Standby Recovery process started (sss)

started logmerger process

Thu Oct 09 11:39:03 2014

Managed Standby Recovery not using Real Time Apply

MRP0: Background Media Recovery terminated with error 1111

Errors in file /dba/oracle/diag/rdbms/sss/sss/trace/sss_pr00_102070.trc:

ORA-01111: name for data file 12 is unknown - rename to correct file

ORA-01110: data file 12: '/u01/oracle/product/11.2.0.3.0/dbs/UNNAMED00012'

ORA-01157: cannot identify/lock data file 12 - see DBWR trace file

ORA-01111: name for data file 12 is unknown - rename to correct file

ORA-01110: data file 12: '/u01/oracle/product/11.2.0.3.0/dbs/UNNAMED00012'

Slave exiting with ORA-1111 exception

Errors in file /dba/oracle/diag/rdbms/sss/sss/trace/sss_pr00_102070.trc:

ORA-01111: name for data file 12 is unknown - rename to correct file

ORA-01110: data file 12: '/u01/oracle/product/11.2.0.3.0/dbs/UNNAMED00012'

ORA-01157: cannot identify/lock data file 12 - see DBWR trace file

ORA-01111: name for data file 12 is unknown - rename to correct file

ORA-01110: data file 12: '/u01/oracle/product/11.2.0.3.0/dbs/UNNAMED00012'

Recovery Slave PR00 previously exited with exception 1111

MRP0: Background Media Recovery process shutdown (sss)

可以看到数据库尝试启动MRP进程,但后台进行介质恢复时,被错误1111码终端(即ORA-01111),ORA-01111提示数据文件12是未知的。而后续的ORA-01110报错显示该数据文件的位置应该是$ORACLE_HOME/UNNAMED00012文件。

实际在该路径下是查找不到该文件的:find /u01/oracle/product/11.2.0.3.0/dbs/ -name 'UNNAMED00012'

那么问题就来了,为什么数据库需要找到该文件进行恢复?

我们都清楚DG的备库是通过归档日志进行恢复的。在归档获取正确的情况下,会把主库的对数据的更新内容都传递到备库进行应用。也就是说上面报错在于,主库传过来一条更新记录,对于备库是无法判断的。

通过网上查找相关答案,发现原来当主库异常宕机重启之后,数据库会进行自动恢复,也就是Instance Recovery,这部分缺失的数据被记录再Redo之中,在异常关闭后,传输到备库的归档中并不包含这部分内容,而主库通过一个临时的数据文件(UNNAMED命名方式)恢复后,这部分被恢复的记录在后续的归档中被传输到备库,当备库恢复到这个归档时,备库无法自动去创建这个UNNAMED临时数据文件。

解决方式:

停止备库归档应用(实际已停止,非必要),同步归档将备库归档自动管理该为手动,手工创建该数据文件,启动归档应用进程,将归档管理由手动转自动。SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL SCOPE=MEMEORY;

SQL> ALTER DATABASE CREATE DATAFILE '/u01/oracle/product/11.2.0.3.0/dbs/UNNAMED00012' as '/u01/oradata/sss/sys07.dbf'

SQL> ALTER SYSTEM SET standby_file_management='AUTO' SCOPE=MEMORY;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION

到这里查看告警日志:Attempt to start background Managed Standby Recovery process (sss)

Thu Oct 09 11:41:08 2014

MRP0 started with pid=30, OS id=102513

MRP0: Background Managed Standby Recovery process started (sss)

started logmerger process

Thu Oct 09 11:41:14 2014

Managed Standby Recovery not using Real Time Apply

Parallel Media Recovery started with 24 slaves

Waiting for all non-current ORLs to be archived...

All non-current ORLs have been archived.

Thu Oct 09 11:41:14 2014

Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION

Media Recovery Log /u01/sss/SSS/archivelog/2014_10_03/o1_mf_1_13523_b2wzmf1b_.arc

Thu Oct 09 11:41:36 2014

告警日志已经说明归档已经正常应用了,如果不放心也可以查看一下V$MANAGED_STANDBY视图,确认一下MRP进程是否启用。

这里我还有一个疑问,就是我手工创建的这个数据文件,等数据库恢复以后是否可以删除呢?

oracle 启动mrp进程,DataGuard MRP进程crash的处理案例 ORA-01111相关推荐

  1. oracle集群启动状态,循序渐进:Oracle 11.2 RAC集群进程的初始化与启动过程

    张大朋(Lunar)Oracle 资深技术专家 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职于 ORACLE Sales Consul ...

  2. oracle 启动crs进程,由于CRS磁盘dismount造成的CRS进程无法启动问题

    0 CRS                                                      0DISMOUNTED 2 DATA1                       ...

  3. day06 : 01 Oracle 体系结构概念,内存结构,内存结构(服务器进程和用户进程)

    一    概念: 1. 实例/instance: 后台进程+共享内存 用于管理和控制数据库  数据库/database: 物理文件的集合 为实例提供数据,如数据文件,控制文件,参数文件,日志文件等   ...

  4. oracle lms进程 内存,Oracle进程:LMS 进程与Oracle RAC

    Oracle进程:LMS 进程与Oracle RAC LMS进程是Oracle RAC环境下非常重要的一个进程,关于这个进程的解释在不同文档中也有所不同. 在Oracle 9iR2的概念手册中这样介绍 ...

  5. Oracle processes和sessions参数(进程连接数会话连接数)

    Oracle processes和sessions参数(进程连接数&会话连接数) 如果配置过小,连接时可能会报错:ORA-12519, TNS:no appropriate service h ...

  6. Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型

    1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...

  7. linux杀死tomcat进程6,Linux下启动停止查看杀死Tomcat进程(示例代码)

    文章来自:http://www.linuxidc.com/Linux/2011-06/37180.htm 启动 一般是执行tomcat/bin/startup.sh,sh tomcat/bin/sta ...

  8. 启动进程 问号_有两个这样的进程:僵尸进程amp;孤儿进程,蓝瘦香菇

    进程 先来说下什么是进程: 来看下百度是怎么说的: 光看说的不够形象,在windows系统中,它长这样: 在Mac系统中,它长这样: Linux中是这样的:(有点长截图一部分好了) [root@iz2 ...

  9. mysql启动成功但是没有进程_zabbix_server表面启动成功,但是没有进程

    zabbix_server表面启动成功,但是没有进程 [root@iZ25m1box8cZ zabbix]# /etc/init.d/zabbix_server start Starting zabb ...

最新文章

  1. java 不同数据类型之间的转换
  2. php 接收序列化数据,PHP如何序列化数据?
  3. 大型网站技术架构 读书笔记
  4. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码
  5. 深度解读 MongoDB 4.4 新特性
  6. 搭建spring boot环境并测试一个controller
  7. ue4玻璃材质_UE4-材质
  8. 在Spring Cloud中集成和使用CSE快速实现商业产品
  9. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)
  10. windows生成当前目录树
  11. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
  12. SQL server 2008 安装教程
  13. 厉害了:tcgames电脑玩手游助手新功能强势上线,可编程游戏按键
  14. 2159: H.ly的小迷弟
  15. MacOS基金管理软件
  16. APIO2019 打铁记
  17. 【报错】UnboundLocalError: local variable ‘xxx‘ referenced before assignment
  18. TDA4程序刷写方案
  19. [M1]Daily Scum 10.8
  20. java 命令 线程栈_JVM调试常用命令——jstack命令与Java线程栈(1)

热门文章

  1. 归一化、标准化、单位化方法的总结
  2. 售后服务管理系统必备功能有哪些
  3. MatplotlibSeaborn绘图整理(基于Titanic数据集)【未完待续】
  4. Qt/C++ 音乐播放器源码
  5. CVE-2022-0543:redis lua沙盒绕过命令执行漏洞复现
  6. 霸屏是什么意思,百度霸屏推广的方法与策略!
  7. 自媒体百花齐放,又一个WiFi自媒体自媒体平台偷偷上线!
  8. pytorch 优化器
  9. 七天玩转Redis | Day6、SpringBoot集成Redis
  10. 好看的壁纸下载需要vip, 不一招教你批量免费下载