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


相关推荐

  • Unity 实战项目 ☀️| 只用一个脚本做一个 刮刮乐 案例,一不小心刮出来一个女朋友!【学习娱乐一下】「建议收藏」

    Unity 实战项目 ☀️| 只用一个脚本做一个 刮刮乐 案例,一不小心刮出来一个女朋友!【学习娱乐一下】「建议收藏」只用一个脚本做一个刮刮乐,一不小心刮出来一个女朋友!【学习娱乐一下!】

    2022年5月20日
    38
  • pycharm哪个版本_pycharm版本选择

    pycharm哪个版本_pycharm版本选择Pycharm各大版本Pycharm作为python最常见的IDE,常见的有三种版本专业版:功能强大,适合开发者,需要通过付费或学生认证才能使用社区版:可以供广大python爱好者免费使用,具备常用的python库,可以实现基本的python用法,用于试验在工作中出现的错误教育版:基于社区版发展而来,也是免费使用,其功能与社区版相似,但是更适合学生,新人学习,由教师可以创建工程、教学…

    2022年8月28日
    0
  • JavaScript正则表达式简单教程「建议收藏」

    JavaScript正则表达式简单教程「建议收藏」1.常见的正则表达式符号?.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始和结束^匹配字符串的开始$匹配字符串的结束*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{n,}重复n多次{n,m}重复n到m词\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结尾的位置【^x】匹配除了x

    2022年9月2日
    0
  • alook浏览器怎么开启flash_检测浏览器是否支持有Flash2.0以上或有Flash插件[通俗易懂]

    SetobJS=Server.CreateObject(“MSWC.BrowserType”)IfobJS.javascript=TRUEThen’LookforaversionofInternetExplorerthatsupportsActiveX(i.e.,onethat’s’runningonaplatformotherthanMacor…

    2022年4月18日
    97
  • asp.net(c#)网页跳转七种方法小结 .

    asp.net(c#)网页跳转七种方法小结 .转自:http://blog.csdn.net/wonsoft/article/details/5612000  1.Response.Redirect(“http://www.yayiba.com”,false);  目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。跳转向新的页面,原窗口被代替。”浏览器中的URL为新路径。

    2022年7月20日
    13
  • matlab插值函数的优缺点,Python和Matlab插值函数的不同结果

    matlab插值函数的优缺点,Python和Matlab插值函数的不同结果我正在将代码从Matlab转换为Python2.7,在转换interp1函数时遇到问题。我看过已经贴出来的类似问题,但还没有解决。问题是新生成的值(yn)的向量的第一个值不同,而其余的几乎相同。当使用不同的插值方法时,我得到的值略有不同,但是同样的问题。目前我真的不知道为什么会这样。有没有人对此有任何了解或看到我可能犯的错误?谢谢。在变量:x=[5.5,5.46678,5….

    2022年5月15日
    31

发表回复

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

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