Oracle数据库检查点未完成原因详解

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

最近在alter日志中发现 Checkpoint not complete 信息
产生此问题的原因具体分析:
首先说一下checkpoint 是什么?
chkpoint是一个数据库的内部机制,它存在有两个目的:

1. 保证数据的一致性
    系统发生检查点将出发DBWR进程将缓冲区中的脏数据块写入到数据文件,同时更新数据文件中的SCN号,记录联机重做日志文件中LRBA(low redo block address)的位置到控制文件中,当在写入过程中,突然实例崩溃,脏数据块没有完全写入到数据文件中。当实例启动的时候,会检查控制文件中的 终止SCN号,(四种SCN)这时候发现是空的(数据库正常运行的时候是无穷大或者保持为空),就认为数据库没有正常关闭,需要实例恢复,于是SMON进程根据控制文件中的SCN号,到重做日志文件中取出重做条目重现实例崩溃的那个状态。

2. 数据库实例崩溃后的实例恢复
    当实例恢复的时候,到底从重做日志文件的什么位置开始恢复呢?检查点checkpoint就是记录了一个SCN号,当实例回复的时候从最近的这个检查点做恢复,不必全部恢复重做日志的内容,减少了恢复时间。

   日志切换会触发检查点,当检查点触发后会引起DBWR进程将脏数据块写入数据文件,这个时候写入数据文件的脏数据块已经都写入了联机重做日志中,是安全的,当日志缓冲区的日志写满需要切换日志文件的时候,由于下一个日志文件对应的脏数据块没有完全写入到数据文件中,所以不能被覆盖,于是就发生了Checkpoint not complete。

   这时候可能是磁盘的原因导致DBWR写磁盘很慢,或者DBWR进程效率不高,以至于在发生日志切换的时候没有课覆盖的日志文件。这时候可以添加DBWR进程的数,或者添加日志文件组,来解决这个问题。


遂添加一个日志组:
用sysdba登录 
alter database add logfile gropu 4 ‘$ORACLE_HOME/oradata/SID/redo04.log’ size 100M;
切换日志文件
alter system switch logfile;
查看当前的日志文件是否在使用
select * from v$log
 



     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/461220,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
11天前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
121 64
|
4天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
97 68
|
1天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
13 7
|
1天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
9 6
|
1天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
9 5
|
8天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
10天前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
13 1
|
17天前
|
存储 Oracle 关系型数据库
【数据库-Oracle】《Oracle 数据库探秘:基础知识点全攻略》
《Oracle 数据库探秘:基础知识点全攻略》深入介绍 Oracle 数据库的基础知识点,包括数据类型、表结构、查询语句等。通过详细讲解、代码示例和流程图,帮助读者快速掌握 Oracle 数据库的基本操作,为数据库开发和管理打下坚实基础。
20 0
|
23天前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
37 3
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例

推荐镜像

更多