史上最全,呕心沥血总结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.dbf2 /u01/oradata/dbbbed/sysaux01.dbf3 /u01/oradata/dbbbed/undotbs01.dbf4 /u01/oradata/dbbbed/users01.dbf5 /u01/oradata/dbbbed/tbst01.dbf6 /u01/oradata/dbbbed/szr01.dbf7 /u01/oradata/dbbbed/mssm01.dbf8 /u01/oradata/dbbbed/test0529.dbf8 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.statusfrom v$datafile a, v$datafile_header bwhere 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  SYSTEM2 /u01/oradata/dbbbed/sysaux01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE3 /u01/oradata/dbbbed/undotbs01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE4 /u01/oradata/dbbbed/users01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE5 /u01/oradata/dbbbed/tbst01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE6 /u01/oradata/dbbbed/szr01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE7 /u01/oradata/dbbbed/mssm01.dbf					3433886     3433886    3433886	  3433886 NO  ONLINE8 /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$ bbedBBED: Release 2.0.0.0.0 - Limited Production on Thu Jun 6 11:01:03 2024Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.************* !!! For Oracle Internal Use only !!! ***************BBED> infoFile#  Name                                                        Size(blks)-----  ----                                                        ----------1  /u01/oradata/dbbbed/system01.dbf                                 947202  /u01/oradata/dbbbed/sysaux01.dbf                                 627203  /u01/oradata/dbbbed/undotbs01.dbf                                 96004  /u01/oradata/dbbbed/users01.dbf                                    6405  /u01/oradata/dbbbed/tbst01.dbf                                    12806  /u01/oradata/dbbbed/szr01.dbf                                     12807  /u01/oradata/dbbbed/mssm01.dbf                                    12808  /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 1FILE#          	1BLOCK#         	1
BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     struct kcvcpscn, 8 bytes                 @484     ub4 kscnbas                           @484      0x0034659eub2 kscnwrp                           @488      0x0000ub4 kcvcptim                             @492      0x45cb01f0ub2 kcvcpthr                             @496      0x0001union u, 12 bytes                        @500     struct kcvcprba, 12 bytes             @500     ub4 kcrbaseq                       @500      0x00000007ub4 kcrbabno                       @504      0x00000223ub2 kcrbabof                       @508      0x0010
##注意上面的红色字体部分,我们需要将offset 484 这个地方的值改成0x0043a7deBBED> 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      0x0043a7deBBED> 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 = 0x73a2BBED> sum apply dba 2,1
Check value for File 2, Block 1:
current = 0x06ea, required = 0x06eaBBED> sum apply dba 3,1
Check value for File 3, Block 1:
current = 0x2aca, required = 0x2acaBBED> sum apply dba 4,1
Check value for File 4, Block 1:
current = 0x44a3, required = 0x44a3BBED> sum apply dba 5,1
Check value for File 5, Block 1:
current = 0x4dbe, required = 0x4dbeBBED> sum apply dba 6,1
Check value for File 6, Block 1:
current = 0x4c4b, required = 0x4c4bBBED> sum apply dba 7,1
Check value for File 7, Block 1:
current = 0x7012, required = 0x7012BBED> 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#
------------------443388744338874433887443388744338874433887443388744338878 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.statusfrom v$datafile a, v$datafile_header bwhere 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  SYSTEM2 /u01/oradata/dbbbed/sysaux01.dbf					4433887     4433887		  4433887 NO  ONLINE3 /u01/oradata/dbbbed/undotbs01.dbf					4433887     4433887		  4433887 NO  ONLINE4 /u01/oradata/dbbbed/users01.dbf					4433887     4433887		  4433887 NO  ONLINE5 /u01/oradata/dbbbed/tbst01.dbf					4433887     4433887		  4433887 NO  ONLINE6 /u01/oradata/dbbbed/szr01.dbf					4433887     4433887		  4433887 NO  ONLINE7 /u01/oradata/dbbbed/mssm01.dbf					4433887     4433887		  4433887 NO  ONLINE8 /u01/oradata/dbbbed/test0529.dbf					4433887     4433887		  4433887 NO  ONLINE8 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方法(五)

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ教程(六):RocketMQ的消息生产

环境配置 RocketMQ版本:5.2.0 RocketMQ SDK版本:5.2.0 引入依赖 implementation org.apache.rocketmq:rocketmq-client:5.2.0 消息生产 消息的种类分成四种,普通消息、顺序消息、事务消息和延时消息,发生消息的方式也分为同步发送、异步发送、单向发送 三种。 1、普通消…

15. 《C语言》——【如何动态内存开辟】

亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优…

CST软件眼图工具Eye Diagram Tools (中)--- Classical流程

距离上次眼图介绍快两年了,由于上期已经将重点推荐的方法(statistical流程)介绍了,所以一直没急着涉及这个话题。 仿真实例011:眼图工具Eye Diagram Tools(上) 先总结一下之前介绍过的内容&am…

