爱意芬芬

20 04, 2005

不同平台之间数据文件为什么不能通用

个人技术 — 作者 pradagu @ 12:32
当我们在一个UNIX平台上,创建了用于ORACLE的数据文件的时候,如果把此卷挂到另一个UNIX下,则数据库不能正确识别,原因主要有如下一些.

多种与平台相关的因素,包括磁盘驱动器分区大小——在磁盘被格式化的时候配置的——以及数据块大小、都大大限制了服务器之间共享卷的能力。。在迁移数据过程中,必须暂停应用程序的处理工作,而且必须将位于卷上的数据通过网络,或者通过磁带备份存储过程利用手动方式物理地迁移到新的服务器上。在安装或者存储到服务器之前,卷将不得不进行一次转换。这通常发生在字节顺序(ENDIAN)不同的平台之间迁移的时候——参考工具条——甚至在具有相同字节顺序处理的系统之间进行移植的时候也会发生,

并不是所有的CPU都能够按照相同的顺序处理计算机信息单元的字节。Big-endian(高字节)系统——包括IBM大型机、Sun的SPARC系统,以及Apple的Macintosh——将信息单元上带有最重要字节的整数位保存在存储地址的低位中。

要想在平台之间成功地进行交换数据,需要对源平台和目标平台的字节顺序保持密切关注。如果平台之间并不具有相同的字节顺序,那么待处理数据在被应用程序访问之前必须经过转换。

所以在oracle10g中,在通过TTS跨平台迁移时,需要通过RMAN来转换数据文件头问的字节顺序.

TTS(可传送的表空间)组件的设计初衷就是要解决在不同Oracle实例之间移植数据库数据的时候产生的问题。据Oracle 8i中介绍,TTS允许在不同服务器上的Oracle实例之间迁移表空间,这种移植可以是临时性的,也可以作为数据库移植的一部分。该组件在随后的Oracle 9i中得到升级,可以适应不同的区块大小,而在Oracle 10g的版本中,TTS增加了对不同服务器平台的支持,也增加了对不同字节顺序之间转换的支持。TTS作为在所有Oracle DBA的跨平台数据共享仓库中一个强壮的工具,在对Oracle进行环境最优化的时候,为数据库管理员提供了极大的灵活性。


最新回复


发表评论