[20161111]数据文件的第0块2.txt

[20161111]数据文件的第0块2.txt

大家好,又见面了,我是全栈君。

[20161111]数据文件的第0块2.txt

–如果数据文件的第0块是OS块信息,以前的测试如果rman做备份集都不会备份。
–如果这块损坏,里面讲问题不大,你甚至可以不修复,如果在线resize就ok了,当然重建控制文件就出现问题。

–而且解决也很简单,就是建立一样大小的数据文件,然后copy回去。做一个测试例子:

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
—————————— ————– ——————————————————————————–
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

CREATE TABLESPACE SUGAR DATAFILE
  ‘/mnt/ramdisk/book/sugar01.dbf’ SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

create table t1 tablespace sugar as select rownum id ,lpad(‘A’,32,’A’) name from dual connect by level<=1e5;
alter system checkpoint;

CREATE TABLESPACE TEA DATAFILE
  ‘/mnt/ramdisk/book/tea01.dbf’ SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

–昨天的测试无法在bbed下使用copy file 7 block 0 to file 6 block 0,实际上无法识别数据文件6的os头。这样变成了block=1.

2.重新测试:

SCOTT@book> alter tablespace sugar offline ;
Tablespace altered.

SCOTT@book> alter tablespace tea offline ;
Tablespace altered.

–设置数据文件6 sugar01.dbf的第0块全为0.

3.使用bbed修复:
BBED> copy file 7 block 0 to file 6 block 0
BBED-00309: out of range block number (0)

–实际上晚上在回家的路上才想起来问题在那里。我以前在windows下使用bbed,也遇到修改11g的数据文件,访问block必须加1,实际上
–就是无法识别11g数据文件的块头。

BBED> dump /v file 7 block 0  count 256 offset 0
File: /mnt/ramdisk/book/tea01.dbf (7)
Block: 0                                 Offsets:    0 to  255                            Dba:0x01c00000
———————————————————————————————————–
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a l …………….f…. ……}|{z
a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..

<32 bytes per line>

BBED> dump /v file 6 block 1  count 256 offset 0
BBED-00309: out of range block number (0)

BBED> dump /v file 6 block 1  count 256 offset 0
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1                                 Offsets:    0 to  255                            Dba:0x01800001
———————————————————————————————————–
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l …………………………..

<32 bytes per line>

— 这样要在bbed下执行应该是(不过还是要小心,至少仔细看一下里面的内容,避免错误)。
— 而且我遇到奇怪的问题每次按照如下顺序执行:
dump /v file 7 block 0  count 256 offset 0
dump /v file 6 block 1  count 256 offset 0
dump /v file 6 block 1  count 256 offset 0

–第2步总是报错BBED-00309: out of range block number (0),但是我反过来就没有问题。

dump /v file 6 block 1  count 256 offset 0
dump /v file 7 block 0  count 256 offset 0

— 注意一定要在执行copy前看一下里面的内容,避免写入错误的位置,还是不推荐这种操作模式。

copy file 7 block 0 to file 6 block 1

BBED> copy file 7 block 0 to file 6 block 1
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1                                                    Offsets:    0 to  255                                               Dba:0x01800001
————————————————————————————————————————————————
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<64 bytes per line>
–补充如果这样顺序执行,到copy是第1次出错,第2次ok:
dump /v file 6 block 1  count 256 offset 0
dump /v file 7 block 0  count 256 offset 0

BBED> copy file 7 block 0 to file 6 block 1
BBED-00309: out of range block number (0)

BBED> copy file 7 block 0 to file 6 block 1
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1                                                    Offsets:    0 to  255                                               Dba:0x01800001
————————————————————————————————————————————————
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

<64 bytes per line>

–完成后退出bbed,再看一下,步骤略。

4.检查是否正常:

SCOTT@book> alter tablespace sugar online ;
Tablespace altered.

SCOTT@book> select count(*) from t1;
  COUNT(*)
———-
    100000

总结:
还是不推荐这样操作,仅仅为了了解学习的必要。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108788.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python面试题及答案_微型计算机原理与接口第四版答案

    python面试题及答案_微型计算机原理与接口第四版答案题目目录什么是接口测试?为什么要做接口测试/接口测试有哪些优势?请问你们公司是如何做接口测试的?怎么设计接口测试用例?没有接口文档如何做接口测试?怎么区分bug是前端还是后端的bug?常用的接口测试工具?接口之间数据依赖如何处理?依赖于第三方数据的接口如何进行测试?你平常做接口测试的过程中发现过哪些bug?当接口出现异常时候,你是如何分析异常的?什么是接口测试?接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求测试的重点是

    2022年9月26日
    2
  • 用c语言做简单动画_用C语言编写动画

    用c语言做简单动画_用C语言编写动画你的意思还是不太明白我这有个程序你看看能不能帮我改一下#include#include#definePI3.14intcxClient,cyClient;floati,j,x,y;LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain(HINSTANCEhInstance,…

    2022年8月12日
    5
  • jdbc java_SpringBoot打包

    jdbc java_SpringBoot打包一、SpringBootDataJPA介绍  SpringData:其实SpringData就是Spring提供了一个操作数据的框架。而SpringDataJPA只是SpringData框架下的一个基于JPA标准操作数据的模块。  SpringDataJPA:基于JPA的标准数据进行操作。简化操作持久层的代码。只需要编写接口就可以。  二、SpringBoot整…

    2022年10月20日
    2
  • Intellij idea 2020设置经典样式(背景为黑色Darcula)

    Intellij idea 2020设置经典样式(背景为黑色Darcula)IntelliJIdea安装后一开始的样式是背景色是白的,如果想设置为经典的Darcula样式,按照如下步骤超级即可。File–>settting…—->Appearance—->DarculaApply–>OK即可

    2022年6月27日
    108
  • 简单图文解释冯诺依曼体系结构(通俗易懂版)

    简单图文解释冯诺依曼体系结构(通俗易懂版)冯诺依曼式计算机主要由输入设备,输出设备,控制器,运算器,存储器该五个组成部分构成。我们可以将该体系结构的运作通过人类接收信息,处理信息,并输出信息这个过程来加以类比理解。人类:当眼睛看到某些信息,这些信息被存储到记忆装置,大脑从记忆装置取出信息,并加以思考运算,再放回记忆装置,大脑控制记忆装置将信息传输给嘴巴,将信息表达出来。(这个过程大脑的指令占领导地位)冯诺依曼计算机:当输入设备接收到数据,数据将被存储到存储器,控制器发出取数据和运算的指令,数据被取出方去放入运算器中加以运算,运算结束后,控制器

    2025年6月11日
    5
  • 服务器系统详细安装步骤图_服务器系统安装教程详细步骤

    服务器系统详细安装步骤图_服务器系统安装教程详细步骤一、首先按住ctrl+alt+delete进行对KVM的重启操作,在进行重启的过程中按F2,进入BIOS界面,对RAID进行磁盘阵列:1、选择DeviceSetting,进入界面后选择RAIDControllerinSlot4:进行操作。2、先选择VirtualDiskManagement命令,查看系统是否已经进行了磁盘阵列。(如果已经存在进行步骤3,如果未存在进行步骤4)3、按Esc返回上一级,选择ConfigurationManagem…

    2022年9月28日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号