什么时候会刷新备库控制文件refresh the standby database control file?
通过合理的设置,对于Primary的绝大数操作,都是可以传递到Physical Standby,datafile的操作是通过STANDBY_FILE_MANAGEMENT参数来控制的,但是即使STANDBY_FILE_MANAGEMENT设置为auto,对于rename操作,standby还是忽略的。
If you do not rename the corresponding datafile at the standby system, and then try to
refresh the standby database control file, the standby database will attempt to use the
renamed datafile, but it will not find it. Consequently, you will see error messages
similar to the following in the alert log:
ORA-00283: recovery session canceled due to errors
ORA-01157: cannot identify/lock datafile 4 - see DBWR trace file
ORA-01110: datafile 4: '/Disk1/oracle/oradata/payroll/tbs_x.dbf'
从中可以看出,如果没有刷新standby的控制文件,日志中也不会有错误信息,那么在什么情况下会刷新控制文件呢?
先来来看看控制文件记录了什么信息?
■ The database name and database unique identifier (DBID)
■ The time stamp of database creation
■ Information about data files, online redo log files, and archived redo log files
■ Tablespace information
■ RMAN backups
事实上standby一直在应用主库传过来的日志,归档信息也一直在更新,也就是说一直在更新控制文件,但是控制文件并没有因此
觉察数据字典中的数据文件位置和自己的不一样。也就是说归档信息的改变不会导致refresh the standby database control file,下面做个实验看看数据文件的变化会不会导致refresh the standby database control file
1、更改主库google表空间的数据文件名称
SQL> select name from v$tablespace; NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
GOOGLE 6 rows selected. SQL> select name from v$datafile; NAME
--------------------------------------------------------------------------------
/u01/oracle/product/10.2.0/oradata/orcl/system01.dbf
/u01/oracle/product/10.2.0/oradata/orcl/undotbs01.dbf
/u01/oracle/product/10.2.0/oradata/orcl/sysaux01.dbf
/u01/oracle/product/10.2.0/oradata/orcl/users01.dbf
/u01/oracle/product/10.2.0/oradata/orcl/google.dbf SQL> alter tablespace google offline normal; SQL> ! mv /u01/oracle/product/10.2.0/oradata/orcl/google.dbf /u01/oracle/product/10.2.0/oradata/orcl/google1.dbf SQL> alter database rename file '/u01/oracle/product/10.2.0/oradata/orcl/google.dbf' to '/u01/oracle/product/10.2.0/oradata/orcl/google1.dbf'; SQL> alter tablespace GOOGLE online; SQL> alter system archive log current;
此时查看备库日志正常,无异常信息。
2、为主库google表空间在添加个数据文件,同样standby也会为google表空间添加数据文件。
SQL> alter tablespace google add datafile '/u01/oracle/product/10.2.0/oradata/orcl/google2.dbf' size 10m; Tablespace altered. SQL> alter system archive log current;
此时查看备库仍然没有异常信息。
SQL> select name from v$datafile; NAME
--------------------------------------------------------------------------------
/u01/oracle/product/10.2.0/oradata/iptv/system01.dbf
/u01/oracle/product/10.2.0/oradata/iptv/undotbs01.dbf
/u01/oracle/product/10.2.0/oradata/iptv/sysaux01.dbf
/u01/oracle/product/10.2.0/oradata/iptv/users01.dbf
/u01/oracle/product/10.2.0/oradata/iptv/google.dbf
/u01/oracle/product/10.2.0/oradata/iptv/google2.dbf
--从备用库上可以看出控制文件中的信息还没有和数据字典中的信息同步。
什么时候才会刷新控制文件呢?这时我们再主库为google表空间添加个google.dbf文件看会出现什么情况?
---主库添加数据文件
SQL>alter tablespace google add datafile '/u01/oracle/product/10.2.0/oradata/orcl/google.dbf' size 10m;
SQL> alter system archive log current;
这时备用库终于出现异常
File #7 added to control file as 'UNNAMED00007' because it was
created under name already used in this database. Creation name:
'/u01/oracle/product/10.2.0/oradata/orcl/google.dbf'
Errors with log /u01/arch/1_61_724530650.dbf
MRP0: Background Media Recovery terminated with error 1537
说明添加同名的datafile会导致standby的控制文件refresh,但除此之外还有什么情况会导致standby的控制文件refresh呢?
出现此问题的处理相对简单,步骤如下:
1、备库修改standby_file_management参数
SQL> alter system set standby_file_management='manual';
2、OS层面移动google.dbf为google1.dbf
[oracle@dg002 iptv]$ mv google.dbf google1.dbf
3、修改DB层面修改google.dbf为google1.dbf
SQL> alter database rename file '/u01/oracle/product/10.2.0/oradata/iptv/google.dbf' to '/u01/oracle/product/10.2.0/oradata/iptv/google1.dbf';
4、DB层面修改修改UNNAMED00007为google.dbf
SQL> alter database create datafile '/u01/oracle/product/10.2.0/db_1/dbs/UNNAMED00007' as '/u01/oracle/product/10.2.0/oradata/iptv/google.dbf';
5、备库修改standby_file_management参数
SQL> alter system set standby_file_management='auto';
6、开启日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
不明白的是仅仅修改下控制文件,添加数据文件、删除数据文件都可以,为什么rename datafile不可以呢,对oracle来说有什么难度吗?
什么时候会刷新备库控制文件refresh the standby database control file?的更多相关文章
- 备库搭建后,进入备库报错psql: FATAL: the database system is starting up
备库搭建后,进入备库报错psql: FATAL: the database system is starting up 原因:备库配置文件没有hot_standby = on mast ...
- DATAGUARD 在线重建备库
环境: OS: CentOS 6.5 X64 DB: oracle 10.2.0.5 故障:之前由于错误激活备库主写导致主备日志同步,重建备库 1.关闭备库,删除数据文件及控制文件,redo文件 rm ...
- 【等待事件】等待事件系列(3+4)--System IO(控制文件)+日志类等待
[等待事件]等待事件系列(3+4)--System IO(控制文件)+日志类等待 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可 ...
- ORACLE 11g 用Duplicate恢复Data Guard 备库详细过程
1.先查找备库控制文件路径 先在备库上找出控制文件的路径,通过和主库一样,不过为了以防万一,还是check为好. SQL> select name from v$controlfile; NA ...
- DG备库磁盘空间满导致无法创建归档
上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...
- KingbaseES集群管理维护案例之---备库checkpoint分析
数据库异常关闭时,数据库关闭时来不及或者没机会做checkpoint,则需要从上一个一致性检查的开始恢复.KingbaseES备机checkpoint是不能产生checkpoint WAL日志条目 ...
- 模拟主库创建数据文件,dg备库空间不足时问题处理
本篇文档测试目的: 模拟实际环境中,主库对表空间添加数据文件,备库空间不足,最终导致MRP进程自动断开,处理方式. 1.问题环境模拟 1)正常情况下的dg 主库创建数据文件,备库接受日志,自动创建表空 ...
- dataguard从库数据库丢失恢复例子(模拟所有的控制文件)
1.退出日志应用模式[oracle@localhost ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Mon Jan 14 ...
- Oracle 11.2.4.0 ACTIVE DATAGUARD 单实例安装(COPY创建备库)
Oracle 11.2.4.0 ADG 单实例安装(COPY创建备库) 规划: 主: OS: Linux Centos 6.5 X64 hostname:ORA11G-DG1 ipaddress:19 ...
随机推荐
- MVC 数据列表显示插件大全
Jgrid 官网示例: http://www.trirand.net/demo/aspnet/mvc/jqgrid/ Code Project示例: http://www.codeproject.co ...
- 1203.1——条件语句 之 if语句
用if语句可以构成分支结构.它根据给定的条件进行判断,以决定执行某个分支程序段.C语言的if语句有三种基本形式. 语句的三种形式 1) 第一种形式为基本形式:if if(表达式) 语句其 ...
- java基础知识2
58.线程的基本概念.线程的基本状态以及状态之间的关系线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身.Java中的线程有四种状态分别是:运行.就绪.挂 ...
- (转) 学习C++ -> 指针初步
学习C++ -> 指针初步 一.指针 1. 什么是指针? 我们知道, 计算机的内存是由一个个独立的存储单元组成, 并且系统会对每一个存储单元分配一个唯一的号码, 称为这个存储 ...
- (原)ubuntu上安装qt
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5652429.html 参考网址: http://doc.qt.io/qt-4.8/install-x1 ...
- navicat导入mysql数据库sql时报错
今天运维的一个项目需要进入数据库修改下数据,MYSQL的数据库,我先导出了一份数据结构和数据,然后进行修改,改完后发现项目报错了...粗心大意哪改错了,赶紧恢复数据库,结果导入SQL时报错了,当时心凉 ...
- 新手必看的jQuery优化笔记十则
jQuery优化 1.简介 jQuery正在成为Web开发人员首选的JavaScript库,作为Web开发者,除了要了解语言和框架的应用技巧外,如何提升语言本身的性能也是开发人员应该思考的问题.文章就 ...
- SQL SERVER中如何格式化日期
1. SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM (or PM) -- Oct 2 2008 11:01AM ...
- CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
body { margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; background-colo ...
- css让图片居中显示在手机屏幕上
直接上代码了 <div class="showpic"> <span></span> <img src="" alt= ...