控制文件
 
3.1 控制文件的功能和特点:
       1)定义数据库当前物理状态,不断在往controlfile写入[SCN等]
       2)维护数据的一致性
       3)是一个二进制文件
       4)在mount阶段被读取
       5)记录RMAN备份的元数据[账本]
       
查看database控制文件位置:
 
19:02:27 SQL> show parameter control_file

NAME                                         TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time            integer     7
control_files                                string      /u01/oradata/timran11g/control01.
                                                         ctl, /u01/oradata/timran11g/contr
                                                         ol02.ctl, /u01/oradata/timran11g/
                                                         control03.ctl
19:02:42 SQL> select name from v$controlfile;

NAME
---------------------------------------------------------------------------------------------------
/u01/oradata/timran11g/control01.ctl
/u01/oradata/timran11g/control02.ctl
/u01/oradata/timran11g/control03.ctl

desc v$controlfile_record_section控制文件详细信息
3.2 控制文件多元化

1)配置多个control_files,控制文件最好有三个,是相互镜像的(shutdown下cp命令复制即可),然后修改spfile中的control_files参数,Oracle建议分配在不同的物理磁盘上。

*考点:最多可以有8个control files多路复用。
    
19:10:25 SQL> alter system set control_files='/u01/oradata/timran11g/control01.ctl','/u01/disk1/control02.ctl','/u01/disk1/control03.ctl' scope=spfile;

System altered.

2)三个control文件要一致(同一版本,scn相同),本来就是镜像关系

-rw-r----- 1 oracle oinstall    7356416 07-16 20:00 control01.ctl
-rw-r----- 1 oracle oinstall    7356416 07-16 20:01 control02.ctl
-rw-r----- 1 oracle oinstall    7356416 07-16 20:01 control03.ctl

3)控制文件查看:v$controlfile 、show parameter controlfile、 v$parameter
               
3.3 控制文件的重建与备份
    
1)trace 文件: 可以在mount或open模式下生成一个脚本,用于控制文件重建。

19:59:24 SQL> alter database backup controlfile to trace;   //生成的trace 文件在udump的最新trc文件里
    
或者     SQL> alter database backup controlfile to trace as '/u01/con.trace';  //存到自己起的文件名里。        
    
2)binary 文件:控制文件的备份
20:00:20 SQL> alter database backup controlfile to '/u01/oradata/timran11g/con.bak';

3.4 控制文件手工恢复

控制文件一但损坏,系统将崩溃或死机。

1)单个文件损坏了:数据库关闭,使用操作系统命令复制其副本到指定的位置。

2)所有的控制文件丢失,(正常关闭,shutdown immediate后删除控制文件)

假设控制文件的备份也没有,利用前面做的trace文件重新生成控制文件

在nomount 状态下执行trace脚本

15:37:16 SQL> startup force nomount
ORACLE instance started.

SQL>
CREATE CONTROLFILE REUSE DATABASE "TIMRAN11" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100   
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/oradata/timran11g/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/oradata/timran11g/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/oradata/timran11g/redo03.log'  SIZE 50M
DATAFILE
  '/u01/oradata/timran11g/system01.dbf',
  '/u01/oradata/timran11g/sysaux01.dbf',
  '/u01/oradata/timran11g/user01.dbf',
  '/u01/oradata/timran11g/example01.dbf',
  '/u01/oradata/timran11g/test01.dbf',
  '/u01/oradata/timran11g/undotbs01.dbf'
CHARACTER SET ZHS16GBK
;

可以看到执行后三个控制文件又重新建立了。

说明:这个重建控制文件的过程主要有两大部分内容:

第一部分是脚本中的可见信息:1)定义了几个参数的最大值,2)在线日志的物理信息,3)数据文件的物理信息,4)使用的字符集。
第二部分是隐含的不可见信息,比如SCN信息,重建最关键的是将当前所有数据文件头部的最新SCN信息复制到了控制文件中。以便接下来打开数据库。

SQL> select file#,checkpoint_change# from v$datafile;        //从控制文件读出

FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            5629150
         2            5629150
         3            5629150
         4            5629150
         5            5629150
         6            5629150

SQL> select file#,checkpoint_change# from v$datafile_header;    //从数据文件读出

FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            5629150
         2            5629150
         3            5629150
         4            5629150
         5            5629150
         6            5629150

15:39:49 SQL> alter database open;

