/*
  控制文件是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. 【NOI复习】树链剖分

    简介 树链剖分通常用来解决一类维护静态树上路径信息的问题, 例如:给定一棵点带权树, 接下来每次操作会修改某条路径上所有点的权值(修改为同一个值或是同加上一个值等) , 以及询问某条路径上所有点的权值 ...

  2. json-server mock数据

    前言: 项目开发中,影响项目进程的常常是由于在前后端数据交互的开发流程中停滞,前端完成静态页面的开发后,后端迟迟未给到接口.而现在,我们就可以通过根据后端接口字段,建立一个REST风格的API接口,进 ...

  3. JavaScript 学习推荐

    主要是个人的学习网站,书籍推荐,还有个人学习经历,以及一些学习经验或技巧 JavaScript学习网站推荐 如果想快速入门,这些是很推荐的网站      快速入门,很快能让你了解前端,有什么,做什么, ...

  4. php+sqlserver实现分页效果

    找了一些实现的代码,都或多或少有点问题. 主要问题在于: 在进行一页数据查询时的sql语句格式问题, 开始尝试使用limit关键字查询,错误,limit用于mysql: 接着使用ROWNUM.row_ ...

  5. 如何使用lxml的XPath功能

    用python写爬虫呢,最常见的过滤方式有BeautifulSoup, css selector, XPath, 如果使用前两个,BeautifulSoup包就能解决,然而使用XPath,就要引入lx ...

  6. vue+mockjs 模拟数据,实现前后端分离开发

    在项目中尝试了mockjs,mock数据,实现前后端分离开发. 关于mockjs,官网描述的是 1.前后端分离 2.不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据. 3.数据类型丰 ...

  7. python--DenyHttp项目(1)--socket编程:客户端与服务器端

    查找了许多资料,实现了客户端与服务器端的连接,通过虚拟机进行测试 服务器端IP:192.168.37.129 端口1122 客户端IP: 192.168.37.1 端口1122 Server: #co ...

  8. 原理Lambda表达式

    http://www.kingreatwill.com/ (1)源起 .net的设计者发现在使用匿名方法时, 仍旧有一些多余的字母或单词的编码工作 比如delegate关键字 于是进一步简化了匿名方法 ...

  9. HTML学习笔记2

    5.超链接 3种超链接: 1. 连接到其他页面 2. 锚: (是链接页面)指给超链接起一个名字,作用是连接到本页面或者其他页面的特定位置.使用name属性给超链起名字,本页要加# 3. 连接到邮件: ...

  10. 基于Dubbo的压测调优实例

    不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流 ...