返回顶部
首页 > 资讯 > 数据库 >Oracle如何检查点涉及的SCN
  • 819
分享到

Oracle如何检查点涉及的SCN

2024-04-02 19:04:59 819人浏览 独家记忆
摘要

这篇文章主要介绍oracle如何检查点涉及的SCN,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 检查点涉及的SCN(1). 数据文件中的文件头启动检查点的scn存储在每个数据文

这篇文章主要介绍oracle如何检查点涉及的SCN,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1. 检查点涉及的SCN

(1). 数据文件中的文件头启动检查点的scn

存储在每个数据文件的文件头中

select name,checkpoint_change# 

from v$datafile_header;

安全关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn都会设置成数据文件头中的那个启动scn的值。

数据库重新启动的时候,Oracle将文件头中的那个启动scn(存在于各个数据文件里)与数据库文件检查点scn(存在于控制文件里)进行比较,如果这两个值相互匹配,oracle接下来还要比较数据文件头中的启动scn和控制文件中数据文件的终止scn。如果这两个值也一致,就意味着所有数据块的redo记录都已经提交,所有对数据库的修改都没有在关闭数据库的过程中丢失,因此这次启动数据库的过程也不需要任何恢复操作,此时数据库就可以打开了。 

(2).数据文件检查点SCN,

存储在控制文件中:

SELECT T.NAME,T.CHECKPOINT_CHANGE#,b.tablespace_name

FROM  V$DATAFILE T,dba_data_files b

where t.FILE#=b.file_id;

(3).数据文件的终止scn

存储在控制文件中

select name,last_change# 

from v$datafile;

终止SCN在数据库关闭或者表空间脱机是才会涉及到,在正常的数据库操作过程中,所有正处于联机读写模式下的数据文件的终止scn都为null.

在安全关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn都会设置成数据文件头中的那个启动scn的值。

(4).系统检查点SCN

存储在控制文件中

select  t.CHECKPOINT_CHANGE#

from v$database t;

(5). 日志文件的scn

select t.FIRST_CHANGE# 开始时的SCN,t.FIRST_TIME,t.NEXT_CHANGE#  结束时的SCN

from V$log_History  t

order by t.FIRST_TIME;

2. 发生完全检查点时:

数据文件头,标识上次处理完的启用scn。

