对ORACLE SCN的理解

2023-05-16

1、SCN数值实际来源于系统的timestamp,这个实际可以证明
select current_scn from v$database;
select timestamp_to_scn(sysdate) from dual;
这两个数值是完全一样的。
2、在数据库关闭和启动的过程中,在关闭的时候,用系统SCN同步了数据文件头SCN和控制文件SCN,在启动的过程中,数据库文件头SCN和控制文件SCN还有START SCN和STOP SCN,这些是用来控制数据库是否在启动的时候,需要继续介质恢复,但是启动完成之后,第一个系统SCN,我判断应该是有TIMETASMP生成出来的,因为这第一个SCN,比启动之后的数据文件头SCN多了很多,一个空闲数据库在关闭15分钟之后,启动之后,第一个SCN和数据文件头SCN,数值相差500多,说明系统启动之后,系统SCN是通过TIMESTAMP来的,而不是继承上一次关闭的SCN。
3、经过实际检测发现,用来修改checkpoint scn的CKPT进程,应该有3个触发条件:1是手动,alter system checkpoint,2是由日志切换触发,手动或者自动切换重做日志,均会触发CKPT进程运行,3是数据库干净重启,将控制文件、数据文件头、系统的checkpoint scn进行同步。
一个保持7*24小时长时间运行的数据库,checkpoint scn的改变频率,是和在线日志大小及业务量有关的,改变频率等于在线日志的切换频率,在线日志小而且业务量大,那么checkpoint的改变频率就快。但是从整个数据库4个SCN看起来,改变频率最慢的还是checkpoint scn,其他的改变频率都要比这个快。
在v$database中,有两个相似的scn,分别是archive_change#和archivelog_change#,archivelog_change#是当前日志的开始SCN,也是当前的checkpoint scn,而archive_change#,却是上一个日志的开始scn,这个看起来有点奇怪,仔细想想,用处还比较大,archive_change#,确实应该是之前的checkpoint scn,确切的描述应该是上上次的checkpoint scn,正确的描述应该是当前日志的上一个日志的开始SCN,所以可以说是上上次的checkpoint scn,那么用途是什么呢,用途应该是两个,一个是这个scn之前的日志要强制归档,也就是说,在3个日志模式中,当前日志的下一个日志,比如当前日志是redo02,那么下一个日志就是redo03,这个redo03,在未归档之前,其实就是archive_change#之前的日志,这个说法就很明确了,也说明了为什么数据库必须确保3个日志,2个日志不行,因为当前日志无法归档,上一个日志可以延后归档,数据库设定上上一个日志要强制归档,那么当前日志、上一个日志、上上个日志,当然要全部存在,才好做了。这里又引申出来,这样archive_change#的第二个用途,从之前的描述可以看出,当前日志肯定无法归档,同时上一个日志也可以没有被归档,这是为了减低磁盘IO压力,做的异步归档,上一个日志是一个延后归档,那么在当前日志刚切换,上一个日志还没有归档的时候,数据库出现问题,需要恢复,怎么办,archive_change#,就可以非常方便查出需要检查是否恢复的大概范围。这样做,好像看起来有点多余,但是这应该是数据安全的另外一层保障机制。oracle数据库强调的就是数据安全。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9606200/viewspace-1435662/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9606200/viewspace-1435662/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对ORACLE SCN的理解 的相关文章

