[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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 02.全文搜索ES

    02.全文搜索ES

    2021年7月12日
    64
  • 《计算机组成原理》基础概念笔记整理

    《计算机组成原理》基础概念笔记整理《计算机组成原理》复习整理以下我将使用笔记的方式,将整本书重点整理一下,或许会有纰漏,望大家多多包涵。第一章计算机系统概论计算机的硬件:计算机中的电子电路和物理装置;计算机硬件的五大部分:运算器、控制器、存储器、输入设备和输出设备;计算机的软件:计算机运行所需的程序及相关的资料;软件系统:一台计算机中的全部程序的集合;计算机软件的分类(按功能划分):应用软件和系统软件;系统…

    2022年5月6日
    40
  • 数据仓库分三层_数据库分层

    数据仓库分三层_数据库分层数据仓库各层说明: 一、数据加载层:ETL(Extract-Transform-Load) 二、数据运营层:ODS(OperationalDataStore) 三、数据仓库层:DW(DataWarehouse) 1.数据明细层:DWD(DataWarehouseDetail) 2.数据中间层:DWM(DataWareHouseMiddle) 3.数据服务层:DWS(DataWareHouseService) 四、数据应用层:A

    2022年9月26日
    2
  • RAID0、RAID1、RAID5、RAID6、RAID10、RAID50的异同与应用

    RAID0、RAID1、RAID5、RAID6、RAID10、RAID50的异同与应用独立磁盘冗余阵列磁盘阵列(RedundantArraysofIndependentDisks,RAID),有“独立磁盘构成的具有冗余能力的阵列”的含义。其思想是将多块独立的磁盘按不同的方式组合为一个逻辑磁盘,从而提高存储容量,提升存储性能或提供数据备份功能。RAID存储系统的组合方式根据RAID级别定义。RAID根据组合方式的不同,有多种设计方案,以下介绍几种常见的RAID方案。1、RAID0(不含校验与冗余的条带存储)2、RAID1(不含校验的镜像存储)3、RAID5(数据块级别的分.

    2022年7月25日
    25
  • 罗技键盘k380打不了字_罗技k380键盘配对成功后无法使用

    罗技键盘k380打不了字_罗技k380键盘配对成功后无法使用mac连接成功罗技k380键盘,但是发现数字键上面的字符对不上,很多字符以及标点符号都打不出来,是什么原因导致的呢?问题分析首先,分析一下,到底是什么原因导致的?可以连接其他设备试一试,比如我发现k380键盘在我的ipad上是可以正常使用的。那么就排除了键盘本身存在问题,坏了等猜测。如果不是键盘本身出了问题,那么我们就要去分析问题究竟出现在哪里?联系了客服,加上自己对键盘配对过程的回顾,大致判定问题出现在最开始的匹配的时候,选错了【键盘类型】。解决问题-重设【键盘类型】步骤如下:【系统偏好设置

    2022年10月9日
    0
  • lcd1602按键显示不同数字_1602液晶显示屏

    lcd1602按键显示不同数字_1602液晶显示屏1.直接与Arduino相连2.通过转接板利用I2C的方式与Arduino相连1.直接与Arduino相连直接与Arduino相连的好处是不用现另外购买转接板,但这样造成的后果就是要大量占用A

    2022年8月4日
    4

发表回复

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

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