而CKPT进程则将所有数据文件(无论redo log中的数据是否影响到该数据文件)文件头上记录的Start SCN更新为Next SCN; (通过视图v$datafile_header的字段checkpoint_change#可以查询)

同时将控制文件中的System Checkpoint SCN更新为Next SCN; (通过视图v$database的字段checkpoint_change#可以查询)

每个数据文件对应的Datafile Checkpoint)也更新为Next SCN;(通过视图v$datafile的字段checkpoint_change#可以查询)

从Low SCN到Next SCN之间的所有redo记录的数据就被DBWn进程写入数据文件中.    

3. 系统是如何产生一个最新的SCN的:

实际上,这个数字是由当时的timestamp转换过来的。每当需要产生一个最新的SCN到redo记录时,系统获取当时的timestamp,将其转换为数字作为SCN。

我们可以通过函数SCN_TO_TIMESTAMP将其转换回timestamp:

select dbms_flashback.get_system_change_number, SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number) 

from dual;

也可以用函数timestamp_to_scn将一个timestamp转换为SCN:

select timestamp_to_scn(SYSTIMESTAMP) as scn 

from dual;

4. SCN除了作为反映事务数据变化并保持同步外,它还起到系统的"心跳"作用——每隔3秒左右系统会刷新一次系统SCN。

以上是“Oracle如何检查点涉及的SCN”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle如何检查点涉及的SCN

本文链接: https://lsjlt.com/news/64664.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle如何检查点涉及的SCN
    这篇文章主要介绍Oracle如何检查点涉及的SCN,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 检查点涉及的SCN(1). 数据文件中的文件头启动检查点的scn存储在每个数据文...
    99+
    2024-04-02
  • oracle如何检查scn headroom
    这篇文章将为大家详细讲解有关oracle如何检查scn headroom,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。11.2.0.2及之后的scn每秒最大增长速率是32...
    99+
    2024-04-02
  • Oracle中SCN与检查点的示例分析
    这篇文章主要介绍Oracle中SCN与检查点的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.SCN 的定义SCN(System Change Number ),也就是通常...
    99+
    2024-04-02
  • oracle查询存储过程里面涉及的表有哪些
    要查询存储过程涉及的表:连接到数据库。查询 all_object_tables 视图,过滤出存储过程涉及的表(object_name 与存储过程 object_name 匹配,排除临时表...
    99+
    2024-04-19
    oracle
  • 如何检查Oracle命中率
    这篇文章主要介绍如何检查Oracle命中率,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在数据库正常使用期间,可以通过以下SQL来测试数据库性能:SQL...
    99+
    2024-04-02
  • postgresql如何检查点调整checkpoint
    小编给大家分享一下postgresql如何检查点调整checkpoint,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!postg...
    99+
    2024-04-02
  • Oracle 死锁的检测查询及处理
    死锁查询语句: -- 死锁查询语句 SELECT bs.username "Blocking User", bs.username "DB User", ...
    99+
    2024-04-02
  • Oracle的增量检查点指的是什么
    这期内容当中小编将会给大家带来有关Oracle的增量检查点指的是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、为什么要有检查点   被修改过的块,在oracle中都被...
    99+
    2023-06-06
  • Dreamweaver站点如何检查链接错误?
    这篇文章主要介绍Dreamweaver站点如何检查链接错误,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Dreamweaver检查站点中的链接错误设置教程。打开或创建一个测试Dreamweaver网页,并在网页编写一...
    99+
    2023-06-08
  • java如何设置断点检查程序
    在Java中,可以使用断点来设置程序的停止点,以便在该位置暂停程序的执行,并允许开发人员逐行调试代码。以下是在Java中设置断点的几...
    99+
    2023-09-14
    java
  • oracle 12c如何检查pdb数据库状态
    这篇文章主要为大家展示了“oracle 12c如何检查pdb数据库状态”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“oracle 12c如何检查pdb数据库状态...
    99+
    2024-04-02
  • Dreamweaver如何使用命令检查站点链接的范围
    小编给大家分享一下Dreamweaver如何使用命令检查站点链接的范围,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先,我们点击菜单栏上方的站点小命令。接下来我...
    99+
    2023-06-08
  • oracle如何判断检查结果是否异常
    Oracle通常使用异常处理来判断检查结果是否异常。在PL/SQL中,可以使用以下方法来捕获异常并处理检查结果是否异常: 使用E...
    99+
    2024-04-02
  • 如何通过Xtrabackup日志来恢复检查点文件
    这篇文章将为大家详细讲解有关如何通过Xtrabackup日志来恢复检查点文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 前几天有个朋友问我的问题,是在xtrabac...
    99+
    2024-04-02
  • 如何理解用户行为的分析都涉及到的方面
    本篇内容主要讲解“如何理解用户行为的分析都涉及到的方面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解用户行为的分析都涉及到的方面”吧!  我们经常都会在讲互联网产品的数据运营,而数据运营...
    99+
    2023-06-10
  • 如何检查PHP支持的方法
    这篇“如何检查PHP支持的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何检查PHP支持的方法”文章吧。查看phpin...
    99+
    2023-07-05
  • Oracle存储过程中如何检查表是否存在
    在Oracle存储过程中如何检查表是否存在 在Oracle数据库中,对于开发人员来说经常需要编写存储过程来完成一些复杂的业务逻辑。在编写存储过程时,有时需要在程序中判断某张表是否存在,...
    99+
    2024-03-08
    oracle 存储过程 检查
  • Oracle存储过程中如何检查表是否存在
    在Oracle存储过程中如何检查表是否存在 在Oracle数据库中,对于开发人员来说经常需要编写存储过程来完成一些复杂的业务逻辑。在编写存储过程时,有时需要在程序中判断某张表是否存在,...
    99+
    2024-03-08
    oracle 存储过程 检查
  • Linux系统如何优化文件系统及磁盘检查
    本篇内容主要讲解“Linux系统如何优化文件系统及磁盘检查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统如何优化文件系统及磁盘检查”吧! Linux中数据块是储存数据的基本数据单元...
    99+
    2023-06-10
  • js如何检查数组中的假值
    这篇文章给大家分享的是有关js如何检查数组中的假值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。检查数组中的假值大家应该都用过数组方法:filter、some、every,这些方法可以配合 Boolean 方法来...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作