/*
  控制文件是oracle数据库最重要的物理文件之一,每个oracle数据库都必须有一个控制文件,在启动数据库实例时,
  oracle会根据初始化参数查找到控制文件的名称及位置信息,并读取控制文件的内容,
  然后根据控制文件的信息(数据库名称、数据文件、日志文件的名称及位置等)在实例和数据库之间建立关联
  如果无法找到控制文件或控制文件被破坏,则数据库实例无法启动,并且很难修复。

  控制文件很小10M左右,为二进制文件,包含有数据库的结构信息,包括数据文件和日志文件,
  可以理解为物理数据库的元数据存储库,控制文件在数据库创建时自动创建,并在数据库发生物理变化时更新。
  控制文件不断被更新,并且在任何时候都是可用的。只有oracle进程才能够安全地更新控制文件的内容,
  所以,任何时候都不要手动地编辑控制文件。

  控制文件记录了数据库的结构信息和数据库当前的参数设置,其中主要包含如下内容
    1.数据库名称和SID标识
    2.数据文件和日志文件列表
    3.数据库创建的时间戳
    4.表空间信息
    5.当前重做日志文件序列号
    6.归档日志信息
    7.检查点信息
    8.回滚段(undo segment)的起始和结束
    10.备份数据文件信息

  如何对控制文件进行日常管理?
    1.及时备份控制文件。
    当oracle数据库的实例启动时,控制文件用于实例和数据库之间建立关联,
    如果数据库的物理组成发生了变化,则建议及时备份控制文件。
    2.保护控制文件。
    一旦控制文件被损坏,数据库便无法启动,而且很难修复,控制文件的管理与维护非常重要。
    需要采取多种策略来保护控制文件,主要包括多路复用控制文件和备份控制文件。
*/

--备份方式一多路复用
    alter system set control_files=
          'E:\app\Administrator\oradata\db1\CONTROL01.ctl',
          'E:\app\Administrator\flash_recovery_area\db1\CONTROL02.ctl'
    scope = spfile;
     'D:\OracleFiles\ControlFiles\CONTROL03.ctl'
--查看控制文件的位置
    select name as 控制文件 from v$controlfile;

/*
  创建控制文件
    如果突发意外,导致数据所有控制文件丢失或损坏,唯一的补救办法就是手动创建一个新的控制文件
    手动创建:
    此操作需要在startup nomount模式下进行 并做好数据文件和重做日志文件的备份
*/
    create controlfile
    reuse database db1
    logfile
     'D:\OracleFiles\oradata\REDO01.log',
     'D:\OracleFiles\oradata\REDO02.log',
     'D:\OracleFiles\oradata\REDO03.log'
    datafile
    'D:\OracleFiles\oradata\DB_ZHENG.DBF',
    'D:\OracleFiles\oradata\EXAMPLE01.DBF',
    'D:\OracleFiles\oradata\SYSAUX01.DBF',
    'D:\OracleFiles\oradata\SYSTEM01.DBF',
    'D:\OracleFiles\oradata\UNDOTBS01.DBF',
    'D:\OracleFiles\oradata\USERS01.DBF'
    maxlogfiles
    maxlogmembers
    maxinstances
    maxdatafiles
    noresetlogs
    noarchivelog;

    recover datafile 'D:\OracleFiles\oradata\DB_ZHENG.DBF',

--备份和恢复
    --1.备份 备份为二进制文件 bkp
    alter database backup controlfile to 'D:\OracleFiles\ControlFiles\control_file1.bkp';

    --备份为脚本文件实际上就是备份为可读的文本文件,该文件实际上是sql脚本,可以用它来重新创建控制文件
    --跟踪文件的存放位置由spfile文件(init.ora)中的USER_DUMP_DEST参数来决定
    alter database backup controlfile to trace;
    show parameter user_dump_dest;
    --2.恢复
    /*    当控制文件执行备份后,即使发生了磁盘物理损坏,
    只需要在初始化文件中重新设置control_files参数的值,使它重新指向,即可重新启动数据库
    首先关闭数据库 然后复制备份文件将损坏的控制文件备份 重启数据库即可。
    */

