史上最全,呕心沥血总结oracle推进SCN方法(六)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。

前面介绍了4种推进SCN方法
(1)event 10015 来增加 scn 的值
(2)隐含参数_minimum_giga_scn 来增加 scn 的值
(3)gdb/dbx 来直接修改内存中的值
(4)使用oradebug poke 直接修改内存中的值
(5)通过修改控制文件来修改 scn 的值

现在来说一下oracle推进SCN方法6:通过修改数据文件头来修改 scn 的值

1、查看当前SCN

--最好将数据库启动到mount状态
SQL> startup mount;
ORACLE instance started.

Total System Global Area 3691200512 bytes
Fixed Size		    2258680 bytes
Variable Size		  788531464 bytes
Database Buffers	 2885681152 bytes
Redo Buffers		   14729216 bytes
Database mounted.
SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
	   3433886
SQL> col name for a80
SQL> set linesize 400;
SQL> select file#,name from v$datafile;

     FILE# NAME
---------- --------------------------------------------------------------------------------
	 1 /u01/oradata/dbbbed/system01.dbf
	 2 /u01/oradata/dbbbed/sysaux01.dbf
	 3 /u01/oradata/dbbbed/undotbs01.dbf
	 4 /u01/oradata/dbbbed/users01.dbf
	 5 /u01/oradata/dbbbed/tbst01.dbf
	 6 /u01/oradata/dbbbed/szr01.dbf
	 7 /u01/oradata/dbbbed/mssm01.dbf
	 8 /u01/oradata/dbbbed/test0529.dbf

8 rows selected.

