ITPUB??ì3
订阅ITPUB精粹播报,社区精彩内容不错过
ITPUB论坛 » Oracle数据库管理 » 一个非常有意思的跨平台迁移的问题


您有 1 条公共消息
  • 来自: 公共消息 标题: ITPUB国庆假期数 ... 内容: 全新编排的Oracle数据库课程,第一线数据库工程师传授亲身经验,完全摆 ...

    标题: [精华] 一个非常有意思的跨平台迁移的问题
    离线 biti_rainy
    人生就是如此



    精华贴数 39
    个人空间 0
    技术积分 112866 (4)
    社区积分 12143 (174)
    注册日期 2001-12-12
    论坛徽章:56
    现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星2010数据库技术大会纪念徽章ITPUB北京2009年会纪念徽章
    ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章

    发表于 2005-1-20 14:20 
    一个非常有意思的跨平台迁移的问题

    起源:
    os中看到的数据文件比db中看到的多一个 oracle block。

    10g在做跨平台迁移的时候,不同  byte order(endianess) 的硬件平台下的文件,可以使用rman来修改文件字节顺序,这样就可以实现跨平台迁移,这也就是 10g 中提到的不同平台的 big /little 问题,也就是说高位在前还是高位在后,这是和硬件特征相关的。

    那对于相同 byte  order 的硬件平台来说,唯一可能不同的地方,就在于 os 中比 db 中看到的多一个 block部分可能不一样。

    由此我们产生一个想法,那我们是否可以修改这个block来迁移数据文件?


    当前有2人做了这个测试
    d.c.b.a  做的测试中,根据他的描述,数据库是8i,从  windows / sun solaris for  x86 pc 拷贝到linux ,重新创建控制文件后可以直接打开,并稳定运行了2天。

    wanghai 刚才做了测试,从windows 拷贝到 linux ,创建控制文件不能识别数据文件,但是通过dd拷贝linux系统上的 block 来覆盖这个文件,则可以创建控制文件并open db使用。



    由此我们是否可以在各硬件平台做进一步的测试和对比,找出规律,实现跨平台迁移(至少相同 byte  order 的可以迁移)。


    OS 上查看首个文件头 block信息参考如下
    目前在linux下我发现创建数据库的时候创建的文件的信息是一样的,手工创建的文件的信息是一样的,比如下面我怀疑  000001 056135 055133  这样的信息可能和 os 或者数据库版本有关,或者dbid有关,有待进一步考察。
       

    [root@member-crm-db crmm]# od   users01.dbf  -N  8192
    0000000 001000 000000 020000 000000 000200 000001 056135 055133
    0000020 000000 000000 022207 000000 000000 000000 000000 000000
    0000040 000000 000000 000000 000000 000000 000000 000000 000000
    *
    0020000
    [root@member-crm-db crmm]# od   system01.dbf  -N  8192           
    0000000 001000 000000 020000 000000 000200 000001 056135 055133
    0000020 000000 000000 022207 000000 000000 000000 000000 000000
    0000040 000000 000000 000000 000000 000000 000000 000000 000000
    *
    0020000
    [root@member-crm-db crmm]# od   snapshot01.dbf  -N  8192            
    0000000 001000 000000 020000 000000 000200 000002 056135 055133
    0000020 000000 000000 022204 000000 000000 000000 000000 000000
    0000040 000000 000000 000000 000000 000000 000000 000000 000000
    *
    0020000
    [root@member-crm-db crmm]# od   snapshot02.dbf  -N  8192
    0000000 001000 000000 020000 000000 000200 000002 056135 055133
    0000020 000000 000000 022204 000000 000000 000000 000000 000000
    0000040 000000 000000 000000 000000 000000 000000 000000 000000
    *
    0020000
    [root@member-crm-db crmm]# od   member01.dbf  -N  8192              
    0000000 001000 000000 020000 000000 000200 000002 056135 055133
    0000020 000000 000000 022204 000000 000000 000000 000000 000000
    0000040 000000 000000 000000 000000 000000 000000 000000 000000
    *


    __________________
    只看该作者    顶部
    离线 xzh2000
    仙人抚我须 结发授长生



    精华贴数 13
    个人空间 0
    技术积分 47346 (23)
    社区积分 5411 (393)
    注册日期 2002-7-17
    论坛徽章:37
    现任管理团队成员ITPUB元老九尾狐狸玉石琵琶紫蜘蛛蓝色妖姬
    八级虎吧徽章红孩儿铁扇公主玉兔嫦娥授权会员

    发表于 2005-1-20 15:51 
    你这样看不是很清楚.

    [root@test esal]# od  temp.dbf -tc -N8192
    0000000  \0 002  \0  \0  \0      \0  \0  \0   ?003  \0   ]   \   [   Z
    0000020  \0  \0  \0  \0 005   ? \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    *
    0020000
    [root@test esal]# od  klserver01.dbf -tc -N8192
    0000000  \0 002  \0  \0  \0      \0  \0  \0   ? \0  \0   ]   \   [   Z
    0000020  \0  \0  \0  \0 006   ? \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    *
    0020000
    [root@test esal]# od  tools01.dbf -tc -N8192
    0000000 002  \0  \0  \0  \0      \0  \0 200   1  \0  \0   ]   \   [   Z
    0000020  \0  \0  \0  \0 204 027  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    *
    0020000
    [root@test esal]# od perfstat.dbf -tc -N8192
    0000000 002  \0  \0  \0  \0      \0  \0  \0  \0 002  \0   ]   \   [   Z
    0000020  \0  \0  \0  \0 006   &  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    *
    0020000
    [root@test esal]# od stat.dbf -tc -N8192
    0000000 002  \0  \0  \0  \0      \0  \0 200   1  \0  \0   ]   \   [   Z
    0000020  \0  \0  \0  \0 204 027  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
    *
    0020000
    [root@test esal]# uname -a
    Linux test 2.4.21-15.EL #1 Sun May 16 02:07:24 EDT 2004 i686 i686 i386 GNU/Lin


    __________________
    过目即忘  插柳成荫
    只看该作者    顶部
    离线 piner
    that's life


    精华贴数 15
    个人空间 0
    技术积分 63444 (11)
    社区积分 1691 (902)
    注册日期 2003-2-24
    论坛徽章:49
    管理团队成员ITPUB元老2010数据库技术大会纪念徽章   
          

    发表于 2005-1-20 16:12 
    就算这样。。。
    敢真做吗?呵呵。。。


    __________________
    if not now,when?if not me,who?

    欢迎访问我的网站Blog www.ixdba.com

    欢迎访问Taobao dba团队Blog www.taobaodba.com

    热烈庆祝新书出版,欢迎购买

    天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤
    只看该作者    顶部
    离线 zjxs
    老会员



    精华贴数 1
    个人空间 0
    技术积分 1003 (2338)
    社区积分 0 (75514)
    注册日期 2002-6-24
    论坛徽章:1
    授权会员     
          

    发表于 2005-1-20 16:51 
    第一个块中包含了块的数量,所以不同大小文件的第一个块是不一样的


    __________________
    --msn:iamzjxs@hotmail.com
    只看该作者    顶部
    离线 eygle
    天下有雪


    精华贴数 66
    个人空间 0
    技术积分 208184 (2)
    社区积分 6464 (332)
    注册日期 2001-10-8
    论坛徽章:85
    现任管理团队成员2007年度ITPUB杰出贡献年度精华徽章ITPUB元老ITPUB维基人2010数据库技术大会纪念徽章
    2009架构师大会纪念徽章参与2009年中国云计算大会纪念ITPUB北京2009年会纪念徽章八级虎吧徽章2010新春纪念徽章2010年世界杯参赛球队:希腊

    发表于 2005-1-20 17:01 
    只要确认了,也没有什么。
    可以考察一下10g 的RMAN是怎样实现的,应该是类似的方式。


    __________________
    只看该作者    顶部
    离线 4pal
    ttdb


    精华贴数 2
    个人空间 0
    技术积分 2409 (853)
    社区积分 226 (2885)
    注册日期 2002-7-23
    论坛徽章:2
    会员2006贡献徽章2009日食纪念    
          

    发表于 2005-1-20 17:15 
    不应该仅仅是rman得作用吧,要是oracle本身也做了一些修改,那再怎么把rman研究透,也还是不够得。

    相同CPU架构的,还是有点希望的(10g之前)


    __________________
    whopawhobyebye , HaiQu
    只看该作者    顶部
    离线 rollingpig
    版主


    精华贴数 6
    个人空间 103
    技术积分 30930 (38)
    社区积分 2558 (683)
    注册日期 2001-10-18
    论坛徽章:46
    现任管理团队成员ITPUB年度最佳版主2006年度最佳技术回答2010数据库技术大会纪念徽章ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章
    ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章2010年世界杯参赛球队:日本2010新春纪念徽章2010新春纪念徽章生肖徽章2007版:鼠

    发表于 2005-1-20 17:31 
    Re: 一个非常有意思的跨平台迁移的问题



    QUOTE:
    最初由 biti_rainy 发布
    起源:

    那对于相同 byte  order 的硬件平台来说,唯一可能不同的地方,就在于 os 中比 db 中看到的多一个 block部分可能不一样。


    *


    hehe
    有没有各个硬件平台的byte  order 的资料?

    比如说,那些硬件平台的byte  order是相同的?


    __________________

    欢迎访问乐恒的空间
    9/12隆重推出周岁照

    提问的智慧 for Oracle[展开版]
    提问的智慧Oracle版
    0。尝试在google,论坛,metalink,online document里搜索。
    1。写清楚你的执行log,报错信息,写清楚DB version , OS
    2。Instance 方面的问题,请贴出alertlog
    3。network的问题,贴出server的listener.ora , sqlnet.ora 并运行lsnrctl service, 贴出client的tnsnames.ora , sqlnet.ora ,并运行tnsping
    4。DB总体性能问题,请于peak time做statspack,并上传statspack report。同时附上CPU/MEM配置,以及CPU IDLE/free menory的情况
    5。SQL性能问题,列出当前SQL,以及PLAN。同时应提供表结构,index情况,Table的record数。CBO/RBO,table是否analyze等信息。
    6。确保你的问题是Oracle相关。
    欢迎访问乐恒的空间
    只看该作者    顶部
    离线 biti_rainy
    人生就是如此



    精华贴数 39
    个人空间 0
    技术积分 112866 (4)
    社区积分 12143 (174)
    注册日期 2001-12-12
    论坛徽章:56
    现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星2010数据库技术大会纪念徽章ITPUB北京2009年会纪念徽章
    ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章

    发表于 2005-1-20 18:08 


    QUOTE:
    最初由 zjxs 发布
    第一个块中包含了块的数量,所以不同大小文件的第一个块是不一样的

    你所说的 第一个块是  oracle DB 中所看到的第一个 块,这在 os 上看来是第二个块。


    __________________
    只看该作者    顶部
    离线 biti_rainy
    人生就是如此



    精华贴数 39
    个人空间 0
    技术积分 112866 (4)
    社区积分 12143 (174)
    注册日期 2001-12-12
    论坛徽章:56
    现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星2010数据库技术大会纪念徽章ITPUB北京2009年会纪念徽章
    ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章

    发表于 2005-1-20 18:10 


    QUOTE:
    最初由 eygle 发布
    只要确认了,也没有什么。
    可以考察一下10g 的RMAN是怎样实现的,应该是类似的方式。


    在 10G 中,transport  tablespace 的时候,如果是相同的 byte  order ,则数据不需要任何转换,oracle的描述是在 tablespace  read/write 的时候自动修改了 OS  file  header  block 。


    __________________
    只看该作者    顶部
    离线 biti_rainy
    人生就是如此



    精华贴数 39
    个人空间 0
    技术积分 112866 (4)
    社区积分 12143 (174)
    注册日期 2001-12-12
    论坛徽章:56
    现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星2010数据库技术大会纪念徽章ITPUB北京2009年会纪念徽章
    ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章

    发表于 2005-1-20 18:16 
    Re: Re: 一个非常有意思的跨平台迁移的问题



    QUOTE:
    最初由 rollingpig 发布


    hehe
    有没有各个硬件平台的byte  order 的资料?

    比如说,那些硬件平台的byte  order是相同的?


    在 oracle  10G 中有描述,可以在oracle中查询的

    或者大家 google  Endianness ,可以得到相关信息

    Default endian formats for certain computer platforms
    Pure Big Endian: Sun SPARC, Motorola 68000
    Bi-Endian, running in Big Endian mode: MIPS running IRIX, PA-RISC, most Power and PowerPC systems
    Bi-Endian, running in Little Endian mode: MIPS running Ultrix, most DEC Alpha, IA-64 running Linux
    Little Endian: Intel x86, AMD64, DEC VAX


    __________________
    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    网站律师 隐私政策 知识产权声明
    广播电视节目制作经营许可证:编号(京)字第1149号
    京ICP证:060528号 联系我们

    北京市公安局海淀分局网监中心备案编号:1101082001