控制文件
 
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 错误号 查看错误

转载于:https://www.cnblogs.com/jinxf/p/9166729.html

oracle之二控制文件相关推荐

  1. oracle重建控制文件流程,ORACLE之重建控制文件

    当这些信息更改或者变动时,oracle数据库会自动把最新信息更新到controlfile文件里面. 启动数据库时,Oracle从初始化参数文件(pfile/spfile)中获得控制文件的名字及位置,打 ...

  2. oracle 控制文件冗余,Oracle 添加冗余控制文件 for RAC On Linux

    ============================== 萌哒萌哒的分割线=============================== 注:添加冗余控制文件期间需要有关库操作,需注意!!! 备份 ...

  3. oracle如何打开控制文件,看一看oracle控制文件里面的内容

    众所周知,oracle数据库的控制文件是很小的二进制文件,是打不开的,打开了也是乱码,但可以通过转储文件来获得控制文件的详细信息. alter database backup controlfile ...

  4. oracle 控制文件在哪里设置_更改Oracle默认的控制文件设置

    环境:Windows XP SP2 32位 Oracle 9.2.0.1 32位 创建数据库后,Oracle默认的3个控制文件都在c:/oracle/oradata/SID/下,3个鸡蛋都在一个篮子里 ...

  5. oracle重新生成控制文件,Oracle重建控制文件的语法

    Oracle在控制文件丢失的情况下,有时我们只能重建控制文件,具体语法例如: CREATE CONTROLFILE REUSE DATABASE "SQUAN" NORESETLO ...

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

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

  7. oracle 新增加控制文件,Oracle增加控制文件副本

    1.文档目标 新建的数据库只有一个控制文件副本,希望增加控制文件副本到不同位置,防止控制文件发生损坏. 2.修改control_files参数 # 如果使用了OMF则可以在修改参数时只指定路径,无需指 ...

  8. 还原oracle控制文件位置,oracle 11.2 控制文件还原

    ****************************************** 1.控制文件备份分类 ****************************************** 通常分 ...

  9. oracle控制文件的复用,ORACLE 10g ASM 控制文件多路复用

    1> 检查数据库,查看控制文件存放路径 SQL> startup ORACLE instance started. Total System Global Area  230686720 ...

最新文章

  1. javascript里面RegExp的exec函数的总结
  2. c语言编程游戏界面,震惊!!!一个关于c语言图形化界面编程的小游戏-Go语言中文社区...
  3. XamarinSQLite教程Xamarin.iOS项目中打开数据库文件
  4. docker安装mysql指定_Docker安装MySql,并且使用外部客户端链接
  5. input输入框自动消除空格
  6. JavaScript中执行环境和栈
  7. java 使用vsphere 创建虚拟机‘_Java数组的创建及使用
  8. maven实战 源码_Docker与Jib(maven插件版)实战
  9. 简易呼吸灯c语言程序,51单片机(呼吸灯)C语言版
  10. hive sql 替换指定的字符串
  11. 混合线性模型学习笔记4
  12. Linux与Windows分区格式详解
  13. matlab反双曲函数表达,matlab求反正切
  14. linux环境下解压rar文件
  15. 弘辽科技:淘宝宝贝上下架有哪些规则?该如何优化?
  16. VIVADO中IO管脚分配 IO PLANING
  17. sa结构组网方式_5G SA网络架构及组网规范
  18. Java~通讯录系统
  19. POJ-2001-Shortest Prefixes
  20. oracle 11g 百度云盘,Oracle 11.2.0.1 For Linux 64+32bit 数据库介质 百度云盘下载

热门文章

  1. c语言邻接表的构建_c语言数据结构--图的邻接矩阵和邻接表操作的基本操作
  2. 台式电脑一般价钱多少_让你少走弯路,看我怎么花低价钱配出高配置的台式电脑的...
  3. 你知道怎么在生产环境下部署tomcat吗?,灵魂拷问
  4. docker搭建ssr
  5. 【工作感悟】mysql授权root远程访问
  6. VScode+SSH Remote多级连跳配置
  7. python【数据结构与算法】武松打虎问题(贪心)
  8. python【OS操作系统库】Python的os模块大宝剑(全)
  9. 【Network Security!】NTFS安全权限(看不懂你来打我)
  10. linux多线程求和_211渣硕,海投200+家Java岗(面40,过7),收获多份offer!