现在的位置: 首页 > 综合 > 正文

增加 logfile 大小

2013年10月19日 ⁄ 综合 ⁄ 共 4444字 ⁄ 字号 评论关闭

有时候由于logfile太小,导致日志切换频繁,引起log file switch ...之类的等待事件,这个时候需要增加 logfile的大小。

增加logfile 大小的步骤:

一:查看初始化参数

SQL> show parameter db_create_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      C:/oracle/product/10.2.0/oradata
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string

为什么要这么做呢?因为设置了OMF的这些参数,就可以在创建logfile 的时候让ORACLE去命名logfile。

我启用了db_create_file_dest这个参数,那么oracle就会默认的在这个路径下创建logfile 以及在 db_recory_file_dest中创建一个logfile.

二:查看当前日志的情况

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- -----------
         4          1         60  104857600          2 YES      INACTIVE               1746560 12/21/2009
         5          1         61  104857600          2 NO       CURRENT                1746623 12/21/2009

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------------------------------------- ---------------------
         4         ONLINE  C:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ROBINSON/ONLINELOG/LOG1A.LOG        NO
         4         ONLINE  C:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ROBINSON/ONLINELOG/LOG1B.LOG        NO
         5         ONLINE  C:/ORACLE/PRODUCT/10.2.0/ORADATA/ROBINSON/ONLINELOG/LOG2A.LOG                    NO
         5         ONLINE  C:/ORACLE/PRODUCT/10.2.0/ORADATA/ROBINSON/ONLINELOG/LOG2B.LOG                    NO

三:创建新的日志文件组

SQL> alter database add logfile group 6 size 150m;

Database altered

SQL> alter database add logfile group 7 size 150m;

Database altered

四:切换日志文件到新创建的日志文件组

SQL> alter system switch logfile ;

System altered

SQL> alter system switch logfile ;

System altered

五:查看当前日志文件信息,如果status为inactive,ARCHIVED为YES,那么drop 老的日志文件组

QL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- -----------
         4          1         60  104857600          2 YES      INACTIVE               1746560 12/21/2009
         5          1         61  104857600          2 YES      ACTIVE                 1746623 12/21/2009
         6          1         62  157286400          2 YES      ACTIVE                 1748762 12/21/2009
         7          1         63  157286400          2 NO       CURRENT                1748764 12/21/2009
SQL> alter database drop logfile group 4;

Database altered

SQL> alter database drop logfile group 5;

Database altered

六:重新创建日志文件组

SQL> alter database add logfile group 1 size 150m;

Database altered

SQL> alter database add logfile group 2 size 150m;

Database altered
七:再次切换日志文件
SQL> alter system switch logfile;

System altered

SQL> alter system switch logfile;

System altered

八:查看日志文件信息,如果status为inactive,archived 为yes,那么drop 老的日志文件组

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- -----------
         1          1         64  157286400          2 YES      ACTIVE                 1749065 12/21/2009
         2          1         65  157286400          2 NO       CURRENT                1749067 12/21/2009
         6          1         62  157286400          2 YES      INACTIVE               1748762 12/21/2009
         7          1         63  157286400          2 YES      ACTIVE                 1748764 12/21/2009

SQL> alter system flush buffer_cache;  ---此处是为了尽快让status变成inactive.

System altered

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- -----------
         1          1         64  157286400          2 YES      INACTIVE               1749065 12/21/2009
         2          1         65  157286400          2 NO       CURRENT                1749067 12/21/2009
         6          1         62  157286400          2 YES      INACTIVE               1748762 12/21/2009
         7          1         63  157286400          2 YES      INACTIVE               1748764 12/21/2009

八:删除中间日志文件组

SQL> alter database drop logfile  group 6;

Database altered

SQL> alter database drop logfile  group 7;

Database altered

抱歉!评论已关闭.