ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 7339|回复: 30

[精华] 一个非常有意思的跨平台迁移的问题 [复制链接]

超级版主

人生就是如此

精华贴数
39
技术积分
113462
社区积分
12356
注册时间
2001-12-12
论坛徽章:
73
ITPUB元老
日期:2005-02-28 12:57:00ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41蜘蛛蛋
日期:2011-07-01 08:38:17蛋疼蛋
日期:2011-05-27 08:50:45现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-26 11:24:14咸鸭蛋
日期:2011-11-09 09:55:402011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2005-1-20 14:20:00 |显示全部楼层
起源:
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
*

版主

仙人抚我须 结发授长生

精华贴数
14
技术积分
47701
社区积分
5504
注册时间
2002-7-17
论坛徽章:
48
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
发表于 2005-1-20 15:51:04 |显示全部楼层
你这样看不是很清楚.

[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

使用道具 举报

版主

that's life

精华贴数
15
技术积分
63484
社区积分
1691
注册时间
2003-2-24
论坛徽章:
55
ITPUB元老
日期:2006-03-01 17:57:362010数据库技术大会纪念徽章
日期:2010-05-13 10:04:28ITPUB技术丛书作者
日期:2010-09-26 15:24:562011新春纪念徽章
日期:2011-01-25 15:41:012011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08
发表于 2005-1-20 16:12:12 |显示全部楼层
就算这样。。。
敢真做吗?呵呵。。。

使用道具 举报

注册会员

老会员

精华贴数
1
技术积分
1003
社区积分
0
注册时间
2002-6-24
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
发表于 2005-1-20 16:51:53 |显示全部楼层
第一个块中包含了块的数量,所以不同大小文件的第一个块是不一样的

使用道具 举报

超级版主

天下有雪

精华贴数
66
技术积分
208411
社区积分
6479
注册时间
2001-10-8
论坛徽章:
100
ITPUB元老
日期:2005-02-28 12:57:00ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36现任管理团队成员
日期:2011-05-07 01:45:08ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52ITPUB技术丛书作者
日期:2010-09-26 15:00:232010系统架构师大会纪念
日期:2010-09-03 16:39:572010数据库技术大会纪念徽章
日期:2010-05-13 10:04:282009架构师大会纪念徽章
日期:2010-01-18 13:43:21祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB8周年纪念徽章
日期:2009-09-27 10:21:212009日食纪念
日期:2009-07-22 09:30:00参与2009年中国云计算大会纪念
日期:2009-06-05 10:02:28
发表于 2005-1-20 17:01:41 |显示全部楼层
只要确认了,也没有什么。
可以考察一下10g 的RMAN是怎样实现的,应该是类似的方式。

使用道具 举报

精华贴数
2
技术积分
2409
社区积分
227
注册时间
2002-7-23
论坛徽章:
2
会员2006贡献徽章
日期:2006-04-17 13:46:342009日食纪念
日期:2009-07-22 09:30:00
发表于 2005-1-20 17:15:26 |显示全部楼层
不应该仅仅是rman得作用吧,要是oracle本身也做了一些修改,那再怎么把rman研究透,也还是不够得。

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

使用道具 举报

版主

版主

精华贴数
11
技术积分
33853
社区积分
3867
注册时间
2001-10-18
论坛徽章:
109
管理团队2006纪念徽章
日期:2006-04-16 22:44:452012新春纪念徽章
日期:2012-01-04 11:49:54灰彻蛋
日期:2011-12-17 23:16:55数据库板块每日发贴之星
日期:2011-03-16 01:01:02月度精华徽章
日期:2011-04-01 02:15:44SQL数据库编程大师
日期:2011-04-13 12:09:01现任管理团队成员
日期:2011-05-07 01:45:08蜘蛛蛋
日期:2011-10-18 13:05:40季节之章:夏
日期:2011-10-21 12:00:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41紫蛋头
日期:2012-01-06 21:49:51ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52
发表于 2005-1-20 17:31:36 |显示全部楼层

Re: 一个非常有意思的跨平台迁移的问题

最初由 biti_rainy 发布
[B]起源:

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


* [/B]


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

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

使用道具 举报

超级版主

人生就是如此

精华贴数
39
技术积分
113462
社区积分
12356
注册时间
2001-12-12
论坛徽章:
73
ITPUB元老
日期:2005-02-28 12:57:00ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41蜘蛛蛋
日期:2011-07-01 08:38:17蛋疼蛋
日期:2011-05-27 08:50:45现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-26 11:24:14咸鸭蛋
日期:2011-11-09 09:55:402011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2005-1-20 18:08:11 |显示全部楼层
最初由 zjxs 发布
[B]第一个块中包含了块的数量,所以不同大小文件的第一个块是不一样的 [/B]


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

使用道具 举报

超级版主

人生就是如此

精华贴数
39
技术积分
113462
社区积分
12356
注册时间
2001-12-12
论坛徽章:
73
ITPUB元老
日期:2005-02-28 12:57:00ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41蜘蛛蛋
日期:2011-07-01 08:38:17蛋疼蛋
日期:2011-05-27 08:50:45现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-26 11:24:14咸鸭蛋
日期:2011-11-09 09:55:402011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2005-1-20 18:10:51 |显示全部楼层
最初由 eygle 发布
[B]只要确认了,也没有什么。
可以考察一下10g 的RMAN是怎样实现的,应该是类似的方式。 [/B]


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

使用道具 举报

超级版主

人生就是如此

精华贴数
39
技术积分
113462
社区积分
12356
注册时间
2001-12-12
论坛徽章:
73
ITPUB元老
日期:2005-02-28 12:57:00ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41蜘蛛蛋
日期:2011-07-01 08:38:17蛋疼蛋
日期:2011-05-27 08:50:45现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-26 11:24:14咸鸭蛋
日期:2011-11-09 09:55:402011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2005-1-20 18:16:06 |显示全部楼层

Re: Re: 一个非常有意思的跨平台迁移的问题

最初由 rollingpig 发布
[B]

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

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


在 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

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部