控制文件的引入和引入目的

本文深入解析数据库控制文件的功能、内容及管理策略。控制文件作为记录数据库状态的关键二进制文件,其大小、配置及信息获取方式至关重要。文章详细介绍了控制文件的组成、如何查看配置信息,并探讨了限制控制文件大小、获取控制文件详细信息的方法。通过理解控制文件的作用和管理技巧,可有效提升数据库稳定性和性能。

一、控制文件是一种二进制文件,记录物理数据库的当前状态。每一个控制文件只属于一个数据库但是一个数据库通常有多个控制文件,目的是避免控制文件丢失对数据库恢复的影响,多个控制文件中的内容其实是完全相同的。为防止磁盘的物理故障这些控制文件最好放在不同的物理磁盘上,最好放在不同的物理磁盘控制器上。

二、控制文件中所存储的信息如下:

1、数据库的名字,改名字取自初始化参数文件中说明的数据库名字或者是create database时使用的名字,通过如下sql查询:

  select name,created,log_mode,open_mode from v$database;

通常在获得数据库名称时还有获得他的运行主机和数据库实例以及数据库的版本信息,sql查询如下

    select host_name,instance_name,version,status from v$instance;

要想获得更详细的版本信息以应对可能要部署的应用系统的数据库要求,通过如下sql获得详细的版本信息:

   select * from v$version;

2、数据库标志符,该标志符是创建数据库时由oracle生成的即sid。

3、数据库创建的时间戳,在数据库创建时生成

4、联机重做日志文件的名字和准确位置。当在增加,删除,修改重做日志文件时oracle会修改相关信息。获得重做日志文件的信息sql如下:

     select group#,members,archived,status from v$log;

因为v$log数据字典中不包括重做日志文件的名称,路径,id等信息,如果要进一步获得重做日志分组中对应的重做日志文件成员的信息需通过如下sql

   select group#,member,type,status from v$logfile;

5、当前日志的序列号,在日志切换时由oracle负责记录

6、校验点信息,该信息是在产生校验点时由oracle记录的

7、日志的历史信息

8、归档日志文件的准确位置和状态

    archive log list;

9、表空间的信息,增加删除表空间时由oracle记录。要获得表空间的详细信息要通过静态的数据字典查找dba_tablespaces

  select tablespace_name,status,contents,logging from dba_tablespaces;

对应到每一个表空间的数据文件的详细信息可以通过dba_data_files查找

格式话输出结果:

       col file_name a30;

       col tablespace_name a20;

       set pagesize 50;

       select file_id,file_name,tablespace_name,status from dba_data_files;

10、数据文件的名字和准确位置,当增加,删除,修改数据文件时由oracle负责写入记录

11、备份的准确位置和状态,这些信息由恢复管理器记录,主要是记录重做日志文件,获得归档重做日志文件的sql

  archive log list;

三、因为控制文件是二进制文件,无法直接读取控制文件中的信息,获得控制文件中的信息的唯一方式就是通过数据字典。

数据字典分为:基表,基于基表的实体view。

基于基表的视图view又分为 user_*,all_*,dab_*

这些数据字典中查询出来的信息都是来着数据字典基表,是保存在数据库中静态信息。不是来着内存区别于以v$开头的动态表

以v$开头的动态表中的信息来自于内存,而内存中的信息是从oracle启动时加载自控制文件中的内容。故所有从控制文件中获得信息的数据字典视图都是用v$开头的。

四、限制控制文件的大小:

控制文件是oracle服务器经常操作的数据文件,因此该文件应该配置的尽可能的小些,才有利于服务器对控制文件的操作。控制文件分为两部分:可重用的部分、不可重用的部分

可重用部分通过参数control_file_record_keep_time限制可重用部分的内容保存天数默认为7天,可重用部分主要是用来给恢复管理器使用,这部分的内容可以自动扩展。

在创建数据库(create database)或表空间(create controlfile)时可以使用如下参数来间接影响不可重用部分的大小:

MAXDATAFILES

MAXINSTANCES

MAXLOGFILES

MAXLOGHISTORY

MAXLOGMEMBERS

在实际的工作中在能够保持控制文件尽可能小的同时,又要为数据库今后的扩展留下足够的空间。

五、查看控制文件的配置:

查看控制文件中全部记录的相关信息通过v$controlfile_record_section。该数据字典显示的信息是标志了每一种属性信息所分配、使用的记录情况,其中包括:

数据文件类型分配的记录数和使用的记录数,表空间类型所分配的记录个数和使用个数即重做日志文件的分配和使用记录个数等情况。

select type,record_size,records_total,records_used from v$controlfile_record_section

record_size:每种记录的字节数

records_total:该段所分配的记录个数

records_used:该段所使用的记录个数

建议使用数据字典v$parameter来获得控制文件的名字

select value from v$parameter where name='control_files';

更常用的获得控制文件详细信息的数据字典是v$controlfile

select name,status from v$controlfile;

 

   

 

 

posted on 2014-06-15 09:51 moonfans 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/moonfans/p/3789142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值