如何获取SCN

简介: SCN(System Change Number) ,也就是通常我们所说的系统改变号,是数据库中非常重要的一个数据结构。 它定义数据库在某个确切时刻提交的版本。

SCN(System Change Number) ,也就是通常我们所说的系统改变号,是数据库中非常重要的一个数据结构。

它定义数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的 SCN 。 SCN 提供 Oracle 的内部时钟机制,
可被看作逻辑时钟,这对于恢复操作是至关重要的 ( Oracle 仅根据 SCN 执行恢复)。

 

9i之前:

    select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;
x$ktuxe中查询出来的是当前结束事物最大SCN值,并不完全是系统当前SCN

9i之后:

    select dbms_flashback.get_system_change_number from dual;dbms_flashback查询出来的是系统当前的SCN值,可能是当前末结束事务所产生的SCN

对于上面这一点,结束事务末结束事务做一个小结:

   1)  SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;
       SCN
    ----------
       157421
 2) SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;
        SCN
      ----------
       157421
    
   3)SQL> select dbms_flashback.get_system_change_number from dual;
 
   GET_SYSTEM_CHANGE_NUMBER
   ------------------------
                157441
     
  4) SQL> select dbms_flashback.get_system_change_number from dual;
    GET_SYSTEM_CHANGE_NUMBER
    ------------------------
                      157443
    
 5)  SQL> select dbms_flashback.get_system_change_number from dual;
     
  GET_SYSTEM_CHANGE_NUMBER
   ------------------------
                      157444
    
   6) SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;
   
          SCN
   ----------
        157421  

通过上面简单查询可以发现:

1. dbms_flashback.get_system_change_number得出的SCN值一直在变化

2 x$ktuxe查询出来的scn值基本不变动

1) SQL> create table t as select *from all_objects;
 表已创建。
2)SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;
        SCN
     ----------
        157511
     
 3)   SQL> select dbms_flashback.get_system_change_number from dual;
      GET_SYSTEM_CHANGE_NUMBER
    ------------------------
                     157513
经历一次事务之后,再次查询发现,x$ktuxe增加了,与dbms_flashback得到的scn基本一致(执行前后问题)这也验证了前面所说的 最近结束事务 与 末结束事务!!!
目录
相关文章
|
存储 文件存储 对象存储
S3存储服务间数据同步工具Rclone迁移教程
目前大多项目我们都会使用各种存储服务,例如oss、cos、minio等。当然,因各种原因,可能需要在不同存储服务间进行数据迁移工作,所以今天就给大家介绍一个比较通用的数据迁移工具Rclone。
S3存储服务间数据同步工具Rclone迁移教程
|
Python
Pycharm一直卡在connecting to console的解决办法[图文步骤]
之前因为重新装了电脑系统导致有些开发软件因为不是安装在C盘的,所以没有卸载但有些环境被改变了,所以使用不正常,今天在使用pycharm的时候,打开出现了connecting to console,并且一直卡在这里
3659 0
Pycharm一直卡在connecting to console的解决办法[图文步骤]
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
AI+基因数据:健康诊断的“未来体检报告”来了
AI+基因数据:健康诊断的“未来体检报告”来了
401 6
|
Oracle Java 关系型数据库
JLink 使用教程:从入门到精通
本文提供了JLink工具的使用教程,包括入门、进阶和高级篇,涉及创建运行时镜像、添加模块、自定义启动器、压缩镜像、自定义运行时参数和配置文件等内容,旨在帮助用户创建独立的Java应用程序运行时环境。
2462 0
分布匹配蒸馏:扩散模型的单步生成优化方法研究
扩散模型在生成高质量图像方面表现出色,但其迭代去噪过程计算开销大。分布匹配蒸馏(DMD)通过将多步扩散简化为单步生成器,结合分布匹配损失和对抗生成网络损失,实现高效映射噪声图像到真实图像,显著提升生成速度。DMD利用预训练模型作为教师网络,提供高精度中间表征,通过蒸馏机制优化单步生成器的输出,从而实现快速、高质量的图像生成。该方法为图像生成应用提供了新的技术路径。
908 2
|
IDE Java 编译器
Java 错误: 无效的目标发行版 5 Java: 错误: 无效的目标发行版8 Java: 错误: 不支持发行版本17Java:无效的目标发行版17
Java 错误: 无效的目标发行版 5 Java: 错误: 无效的目标发行版8 Java: 错误: 不支持发行版本17Java:无效的目标发行版17
|
Kubernetes 安全 网络安全
Docker不同宿主机网络打通
【8月更文挑战第18天】在Docker中实现不同宿主机间的网络互联有多种方法:1) 使用Docker原生的Overlay与Macvlan网络。Overlay网络让容器跨主机通信,通过简单配置即可搭建;Macvlan则允许容器直接接入物理网络,实现高效通信。2) 利用第三方插件如Flannel和Calico,它们不仅支持跨主机网络,还提供高级特性如网络策略管理。无论选用哪种方案,均需确保宿主机间网络通畅,并适当配置防火墙以保障容器间的顺畅通信。
1303 0
|
安全 关系型数据库 MySQL
AWD常见防御加固手段
AWD常见防御加固手段
803 1
AWD常见防御加固手段
|
XML 缓存 Java
Spring AOP原理详解-Spring官方原版
Spring AOP原理详解-Spring官方原版
548 0
|
存储 Unix 关系型数据库
Linux 环境变量(基础)
bash shell用一个叫作环境变量( environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原因)。这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。
499 2