--数据库实例启动的三个阶段:

NOMOUNT(START):打开初始化参数文件

MOUNT:打开控制文件

OPEN:打开数据文件和日志文件

--控制文件

控制文件的作用:管理数据库的状态和描述数据库的物理结构信息。

控制文件主要包含如下信息:

数据库名

数据库标识符DBID

数据库创建时间戳

数据库字符集

数据文件信息

临时文件信息

在线重做日志信息

近期的归档日志信息

表空间信息

RMAN 信息库

检查点信息

损坏的数据块注册表

还原点信息

RESET_SCN

脏数据块的数量

                                         

                                                                    

-------------All about DBID

1. DBID 在数据库创建时自动生成

2. Oracle 不保证两个同名数据库DBID一定唯一

3. DBID 在数据库创建后永远不变,除非使用 $ORACLE_HOME/bin/nid 修改数据库名称时自动生成新的 DBID

4. 在未使用 FRA 时,通过控制文件的自动备份 restore 控制文件时,会遇到 ORA-06495 错误(在11R2尝试时未出现此错误)

5. DBID 和数据库名一样,不仅存在于控制文件,还存在于数据文件、日志文件头部,用于判断控制文件、数据文件和日志文件是否属于同一数据库

--获取数据库的 DBID

1. v$database.dbid

SQL> select dbid from v$database;

DBID

----------

2127893003

2.控制文件的自动备份文件名(前提是自动备份没有放在FRA上,FRA使用OMF管理方式不会显式地显示DBID信息)

[oracle@ora dbs]$ ls -lrt c*

-rw-r----- 1 oracle asmadmin 48005120 Oct 28 15:09 c-2127893003-20131028-00

--------------2127893003 即为 DBID

3.执行转储命令查看各种数据文件的文件头信息

SQL> select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME

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

         1          1          1   10485760        512          2 NO  CURRENT                 459088 28-OCT-13   2.8147E+14

         2          1          0   10485760        512          2 YES UNUSED                       0                      0

         3          1          0   10485760        512          2 YES UNUSED                       0                      0

SQL> alter system dump logfile '+DATA/test/onlinelog/group_1.266.829746583';

System altered.

SQL> select value from v$diag_info where name='Default Trace File';

VALUE

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

/u01/app/oracle/diag/rdbms/test/test/trace/test_ora_7538.trc

[oracle@ora dbs]$ grep -i 'db id' /u01/app/oracle/diag/rdbms/test/test/trace/test_ora_7538.trc

        Db ID=2127893003=0x7ed5120b, Db Name='TEST'

 

4.如果使用了 catalog ,还可以在查询 catalog 数据库中的 DB 表

select * from catalog_user.DB;

-----------数据库物理信息

在数据库处于 mount 状态(datafile和logfile均未open)时,可以查询记录在控制文件中的相应动态视图获取数据库的物理结构

v$database

v$archive_log

v$datafile

v$tempfile

v$log

v$logfile

v$recover_file

-----------控制文件序列号

控制文件序列号用于判断控制文件是否过时的因素“之一”,在控制文件被更新后就会增长。控制文件的更新包括检查点信息更新,表空间的增删操作等。

控制文件序列号也存在于数据文件和日志文件,只不过它们是在自身的文件头被更新时从当时的控制文件复制而来。

控制文件的更新次数总是比数据文件和日志文件多,因为每当数据文件和日志文件头被更新时,控制文件都会复制其部分内容,同时控制文件

的某些操作比如增量检查点只会更新控制文件而不会更新日志文件盒数据文件。

查看 v$database 和 v$kcvfh 可以查看当前控制文件记录的控制文件序列号和各个数据文件头部所记录的控制文件序列号。

SQL> select CONTROLFILE_SEQUENCE# from v$database;

CONTROLFILE_SEQUENCE#

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

                 1160

                 

SQL> select hxfil as file#, fhcsq from x$kcvfh;

FILE#      FHCSQ

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

         1       1128

         2       1128

         3       1128

         4       1128

         

       

-----------控制文件检查点 SCN

控制文件检查点 SCN 也是判断控制文件是否过时的要素之一。检查点分为完全检查点和增量检查点,完全检查点会把 SCN 更新至数据文件头和控制文件中,

而增量检查点只会将SCN更新至控制文件。无论哪种检查点,其SCN在控制文件中都称为控制文件检查点SCN(有别于数据库检查点SCN)

select CONTROLFILE_CHANGE# from v$database;

CONTROLFILE_CHANGE#

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

             464297

             

每当控制文件发生变化(增删文件、日志切换、完全或增量检查点),控制文件检查点SCN的值都会上升。该SCN的值一定大于或等于 current redo log 的低位 SCN

同时,控制文件检查点 SCN 的值一定大于所有数据文件头部的检查点SCN号,否则该控制文件就会被认为过时,实例无法启动。

select controlfile_change# from v$database

  union all

  select first_change# from v$log where status = 'CURRENT';

CONTROLFILE_CHANGE#

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

             466258

             465700

------------数据库检查点 SCN

控制文件中保存的数据库检查点SCN实际上市所有数据文件头中最小的检查点SCN。Oracle 根据该值与每个 redo 日志的高低为SCN一一比较,确定恢复数据文件时

所需的第一个 redo 或归档日志

v$database 中的 checkpoint_change# 和 v$datafile_header 中的 checkpoint_change# 应该一致