随机推荐

  • 内部网盘phpdisk创建记录

    PHPDISK的这次创建是在PHPWIND8 7的基础上 xff0c 一起安装的 xff0c 所以单独安装PHPDISK所需要的RPM包就不需要再安装了 将PHPDISK解压缩后 xff0c UPLOAD文件夹里面的东西 xff0c 复制到
  • July 17th 模拟赛C T2 Number Solution

    空降题目处 外网 点我点我点我 空降题目处 内网 点我点我点我 Description 给出一个整数 xff0c 你可以对 进行两种操作 1 将x变成4x 43 3 2 将x变成8x 43 7 问 xff0c 最少通过多少次操作 xff0c
  • np.maximum vs np.minimum

    一直按照字面意思理解 xff0c 以为maxmum取最大值 examples 原来是有广播机制的 xff0e np maximum 取对应位置上的大值 xff0c np minimum 取对应位置上的较小值 xff0e import num
  • tensorflow通过模型文件,使用tensorboard查看其模型图Graph

    Google提供了一个工具 xff0c TensorBoard xff0c 它能以图表的方式分析你在训练过程中汇总的各种数据 xff0c 其中包括Graph结构 所以我们可以简单的写几行Pyhton xff0c 加载Graph xff0c
  • numpy中np.maximum的使用

    np maximum X Y out 61 None X和Y逐位进行比较 选择最大值 xff0c 最少接受两个参数 gt gt gt np maximum 2 3 4 1 5 2 array 2 5 4 gt gt gt np maximu
  • [svn]status命令

    wangyetao 64 linux u1604 LinuxRoom SVN FILE 个人空间 xx wangyetao 64 linux u1604 LinuxRoom SVN FILE 个人空间 xx svn help status
  • 维护型项目的管理

    最近 xff0c 一直在维护一个项目 项目很大 xff0c 有很多个系统相互配合 xff0c 且使用的语言也不一样 有JAVA写的系统 xff0c 有PHP写的 xff0c 各系统用的数据库也不一样 xff0c 还有一些我说不出来的技术 项
  • cas5.2.6 搭建cas服务端

    1 打包cas服务器端war包 下载cas overlay template 5 2 zip 1 1配置pom xml lt dependencies gt lt dependency gt lt groupId gt org apereo
  • PHP516 用phpize增加扩展PDO_OCI和OCI8

    环境 xff1a centos5 5 PHP5 1 6 oracle10 2 0 5 客户端 1 从oracle官网下载oracle客户端包 oracle instantclient basic 10 2 0 5 1 i386 rpm or
  • npm ERR! enoent This is related to npm not being able to find a file.解决

    一 问题描述 运行sudo npm install color name出现如下错误 xff1a npm ERR path root blog node modules color namenpm ERR code ENOENT npm E
  • ROS中最重要的变量$ROS_PACKAGE_PATH

    昨天刚成功安装了ardrone autonomy 和 tum ardrone xff0c 运行也是通过了 今天又尝试了一下昨天的命令 xff0c 结果发现tum ardrone居然又运行不了了 xff0c 郁闷 xff01 说是没有在环境变
  • 用TIKZ在LaTex中画图

    我之前是用Edraw max画图的 xff0c 但是有一个致命的问题就是在图上写字母的时候与图解释中不一致 xff0c 所以尝试了一下LaTex画图 xff0c 哎呀 xff0c 耗费我一下午的时间呀 首先导入包 xff1a usepack
  • NLP中三种特征抽取器的优与劣

    RNN LSTM GRU xff1a 缺点 xff08 1 xff09 xff1a 无法并行 xff0c 因此速度较慢 xff08 2 xff09 xff1a RNN无法很好地学习到全局的结构信息 xff0c 尤其对于序列结构很长的 CNN
  • python List中元素两两组合

    aa span class token operator 61 span span class token punctuation span span class token string 39 a 39 span span class t
  • JRE not compatible with project .class file compatibility: 1.7

    电脑上刚装了jdk1 7 xff0c 运行一般程序的时候没有出现什么问题 xff0c 由于内存不够用 xff0c 在设置虚拟内存时却出现问题 xff0c 如下 xff1a 还好找到了解决办法 xff0c 错误的原因是JRE库配置与Java
  • BufferedWriter 的 flush() 方法

    package com corpus import java io import java util List import edu stanford nlp ling HasWord import edu stanford nlp lin
  • 正则表达式匹配连续多个空格或tab空格

    Pattern p 61 Pattern compile 34 s 2 t 34 Matcher m 61 p matcher str String strNoBlank 61 m replaceAll 34 34 System out p
  • LaTex中插入花体字母

    特别要注意的是 xff1a 在LaTeX中 xff0c 别把希腊字母和英文的花体字母搞混哦 xff0c 哈哈 举个例子 xff1a 后面显示的 X 不是希腊字母 西 即 也就是说不能通过 Chi 的方式插入这个特殊符号 xff0c 正确的花
  • 气哭了的C++调试,cmake 找不到 eigen

    这才刚刚开头 xff0c 可是就是不知道错误在哪里 xff1f 百度了问题后 xff0c 打开了很多很多相关的解答 xff0c 从昨天上午遇到这个问题 xff0c 历经昨天下午和晚上 xff0c 还是错误 xff0c 终于在今天上午圆满解决
  • 对ORACLE SCN的理解

    1 SCN数值实际来源于系统的timestamp xff0c 这个实际可以证明 select current scn from v database select timestamp to scn sysdate from dual 这两个