博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次Oracle控制文件分析情况
阅读量:6253 次
发布时间:2019-06-22

本文共 1449 字,大约阅读时间需要 4 分钟。

最近两天在从头看一些与DBA有关的书籍,有一章讲到了控制文件,现在整理一下有关的知识点及实际对照生产库对比的情况

  • 控制文件的定义及引入的目的

    Oracle数据库的控制文件是数据库中极其重要的文件,该文件是一个比较小的二进制文件,它记载了物理数据库的当前状态,每一个控制文件只属于一个数据库,但为了防止控制文件丢失,一个数据库一般有不止一个控制文件,这些控制文件中的内容完全一样,在数据库装载或打开之前,Oracle服务器不必须能够访问控制文件。当数据库在打开状态下,Oracle服务器会随时修改控制文件中的内容,任何用户,包括数据库管理员都不能修改控制文件中的数据。

    如果由于某种原因Oracle服务器不能访问控制文件了,那么数据库也就无法正常工作了。如果一个数据库的所有控制文件都出了问题,那么这个数据库就需要进行恢复。因此,实际的商用数据库至少需要2个(一般为3个)控制文件,为了防止磁盘的物理故障,这些控制文件最好放在不同的物理磁盘上,而且最好放在不同的物理磁盘控制器上。

  • 实际对比一个生产库来看一下

    我们先执行命令:
    select name from v$controlfile;
    输出结果:

    SQL> select name from v$controlfile;NAME--------------------------------------------------------------------------------/oradata/orcl/control01.ctl/oradata/orcl/control02.ctl

    接下来我们登陆到服务器路径下,看一下说的是否跟书上一样。

    [oracle@oradb1 orcl]$ du -ks *9616    control01.ctl9616    control02.ctl

    这里发现,2个控制文件,大小是一样的。

    之后按照书上的说法,目前看来,这2个控制文件都在一个目录下,是有安全隐患的,如果磁盘坏了的话两个控制文件都没办法访问了,那么数据库就启动不了了。(注意,这里同理,Redo文件也一样需要在不同的磁盘下)

  • 接下来问题来了

    我们怎么知道实际在Linux下,这些文件系统都挂载在哪些盘上了呀?好像印象中,我们都是做的Raid1或者Raid5,并且这台生产系统,还是在云上的虚拟机,貌似没办法知道哪个磁盘是给我们这台服务器用的,这样的话,这个风险岂不是很高么?
    关于这里,我询问了比较懂Linux存储的同事,也上网找了一下相关资料,得到如下结论:

    在oracle文档上强烈建议将使用多个控制文件并放置在不同的硬盘上。这样的建议和架构对控制文件的保护上没错,但是在实际的生产系统中这样的架构似乎并不合理。加入放在两个硬盘上,那么两块硬盘中有故障的概率要比一块硬盘大。而在oracle系统中,无论哪个contorlfile失效都会导致系统宕掉。这可能到增加了系统故障的可能。所以达不到高可用的要求。而一些实际的系统架构是依赖于硬件的冗余,比如raid1或者raid5/raid6的配置来保证系统的高可用运行和controlfile在硬盘出现故障时不会丢失。

    另外,对controlfile的备份也需要重视。

    看起来Oracle官方的推荐,跟实际生产情况还是有差异的,我们能做到的就是在备份数据库的时候,一定要注意把控制文件备份出来,这样不管通过什么方式恢复了数据库,如果磁盘有问题的话,我们可以拿备份的控制文件来用。

转载地址:http://kufsa.baihongyu.com/

你可能感兴趣的文章
php中的$this-%3efetch,Zend DB fetchAll(): where子句數組帶有IN操作符
查看>>
李思琼php,nginx单机1w并发优化
查看>>
怎么手动设置oracle,手把手设置win7系统手动启动Oracle服务的设置方法
查看>>
oracle fk作用,oracle pk&fk
查看>>
oracle裂块是什么意思,Oracle索引块分裂split信息汇总
查看>>
php构造函数创建对象,7.10 构造函数来创建对象
查看>>
oracle解密后台包,oracle9i加密解密包用法
查看>>
oracle数据库nmon日志在哪,oracle技术之nmon使用说明
查看>>
oracle10g实例修改表空间,oracle10g建表空间和修改oracle字符和删除表空间和用户(加 标注)...
查看>>
linux命令语法规则,Linux系统tar命令怎么使用语法规则
查看>>
linux查看服务器静态路由配置,配置Linux静态路由和配置IP
查看>>
linux应用程序使用时钟中断,Linux时钟中断(2.6.23)(三)
查看>>
win7读取linux硬盘序列号,Windows 下获取硬盘序列号
查看>>
linux音频设备接口,OSS--跨平台的音频接口简介
查看>>
华为网卡linux驱动安装,Linux Nvidia显卡驱动安装
查看>>
linux sql撤销,取消请求的sql语句
查看>>
c语言学习 二维指针,二维数组和指针(C语言)
查看>>
图像压缩算法构造最优解c语言,C语言与程序设计第12章递归.ppt
查看>>
c语言飞机源代码,C语言写的飞机源码
查看>>
C语言 如果某个数大于10 归零,C:当指针实际指向某个东西时,函数继续接收归零指针(示例代码)...
查看>>