log添加 oracle redo_一次真实的操作更改oracle redolog的大小

一直想更改我们生产的redo log的大小,今天更新了,中间还是有一些可圈可点的东西 拿出来和大家分享一下

1.通关查看联机文档 (1) redo log的大小可以影响  DBWR 和 checkpoint ;(2)larger redo log files provide better performance. Undersized log files increase checkpoint activity and reduce performance.(大的log file可以提供更好的性能,小的log file 会增加checkpoint 和降低性能);(3)A rough guide is to switch log files at most once every 20 minutes.(推荐日志切换的时间不要超多20分钟).以上三句话是我从11g的联机帮助文档上摘抄下来的,感觉第二句和第三节好像是有些矛盾。我个人感觉redo log大点是有好处的,会减少日志切换的次数和总的等待时间、我也看了一下我的系统的alert日志 切换频率是有些高了在5-10分钟。具体在一个什么范畴,我也说不好 。在网上找了找 众说不一。通过看我的awr报告 log file switch 等待时间还比较靠前 而且产生的redo信息也比较多。所以我决定先把redo改大些然后在观察。具体的操作如下:

2.操作部分

select * from v$log  查看日志的组数

select * from v$logfile 查看日志文件

通过查看 我有三组redolog 1/2/3每组两个成员 状态都正常 大小50m

现在开始操作更改

(1)先创建两日志组(其实在这可以不用创建或是只建一组就可以)

alter database add logfile group 4 ('/oracle/oradata/redo04.log') size 100m;

alter database add logfile group 5 ('/oracle/oradata/redo05.log') size 100m;

(2)select * from v$log 看一下status这个字段 ,这个字段有必要说一下。status 有几个值 分别是:UNUSED(还没有使用过);CURRENT(正在使用);ACTIVE(Log is active but is not the current log. It is needed for crash recovery) ;INACTIVE(Log is no longer needed for instance recovery),我理解active和inactive的区别是active 状态下,日志在实例恢复中还是要用的,而inactive已经不是实例恢复所必须的。

查看日志组的状态看一下哪个是当前组,哪个是inactive状态的。删除掉inactive的那个组。如果状态为current和active 在删除的时候会报错

错误提示如下:

1)ERROR at line 1:

ORA-01623: log 2 is current log for instance dbstat (thread 1) - cannot drop

ORA-00312: online log 2 thread 1: '/data1/dbstat/redo2.log'

2)ERROR at line 1:

ORA-01624: log 2 needed for crash recovery of instance dbstat (thread 1)

ORA-00312: online log 2 thread 1: '/data1/dbstat/redo2.log'

删除日志组的语句为:alter database drop logfile group 2

(3)重新创建日志组,并设置大小

因为执行alter database drop logfile group 2 这个语句是不会把os上的物理文件删除的,所以我执行的语句如下:

alter database add logfile group 2 ('/oracle/oradata/redo02_01.log') size 200m reuse

执行成功后,在看一下v$log 里面重新出现了group2 状态为unused 大小变成了200m,在v$logfile只有一个group 2文件,

因为我每组有两成员,这是我需要给group 2再增加一个文件

alter database add logfile member '/backup/redo/redo02_02.log' to group 2

这是报错了,错误原因是我os的文件没有删除,删除后重新执行上语句就ok了。

在看一下v$logfile 已经有了新加的日志组成员文件,可是问题又来了,status 显示INVALID。我又看了一下联机文档 v$logfile status值如:(1)null 空值为正常

(2)deleted 删除不在使用的(3)invalid 文件不能访问(4)stale 文件内容不完整。又在网上查了一下,网上说新增成员后是显示invalid 等日志切换到这一组后就会正常了,我做了多个alter system switch logfile;在看就正常了。

我查看了一下alter database 语句 alter database add logfile member '/backup/redo/redo02_02.log' to group 2 可以改为

alter database add logfile member '/backup/redo/redo02_02.log'  reuse to group 2 这样就不用物理删除文件了

(4)以上依次类推就可以调整1、2、3组的redo log的大小。

调整完成后,在删除掉步骤一种增加的那2组日志组 就可以了!查看v$log 和v$logfile 都没有问题 redo log 调整到此结束,然后就是看调整后的测试。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值