• 【Oracle】控制文件管理


    /*
      控制文件是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:appAdministratororadatadb1CONTROL01.ctl',
              'E:appAdministratorflash_recovery_areadb1CONTROL02.ctl'
        scope = spfile;
         'D:OracleFilesControlFilesCONTROL03.ctl'
    --查看控制文件的位置
        select name as 控制文件 from v$controlfile;
        
    /*
      创建控制文件
        如果突发意外,导致数据所有控制文件丢失或损坏,唯一的补救办法就是手动创建一个新的控制文件
        手动创建:
        此操作需要在startup nomount模式下进行 并做好数据文件和重做日志文件的备份
    */
        create controlfile
        reuse database db1
        logfile
        group 1 'D:OracleFilesoradataREDO01.log',
        group 2 'D:OracleFilesoradataREDO02.log',
        group 3 'D:OracleFilesoradataREDO03.log'
        datafile
        'D:OracleFilesoradataDB_ZHENG.DBF',
        'D:OracleFilesoradataEXAMPLE01.DBF',
        'D:OracleFilesoradataSYSAUX01.DBF',
        'D:OracleFilesoradataSYSTEM01.DBF',
        'D:OracleFilesoradataUNDOTBS01.DBF',
        'D:OracleFilesoradataUSERS01.DBF'
        maxlogfiles 50
        maxlogmembers 3
        maxinstances 6
        maxdatafiles 200
        noresetlogs
        noarchivelog;
        
        recover datafile 'D:OracleFilesoradataDB_ZHENG.DBF',
        
    --备份和恢复
        --1.备份 备份为二进制文件 bkp
        alter database backup controlfile to 'D:OracleFilesControlFilescontrol_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;
            


  • 相关阅读:
    Does the C standard guarantee buffers are not touched past their null terminator?
    Why does the C# compiler translate this != comparison as if it were a > comparison?
    Vim settings file on Windows
    你的团队需要一套工具指南
    精华阅读第 10 期 |解开阿尔法狗(AlphaGo)人工智能的画皮
    时序列数据库武斗大会之TSDB名录 Part 2
    如何用 ANTLR 4 实现自己的脚本语言?
    HTTP/2 对 Web 性能的影响(下)
    如何使用 Apache ab 以及 OneAPM 进行压力测试?
    你所不知道的黑客工具之 EK 篇
  • 原文地址:https://www.cnblogs.com/zhengwenqiang/p/6804598.html
Copyright © 2020-2023  润新知