ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10gr2自动扩展控制文件中的设置

10gr2自动扩展控制文件中的设置

原创 Linux操作系统 作者:yangtingkun 时间:2009-05-16 22:44:16 0 删除 编辑

10gR2版本开始,控制文件中设置的最大值,不再是数据库中的限制,当数据库的实际值超过了控制文件中的设置,控制文件中的值会自动扩展。

 

 

9i10.1的时候,Oracle的控制文件中设置的参数确定了数据库的一些限制,比如数据库可以打开的最大数据文件数,数据库使用的最大日志组个数,每个日志组最大成员数等等。这个限制是数据库所能达到的最大值,如果超过了这个限制,则数据库会报错:

SQL> select type, record_size, records_total, records_used
  2  from v$controlfile_record_section
  3  where type = 'REDO LOG';

TYPE                 RECORD_SIZE RECORDS_TOTAL RECORDS_USED
-------------------- ----------- ------------- ------------
REDO LOG                      72             5            3

SQL> select group#, thread#, sequence#, bytes
  2  from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES
---------- ---------- ---------- ----------
         1          1         41  536870912
         2          1         43  536870912
         3          1         42  536870912

SQL> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ----------------------------------------
         1 /data/oradata/bjtest/redo01.log
         2 /data/oradata/bjtest/redo02.log
         3 /data/oradata/bjtest/redo03.log

SQL> alter database add logfile group 4 '/data/oradata/bjtest/redo04.log' size 512m;

数据库已更改。

SQL> alter database add logfile group 5 '/data/oradata/bjtest/redo05.log' size 512m;

数据库已更改。

SQL> alter database add logfile group 6 '/data/oradata/bjtest/redo06.log' size 512m;
alter database add logfile group 6 '/data/oradata/bjtest/redo06.log' size 512m
*
ERROR
位于第 1 :
ORA-01185:
日志文件组号6无效


SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
PL/SQL Release 9.2.0.4.0 - Production
CORE    9.2.0.3.0       Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production

可以看到在9i中,是不能超过控制文件中设置的最大值的,如果要解决这个问题,唯一的方法就是重建控制文件。

而在10.2Oracle做出了改进,当数据库的兼容性初始化参数COMPATIBLE设置为10.2.0.1.0以上时,这个值会随着实际的使用情况而扩大,而如果COMPATIBLE设置的值是10.1.0.1.0以下时,即使是10.2版本的数据库,也不会自动扩展控制文件的限制条件:

SQL> select * from v$version;

BANNER
-------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

SQL> show parameter compatible

NAME                                 TYPE                           VALUE
------------------------------------ ------------------------------ ---------------------
compatible                           string                         10.1.0.0.0

这是一个10.2.0.3的数据库,不过数据库兼容性设置为10.1,下面看看这个数据库的表现:

SQL> select type, record_size, records_total, records_used
  2  from v$controlfile_record_section
  3  where type = 'REDO LOG';

TYPE                           RECORD_SIZE RECORDS_TOTAL RECORDS_USED
------------------------------ ----------- ------------- ------------
REDO LOG                                72             5            3

SQL> select group#, thread#, sequence#, bytes
  2  from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES
---------- ---------- ---------- ----------
         1          1          1  104857600
         2          1          0  104857600
         3          1          0  104857600

SQL> col member format a60
SQL> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ------------------------------------------------------------
         1 /data/oradata/test102/redo01.log
         2 /data/oradata/test102/redo02.log
         3 /data/oradata/test102/redo03.log

SQL> alter database add logfile group 4 '/data/oradata/test102/redo04.log' size 100m;

Database altered.

SQL> alter database add logfile group 5 '/data/oradata/test102/redo05.log' size 100m;

Database altered.

SQL> alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m;
alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m
*
ERROR at line 1:
ORA-01185: logfile group number 6 is invalid

错误信息和9i中一致,下面将兼容性设置改为10.2

SQL> alter system set compatible = '10.2.0.1.0' scope = spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  851443712 bytes
Fixed Size                  2076496 bytes
Variable Size             226492592 bytes
Database Buffers          616562688 bytes
Redo Buffers                6311936 bytes
Database mounted.
Database opened.
SQL> show parameter compatible

NAME                                 TYPE                           VALUE
------------------------------------ ------------------------------ -------------------
compatible                           string                         10.2.0.1.0
SQL> alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m;

Database altered.

SQL> alter database add logfile group 7 '/data/oradata/test102/redo07.log' size 100m;

Database altered.

SQL> select type, record_size, records_total, records_used
  2  from v$controlfile_record_section
  3  where type = 'REDO LOG';

TYPE                           RECORD_SIZE RECORDS_TOTAL RECORDS_USED
------------------------------ ----------- ------------- ------------
REDO LOG                                72            21            7

启动后在alert文件中可以看到Oracle改变了重做日志的结构:

ALTER DATABASE OPEN
Switching redo format version from 10.1.0.0.0 to 10.2.0.1.0 at change 13841

而在执行了添加日志组6的操作后,在alert文件中记录了控制文件的自动扩展:

alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m
Sun May 17 06:34:27 2009
Expanded controlfile section 3 from 5 to 21 records
The number of logical blocks in section 3 remains the same
Completed: alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m
Sun May 17 06:35:02 2009
alter database add logfile group 7 '/data/oradata/test102/redo07.log' size 100m
Sun May 17 06:35:04 2009
Completed: alter database add logfile group 7 '/data/oradata/test102/redo07.log' size 100m

10.2中,控制文件中的限制不再是数据库必须满足的限制条件了,如果数据库中配置的数量超过控制文件中的数量,控制文件会自动进行扩展,10gr2的这个功能,减少了控制文件重建的可能性。

 

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

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10455285