SQL> col name for a60;
set linesize 400;
select a.file#,
       a.name,
       (select checkpoint_change# from v$database) system_ckpt_scn,
       a.checkpoint_change# df_ckpt_scn,
       a.last_change# end_scn,
       b.checkpoint_change# start_scn,
       b.rSQL> SQL>   2    3    4    5    6    7  ecover,
       a.status
  from v$datafile a, v$datafile_header b
 where a.file# = b.file#;  8    9   10  

     FILE# NAME 							SYSTEM_CKPT_SCN DF_CKPT_SCN    END_SCN	START_SCN REC STATUS
---------- ------------------------------------------------------------ --------------- ----------- ---------- ---------- --- -------
	 1 /u01/oradata/dbbbed/system01.dbf					3433886     3433886    3433886	  3433886 NO  SYSTEM
	 2 /u01/oradata/dbbbed/sysaux01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE
	 3 /u01/oradata/dbbbed/undotbs01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE
	 4 /u01/oradata/dbbbed/users01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE
	 5 /u01/oradata/dbbbed/tbst01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE
	 6 /u01/oradata/dbbbed/szr01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE
	 7 /u01/oradata/dbbbed/mssm01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE
	 8 /u01/oradata/dbbbed/test0529.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE

2、bbed修改文件头SCN

–将数据文件加入bbed filelist,使用bbed进行编辑

$ cat filelist.txt 
1	/u01/oradata/dbbbed/system01.dbf	775946240
2	/u01/oradata/dbbbed/sysaux01.dbf	513802240
3	/u01/oradata/dbbbed/undotbs01.dbf	78643200
4	/u01/oradata/dbbbed/users01.dbf	5242880
5	/u01/oradata/dbbbed/tbst01.dbf	10485760
6	/u01/oradata/dbbbed/szr01.dbf	10485760
7      /u01/oradata/dbbbed/mssm01.dbf   10485760
8      /u01/oradata/dbbbed/test0529.dbf 5242880

$ bbed

BBED: Release 2.0.0.0.0 - Limited Production on Thu Jun 6 11:01:03 2024

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

BBED> info
 File#  Name                                                        Size(blks)
 -----  ----                                                        ----------
     1  /u01/oradata/dbbbed/system01.dbf                                 94720
     2  /u01/oradata/dbbbed/sysaux01.dbf                                 62720
     3  /u01/oradata/dbbbed/undotbs01.dbf                                 9600
     4  /u01/oradata/dbbbed/users01.dbf                                    640
     5  /u01/oradata/dbbbed/tbst01.dbf                                    1280
     6  /u01/oradata/dbbbed/szr01.dbf                                     1280
     7  /u01/oradata/dbbbed/mssm01.dbf                                    1280
     8  /u01/oradata/dbbbed/test0529.dbf                                   640

–将所有数据文件头的scn由3433886改成4433886

SQL> select to_char(3433886,'xxxxxxxxxxx'),to_char(4433886,'xxxxxxxxxxxx') from dual;

TO_CHAR(3433 TO_CHAR(44338
------------ -------------
      34659e	    43a7de
BBED> set file 1 block 1
	FILE#          	1
	BLOCK#         	1
BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x0034659e
      ub2 kscnwrp                           @488      0x0000
   ub4 kcvcptim                             @492      0x45cb01f0
   ub2 kcvcpthr                             @496      0x0001
   union u, 12 bytes                        @500     
      struct kcvcprba, 12 bytes             @500     
         ub4 kcrbaseq                       @500      0x00000007
         ub4 kcrbabno                       @504      0x00000223
         ub2 kcrbabof                       @508      0x0010
##注意上面的红色字体部分,我们需要将offset 484 这个地方的值改成0x0043a7de

BBED> assign dba 1,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
或者直接用10进制的也行
BBED> assign dba 1,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 4433886
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
ub4 kscnbas                                 @484      0x0043a7de

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x0043a7de
继续修改其他的数据文件
assign dba 2,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
assign dba 3,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
assign dba 4,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
assign dba 5,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
assign dba 6,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
assign dba 7,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de
assign dba 8,1 kcvfh.kcvfhckp.kcvcpscn.kscnbas  = 0x0043a7de

请添加图片描述
–保存修改

BBED> sum apply dba 1,1
Check value for File 1, Block 1:
current = 0x73a2, required = 0x73a2

BBED> sum apply dba 2,1
Check value for File 2, Block 1:
current = 0x06ea, required = 0x06ea

BBED> sum apply dba 3,1
Check value for File 3, Block 1:
current = 0x2aca, required = 0x2aca

BBED> sum apply dba 4,1
Check value for File 4, Block 1:
current = 0x44a3, required = 0x44a3

BBED> sum apply dba 5,1
Check value for File 5, Block 1:
current = 0x4dbe, required = 0x4dbe

BBED> sum apply dba 6,1
Check value for File 6, Block 1:
current = 0x4c4b, required = 0x4c4b

BBED> sum apply dba 7,1
Check value for File 7, Block 1:
current = 0x7012, required = 0x7012

BBED> sum apply dba 8,1
Check value for File 8, Block 1:
current = 0xa710, required = 0xa710

3、查看修改后的SCN

--打开数据库
SQL> alter database open;

Database altered.

--查看数据文件头的scn
SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
	   4433887
	   4433887
	   4433887
	   4433887
	   4433887
	   4433887
	   4433887
	   4433887

8 rows selected.

SQL> col name for a60;
set linesize 400;
select a.file#,
       a.name,
       (select checkpoint_change# from v$database) system_ckpt_scn,
       a.checkpoint_change# df_ckpt_scn,
       a.last_change# end_scn,
       b.checkpoint_change# start_scn,
       b.rSQL> SQL>   2    3    4    5    6    7  ecover,
       a.status
  from v$datafile a, v$datafile_header b
 where a.file# = b.file#;  8    9   10  

     FILE# NAME 							SYSTEM_CKPT_SCN DF_CKPT_SCN    END_SCN	START_SCN REC STATUS
---------- ------------------------------------------------------------ --------------- ----------- ---------- ---------- --- -------
	 1 /u01/oradata/dbbbed/system01.dbf					4433887     4433887		  4433887 NO  SYSTEM
	 2 /u01/oradata/dbbbed/sysaux01.dbf					4433887     4433887		  4433887 NO  ONLINE
	 3 /u01/oradata/dbbbed/undotbs01.dbf					4433887     4433887		  4433887 NO  ONLINE
	 4 /u01/oradata/dbbbed/users01.dbf					4433887     4433887		  4433887 NO  ONLINE
	 5 /u01/oradata/dbbbed/tbst01.dbf					4433887     4433887		  4433887 NO  ONLINE
	 6 /u01/oradata/dbbbed/szr01.dbf					4433887     4433887		  4433887 NO  ONLINE
	 7 /u01/oradata/dbbbed/mssm01.dbf					4433887     4433887		  4433887 NO  ONLINE
	 8 /u01/oradata/dbbbed/test0529.dbf					4433887     4433887		  4433887 NO  ONLINE

8 rows selected.

--查看数据库的scn
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    4434186

可以看到,SCN已修改,成功推进SCN。

链接:
史上最全,呕心沥血总结oracle推进SCN方法(一)
史上最全,呕心沥血总结oracle推进SCN方法(二)
史上最全,呕心沥血总结oracle推进SCN方法(三)
史上最全,呕心沥血总结oracle推进SCN方法(四)
史上最全,呕心沥血总结oracle推进SCN方法(五)

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698256.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

tmux 移植到ARM板端运行环境搭建

tmux源码下载: Home tmux/tmux Wiki GitHub 依赖的库代码下载: libevent: ncurses: 第一步:将以上三个代码解压放在同一个目录下,逐个编译 1. cd ./libevent-2.1.12-stable ./configure --host"arm-nextvp…

北斗位置服务管理平台

平台简介 一直想做一款后台管理系统,同时可以管理人,车,物品,猫,狗,牛羊等一切可以移动的室外事物进行集中化管理,最初的需求聚焦——谁在哪儿! 系统框架是基于当前最常用的RuoYi框架…

68页 | 2024体育赛事网络安全保障实践蓝皮书(免费下载)

以上是资料简介和目录,如需下载,请前往星球获取:

短剧片源火爆,千金难求好剧源

前言 在当今快节奏的生活中,短剧以其精悍的篇幅、吸睛的剧情和便捷的观看方式,异军突起,吸引了大量观众的关注和喜爱。这些短剧不仅让人们在忙碌的间隙轻松娱乐,更以其高潮迭起的情节设计,让观众在短时间内便能体验到…

“百变换装师”之证照之星

拍证件照是一件很麻烦的事吗?证件照编辑是一件复杂的事吗?只有专业人员才能对证件照进行编辑吗?以前可能是,但今天小编将给大家分享一个证件照编辑软件证照之星,它将使每一个人都能具备简单的证件照编辑技能。 证照之星…

Failed to start gdm.servide - GNOME Display manager

启动虚拟机时,卡在Failed to start gdm.servide - GNOME Display manager不动。 解决方法: 1.重新启动Ubuntu,在进度条未结束之前,长按shift直到界面跳转到选项菜单。 2.选择第二个,按enter进入 3.选择最新版本(后面…

使用charles做域名代理

目的:访问http://abcdefg:8099/时,指向本地http://localhost:8090/ 1、tools > Map Remote 2、tools > Rewrite 3、help > SSL Proxying > Install Charles Root Certificate 全部信任

基于Ascend C的FlashAttention算子性能优化最佳实践

LLM的Attention部分处理给计算系统带来巨大的计算和访存压力。业界先后出现FlashAttention、FlashAttention2等算法,通过计算等价和切分有效降低HBM数据访问量。 昇腾异构计算架构CANN针对昇腾AI处理器的片上内存和缓存大小,以及数据搬运通路&#xff0…

xLua(一) 环境安装笔记

为了方便查阅记录一下xLua的安装地址及方法 1.登录地址下载: https://github.com/Tencent/xLua 2.解压文件 将文件中的这些内容拷贝到项目中的Asset文件夹中 注意 : 工程项目路径不得含有中文 3.将Tools复制到Asset同级目录下 4.导入后会发现有Bug,需要导入工程 5.还有另…

AI科普 | 什么是人工智能的本质?

我们将以科普的角度深入探讨AI的本质,揭示其内在的基本逻辑。 我希望能够为读者提供一个简单清晰的认识,所以我摒弃晦涩的专用名词,用大白话的方式让小白也能轻松看懂,让大家更加了解这位改变世界的“魔法师”。 通过这篇文章&a…

Fyndiq买家号下单:自养号测评如何打造本土物理环境系统?

Fyndiq 是一个瑞典电子商务平台,我们通过该平台为渴望讨价还价的购物者提供一系列产品。该公司为希望以可访问的方式提高销售额的所有类型的零售商提供销售渠道。Fyndiq几乎是瑞典家喻户晓的存在,是瑞典折扣促销平台。以销售质优价廉的商品吸引了大量忠实…

14年后 苹果终于推出iPad原生计算器应用

迄今为止,在WWDC 2024大会上,新增的计算器应用获得了最热烈的掌声。iOS 官方计算器应用程序终于要登陆大屏幕了。该功能利用额外的屏幕空间带来了公司无法在 iPhone 上实现的新功能。其中最大的亮点是新增了"数学笔记"功能。新增的功能可以帮你…

迈向『闭环』| PlanAgent:基于MLLM的自动驾驶闭环规划新SOTA!

中科院自动化所深度强化学习团队联合理想汽车等提出了一种新的基于多模态大语言模型MLLM的自动驾驶闭环规划框架—PlanAgent。该方法以场景的鸟瞰图和基于图的文本提示为输入,利用多模态大语言模型的多模态理解和常识推理能力,进行从场景理解到横向和纵向…

黑豹程序员 堆和栈

简单变量及作用域 main()   int x1; show ()   int x2 执行步骤: 第1步:main()函数是程序入口,JVM先执行,在栈内存中开辟一个空间,存放int类型变量x,同时附值1。 第2步:JVM执行show()函…

轻兔推荐 —— Snipaste

via:轻兔推荐 - https://app.lighttools.net/ 简介 Snipaste 是一个简单但强大的截图工具,支持Windows和Mac,允许用户快速截图并进行编辑,如添加标注、文字和马赛克。 - 它还具有贴图功能,可以将截图或剪贴板内容固定…

Flash Diffusion 加速文生图模型生成;Pixart-α加速测试

参考:https://github.com/gojasper/flash-diffusion https://huggingface.co/jasperai/flash-pixart 安装包注意: diffusers 这里是官方上面有更改,参考:https://github.com/gojasper/flash-diffusion/blob/main/requirements.txt pip install -r requirements.txt dif…

第18篇 Intel FPGA Monitor Program的使用<一>

Q:Intel FPGA Monitor Program开发工具可以支持Terasic的FPGA开发板使用吗? A:Intel FPGA Monitor Program 是Intel提供的适用于 ARM* Cortex*-A9 处理器和 Nios II 处理器的完整软件开发环境,它包括编译工具以及完整的调试功能&…

如何格式化U盘?4个正确方法,记得收藏好!

“我的u盘不知道是中病毒还是什么原因,现在没法使用了,我想将它进行格式化操作,想问问大家应该如何格式化u盘呢?请帮帮我!” U盘作为我们日常生活中不可或缺的存储设备,常常用于传输和保存各种重要数据。然…

【深度学习】Loss为Nan的可能原因

文章目录 1. 问题情境2. 原因分析3. 导致Loss为Nan的其他可能原因 1. 问题情境 在某个网络架构下,我为某个数据项引入了一个损失函数。 这个数据项是nn.Embedding类型的,我加入的损失函数是对nn.Embedding空间做约束。 因为我在没加入优化loss前&#x…

34、matlab输入命令汇总

1、ans:最近计算的答案 代码示例1 12ans 3 代码示例2 Brand(7)B 列 1 至 60.7060 0.3171 0.1869 0.6797 0.5853 0.95930.0318 0.9502 0.4898 0.6551 0.2238 0.54720.2769 0.0344 0.4456 0.1626 0.7513 0.13860.0462 0.4387…