• Oracle 控制文件


    Oracle 控制文件呢,是数据库中最小的文件,是一个二进制文件,其中包括了数据库的结构信息,同时也包括了数据文件和日志文件的一些信息,控制文件虽小,但可以说是 Oracle 中最重要的文件,只有 Oracle 进程才能够更新控制文件中的内容,如过没有控制文件,数据库将无法启动。它就像oracle 例程 和 数据库 的桥梁。

    控制文件中呢主要包括:数据库名称,位置,联机或者脱机状态,Redo Log File 的位置和名称,表空间名称, Archive Log File 信息,CheckPoint 信息,Undo 信息,RMAN 信息等等,

    从上面对控制文件中包含的内容也可以看出控制文件在整个 Oracle 中的重要性。

    控制文件的多路复用技术

    何为控制文件的多路复用技术呢?

    由于控制文件的重要性,Oracle 呢官方是建议至少应该拥有控制文件的三个以上的副本,

    而您可以通过多路复用技术,将控制文件的副本创建到不同的磁盘上,

    然后再修改初始化参数文件 init . ora

    (现在的 Oracle 版本中的参数基本上都是使用二进制的 spfile,只有个老版本的 Oracle 才使用 init.ora 文件)

    中的 control_files 参数,使之包含所有的控制文件,

    也就是将其他磁盘上的控制文件也包含到这个 control_files 中,这样的话,

    这样呢,有一个好处,

    就是你的这个一个磁盘坏了,Oracle 仍然能够快速的恢复,

    一个控制文件损坏了,还可以自动使用另一个控制文件,

    但是这里要提一点的是,控制文件并不是越多越好的,

    因为当 Oracle 更新控制文件时,会将所有的控制文件全部进行更新,自然性能就有一定的影响了,

    所以,

    控制文件的副本也不是越多越好的!!!

    下面呢就介绍一下如何启用多路复用的技术了,

    主要是针对于使用 spfile (System Parameter File)实现多路复用控制文件

    (对于 init . ora 实质上也差不多)

    首先来查看一下当前使用的控制文件

    image

    上面的截图中可以看出当前的 Oracle 实例上有三个控制文件,

    也就是由三路复用吧(乱取的),

    下面呢,我还加一个控制文件,并且把控制文件移到其他的目录(以其他的目录来虚拟一个磁盘)

    第一步呢,修改 spfile 中的 control_files 这个属性,为其增加两个控制文件信息,

    一个存放于虚拟磁盘 disk1 下,一个存放于虚拟磁盘 disk2 下

    image

    下面呢就是要关闭数据库了,至于为什么要关闭数据库,在后面有说明的,

    image

    下面呢,就是 Ctl + C 了,也就是把控制文件复制到指定的目录上,

    上面指定的是 disk1 和 disk2 ,所以在这里呢,就是简单的 Ctl + C 操作了

    image

    image

    完成了之后呢,就重新启动 Oracle 了

    image

    下面呢,就再使用 v$controlfile 来验证上面的操作是否成功了,

    image

    从上面呢,就可以看出操作确实是成功了!!!

    现在来解释为什么需要关闭 Oracle ?

    因为考虑到如果您的 Oracle 是在线使用的话,

    那么这个 Oracle 上有可能还挂着很多的用户或者是应用程序,

    这些用户的操作有可能是会改变控制文件的,如果您不关闭 Oracle 就拷贝控制文件,

    那么将会造成控制文件不一致的情况,即控制文件1中的数据内容和控制文件2中的不一致,

    这将是一个很严重的问题!!!

  • 相关阅读:
    MSSQL 跨数据库连接
    powerdesigner逆向工程,从数据库导出PDM
    JS面向对象的程序设计
    数据脚本
    JDK安装与环境变量配置
    sql: 去除数据库表中tab、空格、回车符等特殊字符的解决方法
    用SQL语句获得一个存储过程返回的表
    百度云下载速度慢解决方法
    【WCF全析(一)】--服务协定及消息模式
    【WCF全析(二)】--服务配置部署详解
  • 原文地址:https://www.cnblogs.com/vipsoft/p/2549285.html
Copyright © 2020-2023  润新知