· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

Oracle可传输表空间实现跨平台移植 (1)

发布时间:2007.01.23 04:50     来源:ChinaITLab     作者:ChinaITLab

可传输表空间现在可以跨平台移植,从而使得数据发布更快更容易。此外,外部表下载使得通过转换进行数据转移的任务更简单更快。

如何将数据从一个数据库转移到另一个数据库?在现有的几种方法中,有一种方法尤为出色:可传输表空间。在这种方法中,使用一组自包含、只读的表空间,只导出元数据,在操作系统层将这些表空间的数据文件拷贝至目标平台,并将元数据导入数据字典 — 这个过程称为插入。

操作系统文件拷贝一般比其它传统的数据转移方法(如导出/导入或 SQL*Loader)要快得多。然而,在 Oracle9i 数据库和更低版本中,可传输表空间仅限于在目标数据库和源数据库都运行在同一操作系统平台上的少数情况下才有用 — 例如,不能在 Solaris 和 HP-UX 平台之间传输表空间。

在 Oracle 数据库 10g 中,这个局限消失了:只要操作系统字节顺序相同,就可以在平台之间传输表空间。本文将不就字节顺序展开长篇的讨论,但这里只要提几句话就足够了:一些操作系统(包括 Windows)在低位内存地址中用最低有效字节存储多字节二进制数据;因此这种系统被称为低地址低字节序。相反,其它的操作系统(包括 Solaris)将最高有效字节存储在低位内存地址中,因此这种系统被称为低地址高字节序。当一个低地址高字节序的系统试图从一个低地址低字节序的系统中读取数据时,需要一个转换过程 — 否则,字节顺序将导致不能正确解释读取的数据。(有关字节顺序的详细说明,请阅读嵌入式系统编程的 2002 年 1 月刊中的一篇极好的文章“字节顺序介绍”。)不过,当在相同字节顺序的平台之间传输表空间时,不需要任何转换。

怎么知道哪一种操作系统采用哪一种字节顺序?不需猜测或搜索互联网,相反只需简单地执行以下查询:

  SQL> select * from v$transportable_platform order by platform_id;
  
  PLATFORM_ID PLATFORM_NAME            ENDIAN_FORMAT
  ----------- ----------------------------------- --------------
  1 Solaris[tm] OE (32-bit)       Big
  2 Solaris[tm] OE (64-bit)       Big
  3 HP-UX (64-bit)           Big
  4 HP-UX IA (64-bit)          Big
  5 HP Tru64 UNIX            Little
  6 AIX-Based Systems (64-bit)     Big
  7 Microsoft Windows IA (32-bit)    Little
  8 Microsoft Windows IA (64-bit)    Little
  9 IBM zSeries Based Linux       Big
  10 Linux IA (32-bit)          Little
  11 Linux IA (64-bit)          Little
  12 Microsoft Windows 64-bit for AMD  Little
  13 Linux 64-bit for AMD        Little
  15 HP Open VMS             Little
  16 Apple Mac OS            Big
  

假设想从一台在 Intel 体系结构上运行 Linux 操作系统的主机 SRC1 中将一个表空间 USERS 传输到运行 Microsoft Windows 操作系统的计算机 TGT1 上。源平台和目标平台都是低地址低字节序的。表空间 USERS 的数据文件是 users_01.dbf。将按照类似以下的方法来进行操作。

使表空间为只读:

  alter tablespace users read only;
 
 

导出表空间。在操作系统提示符下执行:

  exp tablespaces=users transport_tablespace=y file=exp_ts_users.dmp

exp_ts_users.dmp 文件只包含元数据(不是表空间 USERS 的内容)因此它将非常小。将文件 exp_ts_users.dmp 和 users_01.dbf 拷贝至主机 TGT1。如果使用 FTP,那么将需要指定二进制选项。

将表空间插入到数据库中。在操作系统命令提示符下执行下面的语句:

  imp tablespaces=users transport_tablespace=y 
    file=exp_ts_users.dmp datafiles='users_01.dbf'
  

1 2 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Oracle存储过程中任务和管道的应用 (01-22) · 实现Oracle数据库每天异地自动备份 (01-22)
· Oracle数据库中回滚监视的深入探讨 (01-19) · Oracle 数据库中改善的表空间管理 (01-19)
· 怎样在Oracle数据库中高速导出/导入 (01-19) · 推荐:Oracle数据库的闪回表特性概述 (01-19)
· Oracle数据库中的段管理方式详细介绍 (01-19) · Oracle数据库中可移动的表空间详解 (01-19)
· Oracle自动存储管理--使DBA得到解脱 (01-19) · Oracle数据库中的硬解析和软解析简介 (01-18)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:扭亏为盈 联想09年Q2翻番
·专题:Tech·Ed 2009微..
·直播:2009互联网大会..
·迅雷搜狐"互搏" 谁动了..
专题:诺基亚危局已现 或重蹈摩托覆辙
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
·专题:排排坐开商店 三..
商务演示需求分析 多媒体会议室必备投影
·VMware在京隆重举行2009..
·专题:笔记本频道10月热..
·专题:学生机市场 惠普 ..
专题:Tech.Ed 2009微软技术大会
·专题:2009 SYBASE 亚太..
·专题:微软新一代桌面操..
·专题:2009年第3届CSDN..