有时候由于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