ITPub博客

首页 > 数据库 > Oracle > 数据库控制文件高达100多G

数据库控制文件高达100多G

原创 Oracle 作者:q499311546 时间:2021-03-24 17:41:40 0 删除 编辑
一、问题
同事在搭建备库,恢复控制文件时,发现控制文件达到100多G。
ASMCMD> ls -sh +AAA/BB/CONTROLFILE/current.366.1067517507
Block_Size Blocks Bytes Space Name
16K 8080777 123.3G 123.3G current.366.1067517507
二、问题分析
(1)既然控制文件达到100多G,那么确定下控制文件记录了什么内容,占了多大的空间。
set linesize 200 pagesize 200;
COLUMN type FORMAT a30 HEADING 'Record Type'
COLUMN record_size FORMAT 999999 HEADING 'Record|Size'
COLUMN records_used FORMAT 999999 HEADING 'Records|Used'
COLUMN first_index FORMAT 9999999 HEADING 'First|Index'
COLUMN last_index FORMAT 9999999 HEADING 'Last|Index'
COLUMN last_recid FORMAT 999999 HEADING 'Last|Record|ID'
SELECT type,
record_size,
records_total,
records_used,
first_index,
last_index,
last_recid
FROM
v$controlfile_record_section;

虽然控制文件记录的内容没有太多,但是LOG HISTORY、ARCHIVED LOG、DELETED OBJECT的RECORDS_TOTAL为1亿多非常可疑。

(2)通过trace生产的控制文件,发现了如下图可疑的值

(3)在自己的测试库,用这个值手工测试了下,发现控制文件确实可以达到上100G。

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS FORCE LOGGING ARCHIVELOG
    MAXLOGFILES 100
    MAXLOGMEMBERS 3
    MAXDATAFILES 65534
    MAXINSTANCES 8
    MAXLOGHISTORY 100000000
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 200M BLOCKSIZE 512,
  GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 200M BLOCKSIZE 512,
  GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 200M BLOCKSIZE 512
DATAFILE
  '/u01/app/oracle/oradata/orcl/system01.dbf',
  '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/pdbseed/system01.dbf',
  '/u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/users01.dbf',
  '/u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/system01.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/users01.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/pmis_space.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/pmis_index.dbf',
  '/u01/app/oracle/oradata/orcl/orclpdb/soe.dbf'
CHARACTER SET ZHS16GBK;


(4)LOG HISTORY、ARCHIVED LOG、DELETED OBJECT的值都差不多大,是不是都依赖于MAXLOGHISTORY这个值呢?手工设置这个值为300万,让数据库成功创建控制文件。

LOG HISTORY、ARCHIVED LOG、DELETED OBJECT确实是依赖于 MAXLOGHISTORY这个值。


三、问题解决
重建控制文件



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

上一篇: RHEL6.9+PG12
请登录后发表评论 登录
全部评论

注册时间:2016-06-03

  • 博文量
    38
  • 访问量
    53161