SQL> select checkpoint_change# from v$database

  2  union all

  3  select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#

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

            465700

            465700

            465700

            465700

            465700

            

------------online redo 的高低水位 SCN

SQL> select GROUP#,FIRST_CHANGE#,NEXT_CHANGE#,status from v$log;

GROUP# FIRST_CHANGE# NEXT_CHANGE# STATUS

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

         1        459088       465700 INACTIVE

         2        465700   2.8147E+14 CURRENT

         3             0            0 UNUSED

         

FIRST_CHANGE#:低位SCN redo log 中的第一个 redo entry

NEXT_CHANGE#:高位SCN下一个日志文件中的第一个 redo entry

------------RMAN 信息库

RMAN 配置、闪回日志路径、重做日志历史、归档路径及属性、RMAN 备份集信息、RMAN image copy 信息、RMAN 备份集和RMAN IMAGE COPY 中损坏的数据块

数据文件坏块信息等

------------还原点信息

还原点主要通过 create restore point 命令创建,是SCN的别名,主要用于 flashback 技术

------------resetlog SCN

使用resetlog选项open数据块时的SCN值,也存在于数据文件和日志文件头部。每次打开数据库时都会检查他们是否一致

转载请注明作者出处及原文链接,否则将追究法律责任:

作者:xiangsir

原文链接:http://blog.csdn.net/xiangsir/article/details/13773629

QQ:444367417

MSN:xiangsir@hotmail.com

[置顶] All about control file in Oracle Database的更多相关文章

  1. [置顶] 如何使用c3p0+spring连接oracle数据库

    1. 首先是jdbc.properties属性文件的编写,便于数据库移植: datasource.driverClassName=oracle.jdbc.driver.OracleDriver dat ...

  2. ORA-00214: control file 控制文件版本不一致

    故障现象:今日学习oracle控制文件移动和修改,发现本机安装oracle数据库启动时只使用了一个控制文件.如下:SQL> select * from V$controlfile; STATUS ...

  3. 什么时候会刷新备库控制文件refresh the standby database control file?

    通过合理的设置,对于Primary的绝大数操作,都是可以传递到Physical Standby,datafile的操作是通过STANDBY_FILE_MANAGEMENT参数来控制的,但是即使STAN ...

  4. ORACLE CONTROL FILE 笔记

    控制文件包含的信息:   1.数据库的名字   2.联机重做日志文件和数据文件的名字和位置   3.数据库创建的时间戳   4.当前日志的序列号   5.检查点信息   6.备份信息   TIP:数据 ...

  5. [置顶] How to create Oracle 11g R2 database manually in ASM?

    Step 1: Specify an Instance Identifier (SID) export ORACLE_SID=maomi Step 2: Ensure That the Require ...

  6. [置顶] 阅读Oracle官方文档指南

    还在整理中.... EXPDP/IMPDP 相关文档:Utilities 2 Data Pump Export 3 Data Pump Import SQL*Loader 相关文档:Utilities ...

  7. [Oracle]数据库的Control File 取Dump后的样例

    [Oracle]数据库的Control File 取Dump后的样例: 片段截取-------------------------------(size = 40, compat size = 40, ...

  8. 番外:Oracle 中关于 Control File 的备份说明

    番外系列说明:该系列所有文章都将作为独立篇章进行知识点讲解,是对其他系列博文进行的补充说明,来自于博客园AskScuti. 主题:关于 Control File 控制文件备份的说明 内容预览:本篇涉及 ...

  9. [置顶] Oracle 11g R2 ASM:了解 Oracle ASM 基本概念

    About Oracle ASM Instances About Oracle ASM Disk Groups About Mirroring and Failure Groups About Ora ...

随机推荐

  1. 【转】使用 python IDLE 自带的 debuger 进行调试

    IDLE自带了调试器(虽然不怎么使吧). 关于如何在 IDLE 中进行调试网上的教程讲的很模糊,于是自己整理了一下,和大家分享~ 第一步:打开python shell,并在shell中打开debuge ...

  2. Python网络模块Paramiko基本使用

    一.Paramiko简介 首先来看谁创造了paramiko,是一个名叫Jeff Forcier创建了paramiko项目.项目主页:http://www.paramiko.org,可以去看上面有很多相 ...

  3. FastReport.Net使用:[31]使用带参查询及存储

    带参查询 1.在数据列表中创建一个名为姓名的参数. 然后使用一个对话框,将文本框的ReportParameter(报表参数)选为参数中的姓名. 给童鞋们的一个题目:这里可以改为下拉框,学生列表从数据库 ...

  4. HDU 5692 Snacks

    题目链接[http://acm.hdu.edu.cn/showproblem.php?pid=5692] 题意:一棵树,每个节点有权值,有两种操作:1.修改某个点的权值,2.求以x根的子树中的节点到根 ...

  5. codeforce 429D. Tricky Function (思维暴力过)

    题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qu ...

  6. SPOJ694 DISUBSTR --- 后缀数组 / 后缀自动机

    SPOJ694 DISUBSTR 题目描述: Given a string, we need to find the total number of its distinct substrings. ...

  7. Cookie&Session会话技术

    一.会话技术简介 1.存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客 ...

  8. 内功心法 -- java.util.LinkedList<E> (4)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  9. Create a DAC from a microcontroller's ADC

    Few microcontrollers include a DAC. Although you can easily find an inexpensive DAC to control from ...

  10. linux 多线程查看工具

    参考: http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance?cmp&p=1 htt ...