ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle中control_file_record_keep_time和MAXLOGHISTORY参数

Oracle中control_file_record_keep_time和MAXLOGHISTORY参数

原创 Linux操作系统 作者:keeptrying 时间:2012-06-06 12:07:03 0 删除 编辑

Oracle基于RMAN的备份方式可以分为catalognocatalog两种方式进行备份管理。其中,catalog方式需要一个catalog目录数据库,这个数据库一般运行在另外一台服务器上,RMAN把对数据库的备份恢复记录保留在catalog目录数据库中。这种方式可以用于用户有多个Oracle数据库的环境,同时对数据库的备份恢复信息也可以长久的保存。

而基于nocatalog的备份管理方式,是将RMAN的备份信息放在控制文件中。由于控制文件的大小不能无限增大,所以在控制文件中只能保留一段时间的备份与恢复信息。而这个时间的控制,由一个参数为依据,这个参数就是CONTROL_FILE_RECORD_KEEP_TIME。该参数默认值为7天。

SYS@ tsid > show parameter control_file_record_keep_time

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- --------

control_file_record_keep_time        integer     7

 

 

 

官网说明:

CONTROL_FILE_RECORD_KEEP_TIME specifies the minimum number of days before a reusable record in the control file can be reused. In the event a new record needs to be added to a reusable section and the oldest record has not aged enough, the record section expands. If this parameter is set to 0, then reusable sections never expand, and records are reused as needed.

CONTROL_FILE_RECORD_KEEP_TIME指定控制文件中可重复使用的记录所能保存的最小天数。当新增加一条记录到控制文件中可重复使用的部分,这时最老的记录没有超出最小保留天数,那么记录将控制文件的这一部分扩展。如果该参数设置为0,那么控制文件可重复使用的部分将永远不会扩展。

Note:

This parameter applies only to records in the control file that are circularly reusable (such as archive log records and various backup records). It does not apply to records such as datafile, tablespace, and redo thread records, which are never reused unless the corresponding object is dropped from the tablespace.

注意:这个参数只应用于控制文件中可循环利用的部分,如归档日志文件、各种备份记录等。不应用于诸如数据文件、表空间、重做线程等,这些内容不重用,除非相应的对象从表空间中删除后才能重用。

 

 

当使用RMAN目录时,CONTROL_FILE_RECORD_KEEP_TIME保存的时间不能比同步目录的时间间隔段。也就是说,如果每天备份一次,那么CONTROL_FILE_RECORD_KEEP_TIME不能少于1.

如果不使用RMAN目录,应该设置CONTROL_FILE_RECORD_KEEP_TIME为你需要往后恢复的最大天数。

 

--===============================================================

 

MAXLOGHISTROY参数用于限制控制文件里和通过v$log_history视图的归档日志文件数目。归档日志最多维持在MAXLOGHISTROY所设置的数目。如果超过这个数目,将从头覆盖以前的归档日志文件项。

当创建控制文件时,MAXLOGHISTORT的决定为归档日志信息分配多大的空间。MAXLOGHISTORY并不动态增加。当日志归档时,该归档文件的信息将被更新到控制文件。只有在如下情况下,才覆盖原来的项:控制文件中该区域所有项都被使用并且有一项超出了CONTROL_FILE_RECORD_KEEP_TIME设定的时间。

 

会有如下的情况:

创建控制文件时,设定MAXLOGHISORY参数为100,而控制文件的Log History区域是227个记录。

这是因为创建控制文件时,每个部分分配规定的大小和空间,而空间分配不是依据记录数,而是根据Oracle的块。控制文件中,每个部分的单条记录大小时固定的,都是36字节。因此,100个记录(MAXLOGHISTORY)需要3600个字节。依据Oracle的块大小(控制文件中设置的db_block_size,控制文件块大小也是db_block_size参数),特定数目的块将为Log History部分分配。例如,如果DB_BLOCK_SIZE8192,那么一个块就足够了。在这个块中,可以有8192/36,大约227个记录。如果DB_BLOCK_SIZE2048,那么将分配两个块,但是只创建113个记录。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25744374/viewspace-732038/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-25

  • 博文量
    130
  • 访问量
    911927