用可传输表空间实现 Oracle 跨平台移植
可传输表空间现在可以跨平台移植,从而使得数据发布更快更容易。此外,外部表下
载使得通过转换进行数据转移的任务更简单更快。
如何将数据从一个数据库转移到另一个数据库?在现有的几种方法中,有一种方法尤
为出色:可传输表空间。在这种方法中,使用一组自包含、只读的表空间,只导出元数据,
在操作系统层将这些表空间的数据文件拷贝至目标平台,并将元数据导入数据字典 — 这
个过程称为插入。
操作系统文件拷贝一般比其它传统的数据转移方法(如导出导入或 )
要快得多。然而,在 数据库和更低版本中,可传输表空间仅限于在目标数据库
和源数据库都运行在同一操作系统平台上的少数情况下才有用 — 例如,不能在
和 平台之间传输表空间。
在 数据库 中,这个局限消失了:只要操作系统字节顺序相同就可以在
平台之间传输表空间。本文将不就字节顺序展开长篇的讨论但这里只要提几句话就足够了:
一些操作系统(包括 )在低位内存地址中用最低有效字节存储多字节二进制数
据;因此这种系统被称为低地址低字节序。相反,其它的操作系统(包括 )将最
高有效字节存储在低位内存地址中,因此这种系统被称为低地址高字节序。当一个低地址
高字节序的系统试图从一个低地址低字节序的系统中读取数据时,需要一个转换过程 —
否则,字节顺序将导致不能正确解释读取的数据。(有关字节顺序的详细说明,请阅读嵌
入式系统编程的 年 月刊中的一篇极好的文章“字节顺序介绍”。)不过,当在相同
字节顺序的平台之间传输表空间时,不需要任何转换。
怎么知道哪一种操作系统采用哪一种字节顺序?不需猜测或搜索互联网,相反只需简
单地执行以下查询:
!"#$ % &'% !"
&(% !"')
*+,-.'/0*+,-.'1*.2
210/*1',-.*+
3 "4256& 7 8
3 "4259:& 7 8
659:& 7 8
:/*59:& 7 8
;+<9:1/
9*/8( "59:& 7 8
=.! /*56& 7
>.! /*59:& 7
/8.?8<@ 8
<@/*56& 7