/*
  控制文件是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. MS SQL Server Management Studio中提示不允许保长度出现不允许保存更改。您所做的更改要求删除并重新创建以下表

    在SQL Server Management Studio中直接修改正在连接的表结构会出现改不了的情况,如下图 解决方法:工具-选项-设计器--阻止保存要求重新创建表的更改,去掉对勾--确定即可

  2. 【SqlServer系列】开启Sqlserver远程访问

    1   概述 已发布[SqlServer系列]文章如下: [SqlServer系列]SQLSERVER安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 [SqlS ...

  3. 入职15天,Angular2 小记!

    ng 配置@ngModule({ imports: [ BrowserModule ], //导入模块 declarations: [ AppComponent ], //导入组件 providers ...

  4. javaSE 第77节课

    1.InetAddress InetAddress是地址的封装类,也可通过它来获得当前的操作地址(1)获得电脑当前上网的IP地址 (2)与服务器连接操作 (3) 二.MD5加密文件 文件本地秒传操作例 ...

  5. JavaScript中的设计模式:状态模式

    前几天写了一个贪吃蛇小游戏,正好用到了状态模式. 定义 当一个对象内部状态发生改变时候,会导致其行为的改变,这看起来像是改变了对象. 简单的例子 如果一个函数要更具某一个对象的状态来判断该对象应该执行 ...

  6. linux文件系统及bash基础特性

    linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...

  7. 【性能】web提升性能的小总结

    1. 异步加载js文件,判断文件是否已加载,不重复加载 if (typeof echarts === 'undefined') { console.log('异步加载echarts'); $.getS ...

  8. 初学Python(九)——函数

    初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...

  9. CentOS 6 下无法wget https链接的解决方法

    CentOS6下最高版本的wget是1.11,但非常遗憾的是这个版本有bug,是没办法用来下载https链接的东西的,所以有些人为了避免这种情况会帮脚本加上不检查ssl的参数--no-check-ce ...

  10. 怎么关闭wps热点?永久关闭wps右下角弹窗的方法!

    wps热点总是开机或者开启WPS后在任务栏闪烁,影响心情,百度了一下找到的方法也过时了.我的是WIN10系统 所以自己摸索了一下,找到了解决办法.其实还是用空白文件替换wps热点的.exe文件,只是这 ...