随着现在数据库使用越来越多,客户对于数据库的规范要求越来越高。目前基本都是一个业务对应一个或多个表空间,这样做的好处在于可以数据隔离,便于管理,升级迁移时也可以避免导出一大堆用户,只需要使用参数 transport_tablespaces
即可,达到一次性迁移整个表空间的目的,也即是传输表空间。
传输表空间技术始于 Oracle 9i
,不论是数据字典管理的表空间还是本地管理的表空间,都可以使用传输表空间技术;传输表空间不需要在源数据库和目标数据库之间具有同样的DB_BLOCK_SIZE
块大小,使用传输表空间迁移数据比使用数据导入导出工具迁移数据的速度要快,这是因为传输表空间只是复制包含实际数据的数据文件到目标数据库的指定位置,而使用数据导入导出工具则是传输表空间对象的元数据到目标数据库。
传输表空间支持使用 SQL*PLUS
,RMAN
,Data Pump
工具实现。
本文演示的是同平台迁移,如果是跨平台需要注意字节序,可以通过以下 sql 查询:
col platform_name for a30
select d.platform_name,endian_format