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. matlab中colormap

    来源:https://ww2.mathworks.cn/help/matlab/ref/colormap.html?searchHighlight=colormap&s_tid=doc_src ...

  2. 持续更新——dp的一些技巧

    共菜鸡笔者看的--会慢慢更新,也请看到的大佬留意一眼,指出不足. 对于一些对部分点的二维\(dp\),状态从左上角继承而来时,对于一个点\((x,y)\),对它编号\(x*m+y\),按照这个顺序\( ...

  3. 使用AirtestProject+pytest做支付宝小程序UI自动化测试

    一,前言 1,背景 因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料.白piao失败 ...

  4. 多测师讲解python _函数return_高级讲师肖sir

    # 函数中的返回的作用: 注意点:(1)调用函数===没有加print 调用函数为空,加了print调用函数打印输出none              (2)在函数中碰到return语句赋值直接返回r ...

  5. 如何把C++的源代码改写成C代码?而C改C++只需一步!

    ★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用 ...

  6. go 协程阻塞

    func main() { wg.Add(2) go test1() go test2() wg.Wait() } func test1() { defer wg.Done() for i:=0;i& ...

  7. centos8平台用redis-cli对redis5监控和管理

    一,监控redis-server上正在执行的命令 1,打开a终端: [root@yjweb log]# /usr/local/soft/redis5/bin/redis-cli -h 127.0.0. ...

  8. linux(centos8):lnmp环境编译安装zabbix5.0

    一,zabbix的用途: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix能监视各种网络参数,保证服务器系统的安全运营: 并提供灵活的通知机制以 ...

  9. 本地ssh快速登录 ssh免密登录

    每次登录都要ssh -p wang@xx.xx.xx.xx 虽然做了公钥验证 https://www.cnblogs.com/php-linux/p/10795913.html 不需要输入密码,但是每 ...

  10. Python之集合详解

    定义: 1.不同元素组成 2.无序 3.集合中的元素必须是不可变类型 创建集合 s = {1,2,3,4,5,6,7,8} 1.定义可变集合 >>> set_test = set(' ...