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

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

前面介绍了7种推进SCN方法
(1)event 10015 来增加 scn 的值
(2)隐含参数_minimum_giga_scn 来增加 scn 的值
(3)gdb/dbx 来直接修改内存中的值
(4)使用oradebug poke 直接修改内存中的值
(5)通过修改控制文件来修改 scn 的值
(6)通过修改数据文件头来修改 scn 的值
(7)通过adjust_scn方式来增加SCN
现在来说一下oracle推进SCN方法8:使用event 21307096推进scn

在12.2中,Oracle多了一个新的EVENT 21307096,Oracle 官方文档描述

The SCN delta in million units is with the range of values from 1 to 4095 which increases 
the scn by:
 
    lowest_scn + event level * 1000000
 
Example:  if the lowest datafile checkpoint scn in the database is 990396
and the highest is 992660 then SCN delta is 1; given by (992660 - 990396) / 1000000
 
  event="21307096 trace name context forever, level 1
 
 Here are some tests in 12.1.0.2 using each level for alter database open resetlogs:
 
  level 1 Elapsed: 00:01:02.35
  level 2 Elapsed: 00:02:16.23
  level 6 Elapsed: 00:06:08.05
 
In general:  based on a 16k per second scn rate (16K/sec) , the open resetlogs time
would be at least (event level * 1000000 / 16000) seconds. Then level 1 would be at least 
62+ seconds and level 4095 would be 71+ hours !.

下面在自己的测试环境模拟一下 EVENT 21307096,请勿在生产环境中操作;如果需要在生产环境中操作,提前做好备份。

1、查看当前 SCN 的值

–19.22测试要设置_allow_resetlogs_corruption参数为true,否则不成功
–参考资料:Force Open Database after applying Patch 21307096 ( Doc ID 2674196.1 )

alter system set  "_allow_resetlogs_corruption"=TRUE scope=spfile;
--这里查询当前 SCN 的值,主要用于与后面修改后的值做对比。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
    5100732

2、 修改方法

event=‘21307096 trace name context forever,level N’ 

计算方式
Lowest_scn+N * 1000000

假设我们要推进1百万,设置level 为1
可以通过 PFILE 文件来增加 EVENT:
cat /tmp/init.ora
event="21307096 trace name context forever, level 1"
或者
alter system set event='21307096 trace name context forever,level 1' scope=spfile;


--把scn推进5百万
SQL> alter system set event='21307096 trace name context forever,level 5' scope=spfile;

System altered.

--event推进是以百万位单位推进,这里level 5即SCN推进500W


--19.22测试要设置_allow_resetlogs_corruption参数为true,否则不成功
alter system set  "_allow_resetlogs_corruption"=TRUE scope=spfile;

3、 重启数据库

--重启数据库,使参数生效
SQL> shutdown immediate;
SQL> startup mount;
ORACLE instance started.

Total System Global Area 3707764736 bytes
Fixed Size		    2930944 bytes
Variable Size		  855639808 bytes
Database Buffers	 2835349504 bytes
Redo Buffers		   13844480 bytes
Database mounted.

--并用resetlogs方式open
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 1789147 generated at 06/03/2024 16:22:21 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/ORA121/archivelog/2024_06_03/o1_mf_1_9_%u_.ar
c
ORA-00280: change 1789147 for thread 1 is in sequence #9


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;

Database altered.

--OPEN过程会耗时比较长,level的级别越高,耗时约长,具体计算方法见文末。


SQL> select current_scn from v$database;
CURRENT_SCN
-----------
   10106627
--推进了约500W

根据LEVEL值不一样,数据库OPEN耗时也不一样,计算公式:
  level 1 Elapsed: 00:01:02.35
  level 2 Elapsed: 00:02:16.23
  level 6 Elapsed: 00:06:08.05
  
In general:  based on a 16k per second scn rate (16K/sec) , the open resetlogs time would be at least (event level * 1000000 / 16000) seconds. Then level 1 would be at least 62+ seconds and level 4095 would be 71+ hours !.

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.recover,
       a.status
  from v$datafile a, v$datafile_header b
 where a.file# = b.file#;

     FILE# NAME 							SYSTEM_CKPT_SCN DF_CKPT_SCN    END_SCN	START_SCN REC STATUS
---------- ------------------------------------------------------------ --------------- ----------- ---------- ---------- --- -------
	 1 /u01/oradata/BBED19C/system01.dbf					2262818     2262818		  2262818 NO  SYSTEM
	 3 /u01/oradata/BBED19C/sysaux01.dbf					2262818     2262818		  2262818 NO  ONLINE
	 4 /u01/oradata/BBED19C/undotbs01.dbf					2262818     2262818		  2262818 NO  ONLINE
	 7 /u01/oradata/BBED19C/users01.dbf					2262818     2262818		  2262818 NO  ONLINE

