oracle数据坏块处理(二)-逻辑坏块重新格式化处理

1、问题描述

在使用duplicate搭建DG时报错

包括rman copy,rman备份

2、问题分析

由于数据文件逻辑坏块导致物理备份不能正常进行。

使用rman检查数据文件47

SELECT tablespace_name, segment_type, owner, segment_name

FROM dba_extents

        WHERE file_id = 47

and 1378432 between block_id AND block_id + blocks - 1;

看到该坏块属于表

3、问题解决

生成该块的rowid 

select dbms_rowid.rowid_create(1,30426,47,1378432,level) from dual connect by level<=100;

DBMS_ROWID.ROWID_C

------------------

AAAHbaAAvAAFQiAAAB

AAAHbaAAvAAFQiAAAC

AAAHbaAAvAAFQiAAAD

AAAHbaAAvAAFQiAABk

。。。。略。。。。

函数解释:

DBMS_ROWID.ROWID_CREATE (

    rowid_type           IN NUMBER,

    object_number    IN NUMBER,

    relative_fno          IN NUMBER,

    block_number     IN NUMBER,

    row_number       IN NUMBER)

参数:

rowid_type:rowid类型(restricted或者extended)。设置rowid_type为0时,代表restricted ROWID(此时,将忽略参数object_number):设置rowid_type为1时,代表extended ROWID。

object_number:数据对象编号(仅restricted类型rowid可用)。

relative_fno:所在数据文件编号。

block_number:该数据文件中的数据块编号。

row_number:在该块中的行编号。

根据rowid查询数据返回为空

select * from KTHIS5.EMR_CASE_HISTORY_DOCUMENT_DS where rowid in ();

判断该块为空块

Move 该表

Alter table KTHIS5.EMR_CASE_HISTORY_DOCUMENT_DS move online;

查询该表的表空间为KTHIS5,创建测试表

create table test (n number,c varchar2(4000)) nologging tablespace KTHIS5;

给该临时表分配空间

alter table test allocate extent (DATAFILE '+DATA/ORCL/kthis5_3' SIZE 8192k);

直到坏块属于该临时表后停止

select segment_name, segment_type, owner

       from dba_extents

      where file_id = 47

        and 1378432 between block_id

            and block_id + blocks -1 ;

创建触发器,当该坏块被格式化时给出提示

CREATE OR REPLACE TRIGGER corrupt_trigger

  AFTER INSERT ON test

  REFERENCING OLD AS p_old NEW AS new_p

  FOR EACH ROW

DECLARE

  corrupt EXCEPTION;

BEGIN

  IF (dbms_rowid.rowid_block_number(:new_p.rowid)=&blocknumber)

 and (dbms_rowid.rowid_relative_fno(:new_p.rowid)=&filenumber) THEN

     RAISE corrupt;

  END IF;

EXCEPTION

  WHEN corrupt THEN

     RAISE_APPLICATION_ERROR(-20000, 'Corrupt block has been formatted');

END;

/

往临时表插入数据 直到报'Corrupt block has been formatted'

BEGIN

FOR i IN 1..1000000000 LOOP

INSERT /*+ APPEND */ INTO test select i, lpad('REFORMAT',3092, 'R') from dual;

commit ;

END LOOP;

END;

然后删除该表

Drop table test

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

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

相关文章

在IDEA使用arthas实现jar包方法耗时统计

1.背景 对于依赖jar包中的方法内部耗时统计&#xff0c;传统的手写StopWatch不适用&#xff0c;这儿采用arthas统计。 官网文档比较详细&#xff0c;trace | arthas 使用版本&#xff1a; arthas-boot version: 4.0.2 IntelliJ IDEA 2023.3.3 2.使用介绍 2.1.启动需要检…

用于图像识别的判别图正则化技术

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月8日13点32分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17210272021224&uid64a84f9640714755a…

Android Handler

Handler用于多线程消息分发和处理。与handler相关的几个对象&#xff1a;Message, Looper&#xff0c;MessageQueue, ThreadLocal. Handler是Message的消费者。 MessageQueue是容器。 Looper是整个Message分发的驱动。 Handler中有多种发送消息的方法&#xff0c;其中postxx…

Windows/Linux部署Qt并通过Qt Installer Framework制作安装包

本文参考 Qt Installer Framework Manual。 若要使用 Qt Installer Framework&#xff08;简称 QIF&#xff09;&#xff0c;需要在 Qt Online Installer 或 Qt Maintenance Tool 中确保该组件已安装&#xff08;QIF 组件在 Qt->Developer and Design Tools 下&#xff09;&…

【大数据学习 | kafka】消费者的分区分配规则

1. 概述 上面我们提到过&#xff0c;消费者有的时候会少于或者多于分区的个数&#xff0c;那么如果消费者少了有的消费者要消费多个分区的数据&#xff0c;如果消费者多了&#xff0c;有的消费者就可能没有分区的数据消费。 那么这个关系是如何分配的呢&#xff1f; 现在我们…

【开发】关于Java中String与Integer的小小知识点(使用等号对比引用对象)

一个很简单的小知识点 我们都知道&#xff0c;如果使用对比包装类型或对象&#xff0c;那么比较的都是两者之间的地址&#xff08;指针或句柄&#xff09;&#xff0c;而非对象本身&#xff0c;那么且看下方的代码。 public class A {public static void main(String[] args)…

