在线修改redo.log文件的大小

author :skate
time   :2009/03/11


 


在压力测试的中,发现数据库很慢,通过如下语句发现是log_sync


select * from v$session_wait

在结合如下语句,发现日志切换的频率非常之快

select * from v$log

针对这个情况我就增加redo文件的大小的个数

 

在线修改redo.log文件的大小

 

1.查找日志文件的路径名和group#号

 

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIV
---------- ---------- ---------- ---------- ---------- ------
STATUS                           FIRST_CHANGE# FIRST_TIME
-------------------------------- ------------- --------------
         1          1        755   52428800          1 YES
INACTIVE                            1024261938 11-3月 -09

         2          1        756   52428800          1 NO
CURRENT                             1024549334 11-3月 -09

         3          1        754   52428800          1 YES
INACTIVE                            1024203168 11-3月 -09

 

SQL> select member from v$logfile;

MEMBER
-----------------------------------------------------------------

E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG


已选择3行。

 

2. 添加新的日志文件组

 

SQL> alter database add logfile  group 4 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO04.LOG' size 100m;

数据库已更改。

SQL> alter database add logfile  group 5 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO05.LOG' size 100m;

数据库已更改。

SQL> alter database add logfile  group 6 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO06.LOG' size 100m;

数据库已更改。

SQL> alter database add logfile  group 7 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO07.LOG' size 100m;

数据库已更改。

SQL> alter database add logfile  group 8 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO08.LOG' size 100m;

数据库已更改。

 

3. 查看已经添加的日志组

 

#######这个时候会发现新添加的日志状态为:unused

 

eg:

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIV
---------- ---------- ---------- ---------- ---------- ------
STATUS                           FIRST_CHANGE# FIRST_TIME
-------------------------------- ------------- --------------
         9          1          0  104857600          1 YES
UNUSED                                       0

 

 

切换日志,使其可用

 

 

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

 

 

####如果你想删除哪个日志就要把他的状态切换为:inactive


SQL> alter database drop logfile group 1;

数据库已更改。

SQL> alter database drop logfile group 2;

数据库已更改。

 

如果他的状态是:active, 你删除会报错的,提示无法删除在线的redo

 

 

SQL> alter database drop logfile group 3;
alter database drop logfile group 3
*
第 1 行出现错误:
ORA-01624: 日志 3 是紧急恢复实例 orcl (线程 1) 所必需的
ORA-00312: 联机日志 3 线程 1:
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG'


#######继续切换日志

 

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

 

4. 现在已经把 group1,group2,group3日志组删除,需要我们添加日志组,如下


SQL> alter database add logfile  group 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO01.LOG' size 100m;
alter database add logfile  group 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO0
1.LOG' size 100m
*
第 1 行出现错误:
ORA-00301: 添加日志文件 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG'
时出错 - 无法创建文件
ORA-27038: 所创建的文件已存在
OSD-04010: ?????<create> ??, ??????????


########根据上面的错误提示,要在系统级把redo文件删除,删除之后,如下:


SQL> alter database add logfile  group 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
REDO01.LOG' size 100m;

数据库已更改。


#######然后再切换日志


SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL>


#####查询所有的日志的状态

 

SQL> select group#,bytes,members status from v$log;

    GROUP#      BYTES     STATUS
---------- ---------- ----------
         1  104857600          1
         2  104857600          1
         3  104857600          1
         4  104857600          1
         5  104857600          1
         6  104857600          1
         7  104857600          1
         8  104857600          1
         9  104857600          1

已选择9行。

SQL>


经过增加redo的大小和个数后,发现没有log_sync的等待事件了,速度有所提升


----end ---

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值