4、 查看 alert 日志

查看 ALERT 日志,可以发现数据库在 OPEN 过程中,消耗了几分钟的时间。此时间可以通过 EVENT 描述中的计算公式来计算。

2024-06-07T15:00:51.307635+08:00
.... (PID:1233): Clearing online redo logfile 1 complete
.... (PID:1233): Clearing online redo logfile 2 complete
Resetting resetlogs activation ID 4100944891 (0xf46f73fb)
Online log /u01/oradata/BBED19C/redo01.log: Thread 1 Group 1 was previously cleared
Online log /u01/oradata/BBED19C/redo02.log: Thread 1 Group 2 was previously cleared
Online log /u01/oradata/BBED19C/redo03.log: Thread 1 Group 3 was previously cleared
2024-06-07T15:00:51.322568+08:00
Setting recovery target incarnation to 7
2024-06-07T15:00:51.328799+08:00
Smart fusion block transfer is disabled:
  instance mounted in exclusive mode. <<<<会在这里 HANG 住,根据 LEVEL 的值不同,这个 HANG 的时候也不同。目前这里 LEVEL 值是多少,在这里消耗的时间就是多
2024-06-07T15:00:58.540192+08:00
Endian type of dictionary set to little
2024-06-07T15:00:58.542179+08:00
Assigning activation ID 4100985645 (0xf470132d)
Redo log for group 1, sequence 1 is not located on DAX storage
Thread 1 opened at log sequence 1
  Current log# 1 seq# 1 mem# 0: /u01/oradata/BBED19C/redo01.log
Successful open of redo thread 1
2024-06-07T15:00:58.561496+08:00
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Stopping change tracking

5、 去掉添加的参数

--打开数据库后,要去掉添加的相关参数
alter system reset event scope=spfile;
alter system reset  "_allow_resetlogs_corruption"  scope=spfile;

--重启数据库

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

请添加图片描述

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

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

相关文章

雷达频段由来及应用

在雷达行业中&#xff0c;以雷达工作频率划分为若干的波段&#xff0c;由低到高的顺序是&#xff1a;高频&#xff08;HF&#xff09;、甚高频&#xff08;VHF&#xff09;、超高频&#xff08;UHF&#xff09;、L波段、S波段、C波段、X波段、Ku波段、K波段和Ka波段。微波波段的…

Xcode无法使用设备:Failed to prepare the device for development

问题&#xff1a; Xcode无法使用设备开发&#xff0c;失败报错如下&#xff1a; Failed to prepare the device for development. This operation can fail if the version of the OS on the device is incompatible with the installed version of Xcode. You may also need…

Pygame的基本应用

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Pygame有很多模块&#xff0c;每个模块又有很多方法&#xff0c;在此不能够逐一讲解&#xff0c;所以&#xff0c;我们通过一个实例来学习Pygame&…

机器学习归一化特征编码

特征缩放 因为对于大多数的机器学习算法和优化算法来说&#xff0c;将特征值缩放到相同区间可以使得获取性能更好的模型。就梯度下降算法而言&#xff0c;例如有两个不同的特征&#xff0c;第一个特征的取值范围为1——10&#xff0c;第二个特征的取值范围为1——10000。在梯度…

leetcode 122 买卖股票的最佳时机||(动态规划解法)

题目分析 题目描述的已经十分清楚了&#xff0c;不做过多阐述 算法原理 状态表示 我们假设第i天的最大利润是dp[i] 我们来画一下状态机 有两个状态&#xff0c;买入后和卖出后&#xff0c;我们就可以使用两个dp表来解决问题 f[i]表示当天买入后的最大利润 g[i]表示当天卖出…

uniapp开发微信小程序预加载分包

微信小程序分包是一种优化小程序项目结构和性能的方式。它允许开发者将小程序代码包拆分成多个子包&#xff0c;在用户需要时动态加载这些子包&#xff0c;从而减少小程序的首次加载时间和主包的体积。&#xff08;总体积不得大于20M&#xff0c;主包&#xff08;共同文件静态资…

613作业

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->setWindowTitle("QQ");//窗口名this->setWindowIcon(QIcon("C:\\Users\\a8360\\Desktop\\4f603444-8a85-4d52-94d7-ab8c2f5f54a0.png"));this->res…

6.13长难句打卡

Hard times may hold you down at what usually seems like the most inopportune time, but you should remember that they won’t last forever. 艰难时刻可能会在你最不顺心的时刻让你低迷&#xff0c;但请相信&#xff0c;它们不会永远持续下去。

Vite - 项目打包从 0 到 1(完美解决打包后访问白屏问题)

目录 开始 修改资源相对地址 引入 vitejs/plugin-legacy 插件并配置 修改打包指令 修改 router 中的 history 前端配置跨域相关 打包后成功访问 开始 修改资源相对地址 在 vite.config.js 文件中配置如下&#xff1a; export default defineConfig({base: ./, //1.打包…

重复文件怎么查找并清理?6种重复文件清理方法亲测好用!

重复文件怎么查找并清理&#xff1f;重复的文件会占用计算机中不必要的空间&#xff0c;从而降低计算机速度。这些文件是您设备上现有文件的副本。您可能有照片、视频、音频、档案、文档等的文件副本。因此&#xff0c;当电脑被这些文件占用运行速度时&#xff0c;你会迫切地希…

阻抗控制(Impedance Control)和导纳控制(Admittance Control)例子

阻抗控制(Impedance Control)和导纳控制(Admittance Control) 是两种用于机械臂或机器人交互控制的策略。阻抗控制定义的是机器人端部的力和位置之间的关系,而导纳控制则定义的是外力和运动之间的关系。导纳控制常用于处理机器人与环境交互中的力控制问题。 适用场景对比…

在项目中使用Volta控制node版本

在项目中使用Volta控制node版本 前端的技术很多年前就已经是井喷的状态了&#xff0c;基本每一年都有技术的迭代&#xff0c;而node作为前端基石之一也是一年一个样&#xff0c;这就导致了不同年代的版本使用不同的项目会经常出问题&#xff0c;高版本的node无法用于老的项目。…

PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)复现

PHP CGI Windows平台远程代码执行漏洞&#xff08;CVE-2024-4577&#xff09;复现 1.漏洞描述&#xff1a; PHP&#xff08;Hypertext Preprocessor&#xff0c;超文本预处理器&#xff09;是一种广泛使用的开源脚本语言&#xff0c;主要用于Web开发&#xff0c;用于生成动态…

第五十一天 | 1143.最长公共子序列

题目&#xff1a;1143.最长公共子序列718.最长重复子数组的区别是&#xff0c;子序列不要求连续&#xff0c;子数组要求连续。这一差异体现在dp数组含义和递推公式中&#xff0c;本题是子序列&#xff0c;那就要考虑上nums1[i - 1] ! nums2[j - 1]的情况。 本道题与 1.dp数组…

JavaSE----类和对象(中)

5. 对象的构造及初始化 5.1 如何初始化对象 通过前面知识点的学习知道&#xff0c;在Java方法内部定义一个局部变量时&#xff0c;必须要初始化&#xff0c;否则会编译失败。 public static void main(String[] args) {int a;System.out.println(a); }// Error:(26, 28) jav…

案例 | JIMUMETA元宇宙体验馆,助力品牌打开营销新思路!

视创云展作为行业领先的3D数字化场景营销平台&#xff0c;专注于帮助企业迅速构建集多样化营销活动于一体的元宇宙空间。 通过整合虚拟展厅、数字人互动、音视频通话以及弹幕聊天等创新功能&#xff0c;我们为企业打造极具沉浸感的体验环境&#xff0c;并提供高效的线上营销手段…

ISCC2024 winterbegins

首先&#xff0c;用IDA打开程序&#xff0c;看到一大堆while(1)又套着while(1)的结构&#xff0c;肯定是控制流平坦化了&#xff0c;我们可以使用IDA插件d810去掉。 现在程序就好看多了。如果IDA没有显示这堆中文字符串&#xff0c;可以考虑使用IDA8.3&#xff0c;就可以显示…

【记录】ChatGLM3-6B大模型部署、微调(一):部署

ChatGLM3介绍 源码连接&#xff1a; ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型&#xff0c;在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上&#xff0c;ChatGLM3-6B 引入了如下特性&#xf…

江协科技51单片机学习- p4 点亮一个LED灯

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; 51单片机入门教程-2…

安装ENVI 6.0直接打开Landsat L2SP影像

文章目录 前言ENVI 6.0申请安装安装过程检查安装&#xff1a; 直接打开L2SP文件&#xff08;不修改头文件&#xff09;结语 前言 试用软件只是作为学习交流使用&#xff0c;不能应用于商业、发表文章等依据。 前面文章&#xff08;ENVI打不开Landsat 的L2SP影像文件&#xff09…