2025年山东省考报名流程图解

2025年山东公务员考试备考开始 为大家整理了从笔试到录用的全部流程&#xff0c;希望可以帮助到你们&#xff01;参考2024年山东省考公告整理&#xff0c;请以最新公告为准&#xff01; 一、阅读公告和职位表 二、职位查询 三、网上报名 四、确认缴费 五、网上打印准考证 六、参…

网络安全入门篇之详细学习路线

什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&…

什么是大数据治理?在企业数字化转型过程中有什么用?

建设背景 有效的数据治理不仅能够确保数据的安全和质量&#xff0c;还能为企业提供深入的业务洞察&#xff0c;推动决策制定和创新。数据治理是数字化转型的基础&#xff0c;是数据资源成为数据资产的基础&#xff0c;只有经过了数据治理&#xff0c;相应的数据资源才能产生价…

Kalshi PK Polymarket,谁更胜一筹

https://kalshi.com https://polymarket.com/ 在刚过去的2024 美大选中&#xff0c;这两个网站可谓风光无限。这两者究竟有何区别呢&#xff0c;今天咱们一起来扒一扒。 Kalshi与Polymarket主要有以下区别&#xff1a; 监管与合法性方面&#xff1a; Kalshi&#xff1a;经过美…

UI测试还在Selenium,难怪你会被淘汰

一、前言 在UI自动化测试的领域中&#xff0c;Selenium无疑是一颗璀璨的明星&#xff0c;它以其强大的浏览器自动化能力&#xff0c;长期以来一直是众多测试工程师的首选工具。它很经典&#xff0c;地位也毋庸置疑&#xff0c;但也是过去式了&#xff0c;现在我采用的自动化方…

基于ssm的网上药房管理系统的设计与实现(源码+LW+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于java的ssm网上药房管…

godot——主题、Theme、StyleBox

我刚开始被这些术语吓到了&#xff0c;一直不敢去接触它们&#xff0c;都用的默认样式。现在好不容易有点思路了&#xff0c;记录下来。 下面看看怎么自定义样式。 1.先新建一个Theme 2.再次点击创建好的Theme 得到 图1 这样一个面板。&#xff08;看不懂没事&#xff0c;继…

如何利用Python API接口实战中高效地获取商品详情信息

在电商数据分析和商品信息集成领域&#xff0c;高效地获取商品详情信息是至关重要的。本文将介绍如何使用Python结合API接口&#xff0c;从淘宝/天猫平台获取商品详情信息&#xff0c;并提供实战代码示例。 一、理解API接口的重要性 API&#xff08;应用程序编程接口&#xff…

【Linux】编辑器vim 与 编译器gcc/g++

目录 一、编辑器vim&#xff1a; 1、对vim初步理解&#xff1a; 2、vim的模式&#xff1a; 3、进入与退出&#xff1a; 4、vim命令模式下的指令集&#xff1a; 移动光标&#xff1a; 删除&#xff1a; cv&#xff1a; 撤销&#xff1a; 其他&#xff1a; 5、vim底行模…

不支持UEFI的老显卡修改vBIOS进行支持

前段时间要在办公室玩恐怖黎明,但是联想自带的GT730实在是有点慢,后来闲鱼收了一张HD7750,虽然也是老掉牙,但是性能也有3成提升,聊胜于无吧.但是存在HD7750不支持UEFI的问题.具体表现为: 系统是win11未进系统时,什么都不显示,不能进BIOS.刚换卡未装驱动的时候,即使已经进入系统…

qt QWheelEvent详解

1、概述 QWheelEvent是Qt框架中用于处理鼠标滚轮事件的一个类。当用户滚动鼠标滚轮时&#xff0c;Qt会生成一个QWheelEvent事件&#xff0c;并将其发送到相应的窗口或控件。开发者可以通过重载窗口或控件的wheelEvent()方法来响应这个事件&#xff0c;并执行相应的操作&#x…

如何训练最懂您企业的AI助理?

随着人工智能技术的蓬勃发展&#xff0c;企业级AI助理已成为提升工作效率、优化客户服务体验的重要利器。这些智慧化的系统&#xff0c;通过模拟人类的认知功能&#xff0c;能够轻松应对复杂的数据分析、自动化繁琐的日常任务&#xff0c;甚至为企业决策提供有力支持。拥有一款…

2024网鼎杯web1+re2 wp

这两道题属于比较简单的&#xff0c;顺道说一下&#xff0c;今年的题有点抽象&#xff0c;web不是misc&#xff0c;re不是web的&#xff0c;也有可能时代在进步&#xff0c;现在要求全栈✌了吧 web1 最开始被强网的小浣熊带偏思路了&#xff0c;进来疯狂找sql注入&#xff0c…

【Android 系统中使用CallStack类来追踪获取和操作调用栈信息】

Android系统CallStack类的使用 定义使用方法使用场景注意事项应用举例 定义 在 Android 系统中&#xff0c;CallStack 类是一个用于获取和操作调用栈信息的工具类。这个类通常用于调试和日志记录&#xff0c;以帮助开发者了解函数调用的顺序和位置。以下是您提供的代码片段的解…