登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

使用Oracle可传输表空间的特性复制数据(1)基础概念 - 无名扫把 - CSDN博客  

2009-05-25 16:48:38|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 使用Oracle可传输表空间的特性复制数据(1)基础概念收藏

可传输表空间的特性主要用于进行库对库的表空间复制,要进行传输的表空间必须置于read-only模式。如果生产库不允许表空间置为只读模式,没关系,方法还是有的,通过RMAN备份也可以创建可传输表空间集。要使用可传输表空间的特性,oracle至少是8i企业版或更高版本。如果是相同操作系统平台相互导入,则8i及以上版本均可支持,但如果是不同操作系统平台,数据库版本至少10g。被传输的表空间即可以是字典管理,也可以是本地管理。并且自oracle9i开始,被传输表空间的block size可以与目标数据库的block size不同。

可传输表空间(还有个集)最大的优势是其速度比export/import或unload/load要快的多。因为可传输表空间主要是复制数据文件到目标路径,然后再使用export/import或Data Pump export/import等应用仅导出/导入表空间对象的元数据到新数据库。

提示:本节中将完全采用做为导入导出的工具。(什么是Data Pump,说来话短,Data Pump。。。。。其命令形式是impdp/expdp分别对应导入/导出功能,是自oracle10g开始提供的一种新的应用。功能和命令形式都与imp/exp极其类似,但其相互之间的导出文件并不兼容)不过,Data Pump和常规的imp/exp同样都能够被transportable tablespaces特性支持。但是如果被传输的表空间包含XMLTypes,就必须使用imp/exp。

通常有两种方式传输表空间:

要运行传送表空间向导:

尽管仍非全部,但已经有很多平台可以支持跨平台的传送。可以通过查询V$TRANSPORTABLE_PLATFORM视图来确认哪些平台可以支持,该视图同时也可以获取各平台的ENDIAN_FORMAT(字节顺序byte ordering)

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

17 Solaris Operating System (x86) Little

18 IBM Power Based Linux Big

已选择17行。

提示:关于字节顺序(byte ordering)

一些操作系统(包括 Windows)在低位内存地址中用最低有效字节存储多字节二进制数据;因此这种系统被称为低地址低字节序。相反,其它的操作系统(包括 Solaris)将最高有效字节存储在低位内存地址中,因此这种系统被称为低地址高字节序。当一个低地址高字节序的系统试图从一个低地址低字节序的系统中读取数据时,需要一个转换过程— 否则,字节顺序将导致不能正确解释读取的数据。不过,当在相同字节顺序的平台之间传输表空间时,不需要任何转换。

如果平台间的endian不同,那么在执行导入操作之之前必须首先转换源平台的表空间到目标格式,如果平台间endian format相同,则可以跳过转换的步骤,即使是不同平台。当然前提是各平台的数据库版本都不低于10g。

在表空间可被传输到不同平台之前,数据文件的文件头必须能够识别其所属的原平台是什么,对于oracle数据库初始化参数中COMPATIBLE置为10.0.0或更高之后,你必须至少将表空间置为read-write一次,这点非常重要,你现在还不知道我在说什么?没关系,很快就会知道的。

l 自oracle10gR2开始,可以传输含XMLTypes的表空间,不过必须使用imp/exp而不能选择数据泵(impdp/expdp)。并确保imp/exp命令的CONSTRAINTS和TRIGGERS参数设置为Y。

下列脚本可以列出数据库中哪些表空间含XMLTypes:

select distinct p.tablespace_name

from dba_tablespaces p, dba_xml_tables x, dba_users u, all_all_tables t

where t.table_name = x.table_name

and t.tablespace_name = p.tablespace_name

and x.owner = u.username

l 映射类型(Opaque Types):由应用指定并且映射到数据库(如RAW,BFILE等)的类型可以被传输,但是它们并不会被做为跨平台转换的一部分。其实际类型是什么只有指定它的应用清楚,所以必须保证这个应用解决读取各种endian问题后再考虑将其传输到新平台。

从oracle10g开始,不论目标库运行在相同或不同的平台,表空间都可以传输到相同或更高版本的oracle库。但是如果生成传输表空间集比目标库话,数据库就会提示错误。

下表列出了源表空间和目标表空间之间在不同传输情况下oracle最低兼容版本。

使用Oracle可传输表空间的特性复制数据(1)基础概念 - 无名扫把 - CSDN博客 - yangzhongfei - 中飞博客



引文来源  使用Oracle可传输表空间的特性复制数据(1)基础概念 - 无名扫把 - CSDN博客
  评论这张
 
阅读(316)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018