2)利用控制文件备份(手动备份或RMAN备份都可以)恢复控制文件。(有点复杂,留在053备份恢复中再介绍吧)
3)控制文件恢复后里面的记录会丢失,如归档的记录等[SQL> select name from v$archived_log;]

oerr ora 错误号 查看错误

oracle之二控制文件的更多相关文章

  1. Oracle控制文件多路复用以及Oracle备份重建控制文件

    控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的.如果不正确那么数据库就需要恢复 ...

  2. oracle通过修改控制文件scn推进数据库scn

    数据库当前scn 代码如下 复制代码 idle> select checkpoint_change# from v$database; CHECKPOINT_CHANGE#----------- ...

  3. Oracle RMAN 恢复控制文件到指定的路径

    Oracle 数据库通过RMAN恢复控制文件到指定的路径 --------------------------------------------------------- 先查询备份集信息,再指定备 ...

  4. oracle 11g 添加控制文件

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  5. Oracle中从控制文件读取的视图

    Oracle中有一些数据字典视图需从控制文件中读取信息,如下所示.用户在数据库打开之前就可以访问这些视图,因为这些视图的内容存储在控制文件中. v$archived_log:归档日志信息,如大小,SC ...

  6. 【ORACLE】重写控制文件

    [oracle@rac01 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 15 23:45:02 ...

  7. Oracle体系结构之控制文件的多路复用技术

    在Windows操作系统中,如果注册表文件被损坏了,就会影响操作系统的稳定性.严重的话,会导致操作系统无法正常启动.而控制文件对于Oracle数据库来说,其作用就好象是注册表一样的重要.如果控制文件出 ...

  8. Oracle基础 06 控制文件 controlfile

    --查看控制文件路径 show parameter control_files; --控制文件的备份,三种方式1)使用OS命令进行拷贝:1)open状态下,使用alter database命令生成控制 ...

  9. 【Oracle】RAC控制文件多路复用

    1.—关闭数据库,各个节点都要关闭: [oracle@rac1 ~]$ srvctl stop database -d racdb -o immediate 2.—启动任一节点到nomount状态: ...

随机推荐

  1. LeetCode.516 最长回文子序列 详解

    题目详情 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bb ...

  2. 旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

    一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能第一时间发现问题. 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行:一方面,AWS对Li ...

  3. 教你如何使用ES6的Promise对象

    教你如何使用ES6的Promise对象 Promise对象,ES6新增的一个全新特性,这个是 ES6中非常重要的一个对象 Promise的设计初衷 首先,我们先一起了解一下,为什么要设计出这么一个玩意 ...

  4. hge引擎示例教程cmake项目

    hge引擎的示例代码在vs2017不能很好的运行,需要调不少东西,所以我将其重新整理成cmake的项目. 所有示例均在vs2017 msvc 下测试可以正常运行. 由于缺少libhgehelp.a所以 ...

  5. Spark基础学习精髓——第一篇

    Spark基础学习精髓 1 Spark与大数据 1.1 大数据基础 1.1.1 大数据特点 存储空间大 数据量大 计算量大 1.1.2 大数据开发通用步骤及其对应的技术 大数据采集->大数据预处 ...

  6. docker简记

    title: docker学习简记 date: 2019-10-16 15:10:39 tags: docker Docker简记 1:Docker简介 1)出现背景 一款产品从开发到上线,从操作系统 ...

  7. JavaScript学习系列博客_26_JavaScript 数组的一些方法

    数组的一些方法 - push() - 用来向数组的末尾添加一个或多个元素,并返回数组新的长度 - 语法:数组.push(元素1,元素2,元素N) - pop() - 用来删除数组的最后一个元素,并返回 ...

  8. 软工团队项目之团队展示&选题(OnTime——S.L.N)

    软工团队项目之团队展示&选题(OnTime——S.L.N) 一.团队展示 队名:『S.L.N』即Seigelion——乃“攻城狮”之意. 队员学号: 团队项目描述:(项目名称:OnTime) ...

  9. 看视频常见的 720p、1080p、4k,这些分辨率到底包含了什么

    从早期的420p,到后来的720p,到现在的非1080p不看.视频的清晰度飞快提升,但是在看到色彩越来越丰富清晰度越来越高的画面时,你有关注过他们的到底是怎么做到的么?我们一起来了解一下吧. 想必大家 ...

  10. python练习 数字不同数之和+人名最多数统计

    数字不同数之和 描述 获得用户输入的一个整数N,输出N中所出现不同数字的和.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬ ...