当前位置: 首页 > news >正文

【OceanBase诊断调优】—— 转储错误(错误代码 4138/ORA-01555)

当读事务很长时,租户进行转储会报 4138/ORA-01555 错误。本文介绍该错误的处理方法。

适用版本

OceanBase 数据库 V2.X 及以后的版本

问题现象

当读事务很长,租户进行转储时会出现以下错误。

Oracle 租户:
ORA-01555:snapshot too old
MySQL 租户:
ERROR 4138 ( HY000 ): Request to read too old versioned data

对应错误码,日志中会记录以下信息,表示无法找到指定版本的历史数据。

[2019-05-14 14:30:05.533606] WARN [STORAGE] get_inc_read_tables (ob_table_store.cpp:592) [98811][1313][YA4110AF40426-000588D011D3DED2] [lt=12] [dc=0] not table found for specified version((ret=-4138, major_sstable=0x7f9b8326a140, snapshot_version=1557815286383342, *this={this:0x7f9f4775f290, pkey:{tid:1110506744528557, partition_id:0, part_cnt:0}, table_id:1110506744528557, uptime:1557815401424782, table_count:2, start_pos:0, inc_pos:1, is_ready_for_read:true, replay_tables:[{table_type:1, pkey:{tid:1110506744528557, partition_id:0, part_cnt:0}, table_id:1110506744528557, trans_version_range:{multi_version_start:1557805624036243, base_version:0, snapshot_version:1557805624036243}, version:"41-0-0"}, {table_type:4, pkey:{tid:1110506744528557, partition_id:0, part_cnt:0}, table_id:1110506744528557, trans_version_range:{multi_version_start:1557815324038719, base_version:1557805624036243, snapshot_version:1557815324038719}, version:"0-0-0"}], [{i:0, type:1, partition_id:0, version:"41-0-0", version_range:{multi_version_start:1557805624036243, base_version:0, snapshot_version:1557805624036243}, ref:2}, {i:1, type:4, partition_id:0, version:"0-0-0", version_range:{multi_version_start:1557815324038719, base_version:1557805624036243, snapshot_version:1557815324038719}, ref:2}, ]}, *last_memtable={ObITable:{this:0x7f9ae6e669e0, key:{table_type:0, pkey:{tid:1110506744528557, partition_id:0, part_cnt:0}, table_id:1110506744528557, trans_version_range:{multi_version_start:1557815324038719, base_version:1557815324038719, snapshot_version:9223372036854775807}, version:"0-0-0"}, ref_cnt:2}, timestamp:1557815324045746, active_trx_count:0, state:0, max_schema_version:1557815227050056, write_ref_cnt:0, local_allocator:{ListHandle:{freeze_stat:1, id:62, clock:64975960024}, host:0x7fa2e58316f8, arena_handle:{allocated:376315264}}})

可能原因

OceanBase 数据库转储的数据会保留多个版本的历史数据行,您可以通过 undo_retention 来控制转储中保留的多版本数据范围。undo_retention 默认为 0(单位为秒),表示仅保留当前最新版本的数据。

这些多版本信息可以用来构造一致性读以及用于一系列的闪回,如果闪回请求的时间点在开启 undo_retention 前,或者闪回请求的时间点距离现在的时间大于 undo_retention 的设置,则会出现该问题。

有关 undo_retention的详细信息,参见《OceanBase 数据库 参考指南》中的 系统变量 章节。

解决方式

可以通过调整 undo_retention 的值来缓解该问题。

obclient> SET GLOBAL undo_retention=7200;

该配置表示开启多版本转储,并且转储文件保留 7200 秒以内的多版本行数据,这部分数据会在多次转储中保留。

注意

租户开启多版本转储后,大版本合并会保留对应增量转储文件,但 major SSTable 中不会存放多版本数据。避免对该参数设置过大,该参数过大时可能导致合并超时。

注意事项

多版本查询的生效时间在设置 undo_retention 后,并不能立刻实现多版本回溯到 undo_retention 之内的任何时间。例如在时间点 T1 设置了 undo_retention=900s,此时并不能回溯任何 900s 内的版本;需要等到时间点 T2 = T1 + 900s 后,才可以查询 T1~T2 的数据。这是由于多版本数据需要时间来填充。

相关文章:

【OceanBase诊断调优】—— 转储错误(错误代码 4138/ORA-01555)

当读事务很长时,租户进行转储会报 4138/ORA-01555 错误。本文介绍该错误的处理方法。 适用版本 OceanBase 数据库 V2.X 及以后的版本 问题现象 当读事务很长,租户进行转储时会出现以下错误。 Oracle 租户: ORA-01555:snapsho…...

Python面试题【数据结构和算法部分101-130】

Python面试题【数据结构和算法部分101-130】 Python面试题【数据结构和算法部分101-130】 Python面试题【数据结构和算法部分101-130】 问题:如何在Python中实现二分查找? 答案: def binary_search(arr, target):low, high 0, len(arr) - 1…...

Django中的日志处理

日志处理 1.日志级别 级别(Level)表示日志消息的优先级,从低到高分为以下几个级别: DEBUG: 详细的日志信息,通常用于调试。 INFO: 一般的信息性消息,用于说明程序运行情况。 WARNING: 警告消息&#xff0…...

FonePaw Data Recovery for Mac:轻松恢复丢失数据

FonePaw Data Recovery for Mac是一款功能强大的数据恢复软件,专为Mac用户设计,帮助用户轻松恢复因各种原因丢失的数据。该软件支持从硬盘驱动器、存储卡、闪存驱动器等存储介质中恢复丢失或删除的文件,包括照片、视频、文档、电子邮件、音频…...

C语言易错提醒选择题精选

Ⅰ 易错题 1.设有double p;&#xff0c;为变量p声明一个引用名称rp,则定义语句为 double& rpp; 2.已知‘A’一‘Z’的ASCII码为65—90&#xff0c;当执行“char ch14*52&#xff1b;cout<<ch<<endl;”语句序列后得到的输出结H &#xff0c;72对应ASCII码中…...

Android11系统去掉截屏功能

1. 去掉Settings里截屏菜单条目&#xff0c;packages/apps/Settings&#xff1a; diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml old mode 100644 new mode 100755 index a5e4d06..a9420bb --- a/res/xml/top_level_settings.xmlb/res/xml/t…...

测试驱动来学习 Promise

基础功能 测试案例&#xff1a;以同步的方式调用。 /*** v1: 基础功能*/ const p1 new MyPromise((resolve, reject) > {resolve(success)reject(error) })p1.then((value) > {console.log(v1: , value) }) 实现功能&#xff1a;在 status 和 value 的位置暂存值&…...

Vue3实战笔记(20)—封装头部导航组件

文章目录 前言一、封装头部导航栏二、使用步骤总结 前言 Vue 3 封装头部导航栏有助于提高代码复用性、统一风格、降低维护成本、提高可配置性和模块化程度&#xff0c;同时还可以实现动态渲染等功能&#xff0c;有利于项目开发和维护。 一、封装头部导航栏 封装头部导航栏&am…...

Yolov8目标检测——在Android上部署Yolov8 tflite模型

1. 简介 YOLOv8 是一种用于目标检测的深度学习模型&#xff0c;它是 YOLO&#xff08;You Only Look Once&#xff09;系列的最新版本之一。YOLO 系列因其高效和准确性而在计算机视觉领域非常受欢迎&#xff0c;特别是在需要实时目标检测的应用中&#xff0c;如视频监控、自动…...

(delphi11最新学习资料) Object Pascal 学习笔记---第12章操作类(类方法和类数据)

第12章 操作类 ​ 在过去的几章中&#xff0c;你已经了解了 Object Pascal 语言面向对象的基础&#xff1a;类、对象、方法、构造函数、继承、后期绑定、接口等等。现在&#xff0c;我们需要进一步了解与类管理相关的一些更高级、更具体的语言特性。从类引用到类助手(class he…...

面向 C# 开发人员的电子邮件转换控件 - EML 到 PNG

本文将使 C# 开发人员能够以编程方式将EML或MSG转换为其他流行的文件格式。Aspose.Email 提供了类和方法以及在线 电子邮件转换器工具&#xff0c;可将 EML无缝转换为PNG 。如果不安装第三方软件&#xff0c;则无法打开 EML/MSG 文件。因此&#xff0c;将 EML/MSG 转换为 PNG 和…...

Vue3:数据交互axios

回调函数 > 回调函数: 一些特殊的函数,表示未来才会执行的一些功能,后续代码不会等待该函数执行完毕就开始执行了 1. Promise 1.1 简介 > 前端中的异步编程技术&#xff0c;类似Java中的多线程线程结果回调&#xff01; * Promise 是异步编程的一种解决方案&#xff0c…...

芯片的性能指什么

【省带宽、压成本专题】降低30%视频码率&#xff0c;深挖“窄带高清”的实现原理 - 知乎 芯片&#xff08;或微处理器、集成电路&#xff09;的性能主要指其完成特定任务的能力和效率。性能可以通过多种参数来衡量&#xff0c;这些参数反映了芯片设计的不同方面&#xff0c;包…...

Java通过百度地图API获取定位-普通IP定位

项目中有一个登录邮箱提醒的功能&#xff0c;需要根据IP地址获取定位信息&#xff0c;从而更好地提示用户账号登录的所在地。为此&#xff0c;花费了一些时间来实现这个功能。 在CSDN搜索了一下&#xff0c;发现关于获取定位的文章说明都不够详细&#xff0c;于是决定自己创作一…...

5月13号作业

使用消息队列实现的2个终端之间的互相聊天 并使用信号控制消息队列的读取方式&#xff1a; 当键盘按ctrlc的时候&#xff0c;切换消息读取方式&#xff0c;一般情况为读取指定编号的消息&#xff0c;按ctrlc之后&#xff0c;指定的编号不读取&#xff0c;读取其他所有编号的消息…...

【计算机网络】Socket网络编程

&#x1f4bb;文章目录 &#x1f4c4;前言Socket编程基础概念工作原理 Socket API介绍socket函数绑定、监听函数accept、connect接受/发送函数 Socket API的应用Socket类与其派生类的设计服务器与客户端的设计使用 &#x1f4d3;总结 &#x1f4c4;前言 现今我们的日常生活当中…...

Ansible自动运维工具之playbook

目录 一.inventory主机清单 1.定义 2.变量 &#xff08;1&#xff09;主机变量 &#xff08;2&#xff09;组变量 &#xff08;3&#xff09;组嵌套 二.playbook基本内容 1.组成 &#xff08;1&#xff09;Tasks: 任务&#xff0c;即调用模块完成的某操作 &#xff0…...

【启明智显技术分享】SSD201/SSD202D核心板UI界面开发全攻略:LVGL使用指南

提示&#xff1a;作为Espressif&#xff08;乐鑫科技&#xff09;大中华区合作伙伴及sigmastar&#xff08;厦门星宸&#xff09;VAD合作伙伴&#xff0c;我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…...

数据可视化(九):Pandas北京租房数据分析——房源特征绘图、箱线图、动态可视化等高级操作

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…...

ADOP带你了解:跳线与交叉电缆有何不同?

如果您想将设备连接到互联网&#xff0c;您可能想知道要使用的正确电缆。跳线和交叉电缆都是类型的以太网电缆&#xff0c;可帮助连接计算机、调制解调器、路由器和交换机等设备。那么&#xff0c;跳线和交叉电缆有什么区别呢&#xff1f;让我们讨论这两种类型的电缆&#xff0…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

高保真组件库:开关

一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...