--查询控制文件的信息
    /*
    控制文件是一个二进制文件,被分隔成许多个部分,分别记录各种类型的信息。每个信息成为一个记录文档段。

    与控制文件相关的数据字典视图
    V$controlfile 包括所有控制文件的状态信息
    V$controlfile_Record_Section 包括控制文件各个记录段的信息
    V$parameter 包括系统的所有初始化参数,从中可以查询参数control_files的值

    记录文档段的类型 每条记录的大小 最大记录条数 已创建的数目信息
    */
    select type,record_size,records_total,records_used from v$controlfile_record_section;
        

【Oracle】控制文件管理的更多相关文章

  1. Oracle 控制文件管理

    控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据文件和日志文件信息.控制文件在数据库创建时被自动创建,并在数据库发生物理变数时更新.控制文件被不断更新,在任何时候都要保证控 ...

  2. Oracle体系结构之控制文件管理

    控制文件作用:记录了数据库的结构和行为,有多少个数据文件,日志文件及其位置名称,状态,维护数据库的一致性,即记录了数据库的启动SCN号和终止SCN号. 控制文件的位置和个数记录在参数文件中,通常控制文 ...

  3. [20190530]oracle Audit文件管理.txt

    [20190530]oracle Audit文件管理.txt --//昨天听课,讲一些oracle相关安全的问题,对方提到audit file的管理,应该引入OS audit,这样目的是仅仅root查 ...

  4. Oracle日志文件管理与查看

    Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...

  5. Oracle控制文件

    一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等 ...

  6. oracle 控制文件的重建

    目录 oracle 控制文件的重建 NORESETLOGS RESETLOGS oracle 控制文件的重建 不到最后时刻,如三个控制文件都已损坏,又没有控制文件的备份.还是不要重建控制文件,处理不好 ...

  7. Oracle 控制文件(CONTROLFILE)

    一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等 ...

  8. Oracle 控制文件损坏解决方案

    Oracle 控制文件损坏解决方案 故障一:丢失(损坏)一个控制文件 前台报错:ORA-00205:error in identifying control file,check alert log ...

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

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

  10. oracle控制用户权限命令

    ORACLE控制用户权限: 首先使用系统中的拥有DBA权限的账号(system)登录: 一.创建用户: 1.DBA使用creater user语句创建用户: --创建登录用户名为:user01,密码为 ...

随机推荐

  1. 第四章:Django 模型 —— 设计系统表

    1. Django框架提供了完善的模型(Model )层来创建和存储数据,每一个模型对应数据库中的唯一的一张表. 2. Django 模型基础知识: .每一本模型是一个Python类,继承了djang ...

  2. 腾讯云centos7服务器环境搭建,tomcat+jdk+mysql+nginx

    软件:jdk 1.8.0_45 tomcat 8.5.8 mysql 5.6.36 nginx 1.10.x或以上 其中tomcat在centos6.8中没问题,centos7中会出现卡在启动那里 I ...

  3. Threads(线程)(二)

    前一章我们提到了同步异步,多线程:在开始今天的文章之前,先来总结一下上一篇文章的内容,多线程的优点. 多线程有哪些优点呢,在这里通过代码依次来总结. 异步多线程的三大特点 1)同步方法卡界面,原因是主 ...

  4. docker~Dockerfile优化程序的部署

    回到目录 一些理论 我们都知道docker这个容器工具可以帮助我们快速进行环境的部署,这对于运营人员来说,无疑是个福音,而这个工作大叔认为不应该是运营人员干的,而是由开发人员来做,因为只有你知道你干的 ...

  5. sql操作一般函数

    sql操作一般函数 函数一般语法:SELECT function(列) FROM 表 函数的基本类型是: Aggregate 合计函数:函数的操作面向一系列的值,并返回一个单一的值. Scalar 函 ...

  6. 用Maven创建web项目

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  7. windows本地提权对照表(转载)

    2003     systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3057191 KB2840221 KB3000061 KB2850 ...

  8. 游走[HNOI2013]

    [题目描述] 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这 ...

  9. ios 监听TextField中内容

    @property (weak, nonatomic) IBOutlet UITextField *UserID; @property (weak, nonatomic) IBOutlet UITex ...

  10. C++中堆和栈的完全解析(转)

    内存分配方面: 堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序, ...