alert日志中含有大量警告信息:“Thread 1 cannot allocate new log, sequence 320xx Checkpoint not complete”

触发checkpoint条件其中有一条是redo切换时,观察告警日志发现大量的日志切换动作,说明该checkpoint就是由redo日志切换造成的,而checkpoint会触发DBWn将data buffer cache中的dirty block刷到datafile中,而checkpoint not complete说明data buffer cache中的dirty block还没有写到datafile中redo就又要切换,就会出现“Thread 1 cannot allocate new log”。

解决方法:

修改redo日志的大小并添加日志组后问题解决。

set lines 200 pages 300
col member for a60
select a.thread#,a.group#,b.member,b.type,a.status,a.bytes/1024/1024 MB from v$log a,v$logfile b where a.group#=b.group#
union all
select a.thread#,a.group#,b.member,b.type, a.status,a.bytes/1024/1024 MB from v$standby_log a,v$logfile b where a.group#=b.group#;

THREAD# GROUP# MEMBER TYPE STATUS MB
---------- ---------- ----------------------------------------------------------

可以看到,每个redo只有50MB,且每个线程只有两组。

因为redo不能直接修改大小,因而采用先增加大一点的新redo然后删除旧redo的方式。

增加新的redo,因为RAC环境下有多个日志线程,所以在添加日志时必须指定线程号:

每个节点实例用到的联机日志就是一个Redo Thread,单实例有且只有一个Redo Thread。
在RAC环境下,每个节点实例都需要自己的联机日志,也就是每个节点实例都有自己的Redo Thread。
这种每个节点实例一个Redo Thread,该设计是为了避免实例间共享Redo文件引发的竞争,提高系统性能。
RAC数据库通过thread这个参数用来指定节点实例使用的Redo Thread线程号,一般和该实例的INSTANCE_NUMBER参数相同。
通过视图V$LOG的THREAD#列可以确认日志组所属的线程。

alter database add logfile thread 1
group 5 '+DG_ORA/ipcc/redo05.log' size 200M,
group 6 '+DG_ORA/ipcc/redo06.log' size 200M;

alter database add logfile thread 2
group 7 '+DG_ORA/ipcc/redo07.log' size 200M,
group 8 '+DG_ORA/ipcc/redo08.log' size 200M;

当原日志组的状态为 INACTIVE 时方可删除

删除日志组的命令如下:
alter database drop logfile group N;
#其中N对应GROUP#

如果redo的状态不是INACTIVE,可以执行如下两条sql切换redo
alter system switch logfile;
alter system checkpoint;

然后删除旧的redo

alter database drop logfile group 1;
alter database drop logfile group 2;

alter database drop logfile group 3; 
alter database drop logfile group 4;

数据库中删除之后,物理文件并没有被删除,手动删除对应的redo物理文件

db1:~# su - grid
grid@db1:~> asmcmd
ASMCMD> ls
redo01.log
redo02.log
redo03.log
redo04.log
redo05.log
redo06.log
redo07.log
redo08.log
spfileipcc.ora

ASMCMD> rm redo01.log
ASMCMD> rm redo02.log
ASMCMD> rm redo03.log
ASMCMD> rm redo04.log

删除完成后,再增加新的redo

alter database add logfile thread 1
group 1 '+DG_ORA/ipcc/redo01.log' size 200M,
group 2 '+DG_ORA/ipcc/redo02.log' size 200M;

alter database add logfile thread 2
group 3 '+DG_ORA/ipcc/redo03.log' size 200M,
group 4 '+DG_ORA/ipcc/redo04.log' size 200M;

验证结果

set lines 200 pages 300
col member for a60
select a.thread#,a.group#,b.member,b.type,a.status,a.bytes/1024/1024 MB from v$log a,v$logfile b where a.group#=b.group#
union all
select a.thread#,a.group#,b.member,b.type, a.status,a.bytes/1024/1024 MB from v$standby_log a,v$logfile b where a.group#=b.group#;

