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

news2024/11/20 18:43:17
作者介绍:老苏,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方法(五)

请添加图片描述

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

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

相关文章

pycharm爬取BOSS直聘岗位信息

编译器:Pycharm 效果展示如图 简单原理描述:模拟人工动作爬取页面信息,运行脚本后代码自动打开浏览器获取相关信息,模拟人工进行页面跳转并自动抓取页面信息记录到表格中。 深入原理描述:页面翻转的时候会调用接口,接口中含有数据信息,定义数组存储需要的信息 需要引入…

419. 甲板上的战舰 Medium

给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 X 或者是一个空位 . ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行…

猫头虎分享:2024应届生择业在大模型和智能机器人之间该如何选择?

猫头虎分享:2024应届生择业在大模型和智能机器人之间该如何选择? 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的…

前端三剑客之JavaScript基础入门

目录 ▐ 快速认识JavaScript ▐ 基本语法 🔑JS脚本写在哪? 🔑注释 🔑变量如何声明? 🔑数据类型 🔑运算符 🔑流程控制 ▐ 函数 ▐ 事件 ▐ 计时 ▐ HTML_DOM对象 * 建议学习完HTML和CSS后再…

C++:SLT容器-->queue

C:SLT容器-->queue 1. queue容器2. queue 常用接口 1. queue容器 先进先出队列允许从一端插入元素,从另一端删除元素队列中只有队头和队尾可以被外界使用,因此队列不允许有遍历行为队列中插入数据称为入队(push),删除数据称为出队(pop) …

苹果AI来了,ios18史诗级发布

今天凌晨1点,苹果举行了WWDC开发者大会,正式发布了 全新iOS 18、iPadOS 18、watchOS 11、tvOS 18、macOS 等以及Apple Intelligence的个人化智能系统 苏音给大家汇总下,ios18的更新内容以及苹果的AI。 本次更新,官方带来的title…

FL Studio21永久免费破解中文版下载,让我这个音乐制作爱好者如获至宝!

FL Studio21永久免费破解中文版下载,让我这个音乐制作爱好者如获至宝!🎶 这款软件功能强大,操作简单易上手。我可以轻松地创作出各种风格的音乐作品。无论是流行、摇滚还是电子音乐,都能轻松驾驭。🎧 使用F…

16.左侧导航菜单制作

左侧导航菜单制作 1. 修改路由&#xff0c;方便查看页面 index.ts import { RouteRecordRaw, createRouter, createWebHistory } from "vue-router"; import Layout from /layout/Index.vueconst routes: Array<RouteRecordRaw> [{path: /,name: home,comp…

【牛客面试必刷TOP101】Day31.BM60 括号生成和BM61 矩阵最长递增路径

文章目录 前言一、BM60 括号生成题目描述题目解析二、BM61 矩阵最长递增路径题目描述题目解析总结 前言 一、BM60 括号生成 题目描述 描述&#xff1a; 给出n对括号&#xff0c;请编写一个函数来生成所有的由n对括号组成的合法组合。 例如&#xff0c;给出n3&#xff0c;解集为…

Python办公MySQL(一):安装MySQL以及Navicat可视化工具(附送Navicat到期解决方法)

目录 专栏导读1、下载 MySQL Community Server2、安装3、安装Navicat4、连接刚刚安装的MySQL5、创建一个数据库方法1方法2 6、创建一张表方法1&#xff1a;准备一个test文件方法2&#xff1a; Navicat到期解决总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Pytho…

玩转ChatGPT:最全学术论文提示词分享【下】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 本篇文章&#xff0c;是系列文章「最全学术论文提示词」的完结篇。前两篇的内容请到文末链接处跳转&#x1f447;&#x1f3fb; 11.提交和发布 prompt 1&#xff1a;根据[期刊/会议]指…

【GreenHills】关于GHS加密狗license激活成功后打开软件提示无可用授权

【更多软件使用问题请点击亿道电子官方网站】 1、 问题场景 用于解决在使用加密狗license去激活旧版本的GHS的时候&#xff0c;激活页面显示激活成功&#xff0c;但是&#xff0c;打开软件显示无可用license&#xff08;如图2-1&#xff09;&#xff0c;重新激活现象还是一样的…

SpringBoot高手之路jdk动态代理

文章目录 JDK动态代理基于jdk的动态代理Aop底层就是基于动态代理实现的实现代码先写代理对象工具 JDK动态代理 基于jdk的动态代理 业务需求 通过动态代理技术,对service层的方法统计执行时间–创建代理对象 Aop底层就是基于动态代理实现的 jdk动态代理技术是基于接口做的代理…

LNMP配置

文章目录 一、相关概念CGI的由来FastCGIPHP-FPM 二、编译安装编译安装nginxyum安装mysql编译安装php配置nginx支持php解析增加数据库安装论坛 一、相关概念 CGI的由来 最早的Web服务器只能简单地响应浏览器发来的HTTP请求&#xff0c;并将存储在服务器上的HTML文件返回给浏览器…

「动态规划」如何求粉刷房子的最少花费?

LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子&#xff0c;共n个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然&#xff0c;因为市…

手把手教你通过 tensorflow-2.10 使用 BERT 实现 Semantic Similarity

前言 本文详细解释了在 tensorflow-gpu 基础上&#xff0c;实现用 BERT BILSTM 计算文本相似度的过程&#xff0c;主要的配置如下&#xff1a; tensorflow-gpu 2.10.0 python 3.10 transformers 4.26.1数据处理 这里导入了后续步骤需要用到的库&#xff0c;包括 NumPy、…

通用Mapper基础学习

一、引入 二、快速入门 1.创建测试数据 2.搭建MyBatis+Spring 开发环境 3.集成Mapper 4.第一个操作 Mapper接口源码介绍: 创建测试类: 三、常见操作

电阻常见失效模式

电阻常见失效模式&#xff1a; 电阻器由于结构较为简单&#xff0c;工艺成熟&#xff0c;通常失效率相对较低。器失效主要表现为以下几种&#xff1a; 阻值漂移&#xff1a;老化后通常发生&#xff1b;&#xff08;通过老化试验进行筛选&#xff0c;规避该问题&#xff09; …

SLT简介【简单介绍SLT】

SLT简介 在c的学习当中STL的学习是一个很重要的一环&#xff0c;但是STL又是一个庞大的章节&#xff0c;因此这里我们先简单介绍一下STL&#xff0c;有助于后面我们对STL的学习&#xff0c;这里就是做一个简单的介绍&#xff0c;并无干货。 1.什么是STL STL(standard templa…

如何用R语言ggplot2画折线图

文章目录 前言一、数据集二、ggplot2画图1、全部代码2、细节拆分1&#xff09;导包2&#xff09;创建图形对象3&#xff09;主题设置4&#xff09;轴设置5&#xff09;图例设置6&#xff09;颜色7&#xff09;保存图片 前言 一、数据集 数据下载链接见文章顶部 数据&#xff1a…