容器:现代计算的基础设施

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

大模型初学者怎么入门大语言模型(LLM)?

前言 在当今的科技浪潮中,人工智能(AI)和机器学习技术已经取得了长足的进步,其中大模型的发展尤为引人注目。大模型,通常指的是拥有海量参数、能够处理复杂任务的深度学习模型,如自然语言处理(…

RT-DETR 详解之 Uncertainty-minimal Query Selection

引言 在上一章博客中博主已经完成查询去噪向量构造部分的讲解(DeNoise)在本篇博客中,我们将进行Uncertainty-minimal Query Selection创新点的讲解。 Uncertainty-minimal Query Selection是RT-DETR提出的第二个创新点,其作用是…

UE5 Sequencer 使用指导 - 学习笔记

https://www.bilibili.com/video/BV1jG411L7r7/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 Sequencer 01 1.1 调整视口 调整窗口数量 调整视口类型为Cinematic视口 视口显示网格,或者条件参考线 1.2 关卡动画与…

架构设计-用户信息及用户相关的密码信息设计

将用户的基本信息和用户密码存放在不同的数据库表中是一种常见的安全做法,这种做法旨在增强数据的安全性和管理的灵活性。以下是这种做法的几个关键原因: 安全性增强: 当用户密码被单独存放在一个表中时,可以使用更强大的加密和哈…

计算机毕业设计 | SpringBoot+vue的教务管理系统

1,绪论 1.1 项目背景 在这个资讯高度发展的时代,资讯管理变革已经是一个更为宽泛、更为全面的潮流。为了保证中国的可持续发展,随着信息化技术的不断进步,教务管理体系也在不断完善。与此同时,伴随着信息化的飞速发展…

Hexapod C-887 使用手册 -- 1

最近要做PI C-887的集成控制,先把使用手册看一便,在此记录阅读进度。 本人微信号,如果有项目合作,可以加本人微信。 1 有关此文档 在本章中 本用户手册的目标和目标群体 符号和打印规则 图 术语的定义 其它适用文件 下载手…

Python GUI 库跨平台兼容问题及解决方案

在选择 Python GUI 库时,跨平台兼容性是一个重要的考虑因素。不同的 GUI 库可能在不同的操作系统上表现不同,因此需要选择一个能够在多个平台上运行良好的库。如果我们遇到下面的问题,可以尝试下我整理的方法。 1、问题背景 Python 作为一门…

基于【Lama Cleaner】一键秒去水印,轻松移除不想要的内容!

一、项目背景 革命性的AI图像编辑技术,让您的图片焕然一新!无论水印、logo、不想要的人物或物体,都能被神奇地移除,只留下纯净的画面。操作简单,效果出众,给你全新的视觉体验。开启图像编辑新纪元,尽在掌控! 利用去水印开源工具Lama Cleaner对照片中"杂质"进行去除…

【Vue】获取模块内的actions方法

目标: 掌握模块中 action 的调用语法 (同理 - 直接类比 mutation 即可) 注意: 默认模块中的 mutation 和 actions 会被挂载到全局,需要开启命名空间,才会挂载到子模块。 调用语法: 直接通过 store 调用 $store.di…

【Go语言】面向对象编程(一):类的定义、初始化和成员方法

面向对象编程(一):类的定义、初始化和成员方法 1 类的定义和初始化 Go 语言的面向对象编程没有 class 、 extends 、implements 之类的关键字和相应的概念,而是借助结构体来实现类的声明,如下是定义一个学生类的方法…

Virtual Memory Primitives for User Program翻译

Virtual Memory Primitives for User Program 安德鲁阿普尔(Andrew Appel)和李凯(Kai Li) 普林斯顿大学计算机科学系 摘要 传统上,内存管理单元(MMUS)被操作系统用于实现磁盘分页的虚拟内存…

FullCalendar日历组件集成实战(9)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

一文详谈大模型 RAG 优化方案与实践

暑期实习基本结束了,校招即将开启。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。提前准备才是完全之策。 最近,我们又陆续整理了很多大厂的面试题&#xff0c…

肾合与出汗:一场你不得不关注的健康对话

设想一下,我们的身体就像是一部精妙复杂的交响乐,每一个细胞、每一个组织都是乐符,共同编织出生命的旋律,演绎着我们的过去与未来。而汗水,就如同交响乐中的琴弦振动,它流淌在我们的体表,记录着…

电商API接口接入||电商比价项目比价系统搭建需要注意哪些?

在搭建一个淘宝/京东比价系统时,需要注意以下几个方面,以确保系统的有效性、准确性和用户友好性: 确定平台和商品范围: 明确系统覆盖的电商平台,如淘宝、京东等。确定要比较的商品类别和范围,以确保数据的…