修改redo log 的大小的更多相关文章

  1. Oracle更改redo log的大小

    因为数据仓库ETL过程中,某个mapping的执行时间超过了一个小时, select event,count(*) fromv$session_wait group by event order by ...

  2. Oracle更改redo log大小 or 增加redo log组

    (1)redo log的大小可以影响 DBWR 和 checkpoint : (2)arger redo log files provide better performance. Undersize ...

  3. 调整innodb redo log files数目和大小的具体方法和步骤

    相较于Oracle的在线调整redo日志的数目和大小,mysql这点则有所欠缺,即使目前的mysql80版本,也不能对innodb redo日志的数目和大小进行在线调整,下面仅就mysql调整inno ...

  4. mysql事务(一)——redo log与undo log

    数据事务 即支持ACID四大特性. A:atomicity          原子性——事务中所有操作要么全部执行成功,要么全部执行失败,回滚到初始状态 C:consistency     一致性—— ...

  5. InnoDB事务日志(redo log 和 undo log)详解

    数据库通常借助日志来实现事务,常见的有undo log.redo log,undo/redo log都能保证事务特性,undolog实现事务原子性,redolog实现事务的持久性. 为了最大程度避免数 ...

  6. MySQL · 引擎特性 · InnoDB redo log漫游(转)

    前言 InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性. 和大多数关系型数据库一样, ...

  7. redo log和bin log

    讲redolog和binlog之前,先要讲一下一条mysql语句的执行过程. 1.client的写请求到达连接器,连接器负责管理连接.验证权限: 2.然后是分析器,负责复习语法,如果这条语句有执行过, ...

  8. MySQL日志系统bin log、redo log和undo log

    MySQL日志系统bin log.redo log和undo log   今人不见古时月,今月曾经照古人. 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息,主要包括错误日 ...

  9. 一生挚友redo log、binlog《死磕MySQL系列 二》

    系列文章 原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 一生挚友redo log.binlog<死磕MySQL系列 二> 前言 咔咔闲谈 上期根据 ...

随机推荐

  1. GAN生成的评价指标 Evaluation of GAN

    传统方法中,如何衡量一个generator ?-- 用 generator 产生数据的 likelihood,越大越好. 但是 GAN 中的 generator 是隐式建模,所以只能从 P_G 中采样 ...

  2. 编写一个Open Live Writer的VSCode代码插件

    起因 又是一年多没有更新过博客了,最近用Arduino做了一点有意思的东西,准备写一篇博客.打开尘封许久的博客园,发现因为Windows Live Writer停止更新,博客园推荐的客户端变为了Ope ...

  3. Java知识系统回顾整理01基础03变量01变量定义

    定义: 变量:用来命名一个数据的标识符 一.什么是变量? 用具体实例定义变量 变量的定义是: 用来命名一个数据的标识符 1949 这是一个数字,代表某年 如果要命名这个数字,在java里就会写成: i ...

  4. 使用 .NET 进行游戏开发

    微软是一家综合性的网络公司,相信这点来说不用过多的赘述,没有人不知道微软这个公司,这些年因为游戏市场的回报,微软收购了很多的游戏公司还有独立工作室,MC我的世界就是最成功的的案例,现在市值是排在全世界 ...

  5. Python中list的合并

    ①差集 方法一: if __name__ == '__main__':     a_list = [{'a' : 1}, {'b' : 2}, {'c' : 3}, {'d' : 4}, {'e' : ...

  6. Django ORM 引发的数据库 N+1 性能问题

    背景描述 最近在使用 Django 时,发现当调用 api 后,在数据库同一个进程下的事务中,出现了大量的数据库查询语句.调查后发现,是由于 Django ORM 的机制所引起. Django Obj ...

  7. SHOI 2014 【概率充电器】

    加油,两道了,也就还剩那么二十来道吧,慢慢做...... 题目大意: 给你一颗树,树上的每一个节点都有一定的概率p[i]能冲上电,有电的点,可以通过树上的边,一定概率地将电传递到与它相邻的点,同时对于 ...

  8. SpringCache整合Redis

    之前一篇文章 SpringBoot整合Redis 已经介绍了在SpringBoot中使用redisTemplate手动 操作redis数据库的方法了.其实这个时候我们就已经可以拿redis来做项目了, ...

  9. 十一长假我肝了这本超硬核PDF,现决定开源!!

    写在前面 在 [冰河技术] 微信公众号中的[互联网工程]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不 ...

  10. Spring Boot 系列:日志动态配置详解

    世界上最快的捷径,就是脚踏实地,本文已收录架构技术专栏关注这个喜欢分享的地方. 开源项目: 分布式监控(Gitee GVP最有价值开源项目 ):https://gitee.com/sanjianket ...