使用ON PREBUILT MATERIALIZED VIEW进行数据迁移有很多的优点:
物化视图迁移方式是基于对象方式,这种方式是基于Oracle的,因此和数据库所在的平台无关,这使得这种方式可以用于跨平台迁移;
Oracle对物化视图的后向兼容性使得物化视图可以在不同版本之间进行刷新,这也使得这种方式具有跨版本的特点。因此,这种迁移方式可以用作系统的升级;
物化视图迁移的另一个优点是具有很短的停机时间。应该说,采用物化视图迁移总的消耗时间并没有缩短,但是物化视图的特点使得很多工作可以放在停机之前进行。这样耗费时间的物化视图建立、完全同步等工作都可以放到平常工作时间进行,一旦停机之后,只需要将物化视图执行一次快速刷新,同步上次刷新之后的修改就可以了。这样极大的缩短了迁移所需的时间。
物化视图迁移还有一个重要的特点,迁移方式是逻辑性质的。这意味着迁移过程中可以只迁移需要的表;只迁移表中必要的列;只迁移表中部分记录;可以在迁移过程中修改表的逻辑结构和物理结构;也可以在迁移过程中进行数据的处理和转换。
下面对比一下物化视图迁移方式和传统逻辑迁移工具EXP/IMP。
物化视图方式和EXP都是跨平台的;
物化视图方式和EXP都是跨版本的:其中EXP跨版本需要遵循低版本导出,目标版本导入的原则,而物化视图则没有这个限制。不过个别版本之间创建物化视图是存在bug的,这个需要进行额外的处理。
上面这两点对比,似乎物化视图方式并没有多大的优势,不过下面的两个方面,物化视图方式的优势就很大了。
物化视图迁移的所需停机时间远远小于EXP/IMP的时间。在利用EXP/IMP进行迁移的时候,很头痛的一个问题就是导入、导出的速度。即使采用10g的新功能数据泵EXPDP/IMPDP,速度仍然是导出、导入工具的一个比较致命的缺点。几百G的数据库采用EXP/IMP或EXPDP/IMPDP方式,停机时间很可能会超过1天,这对于很多系统都是无法接受的。而对于物化视图迁移而言,这就是最大的优势之一。首先要说的是,物化视图迁移方式并不能明显的缩短所需的总时间。但是由于物化视图可以进行快速刷新,因此,可以把完全刷新的步骤放在停机之前进行,这样只需要在停机的时候进行一次快速刷新就可以了,极大的缩短了大数据量数据库的迁移时间。
物化视图迁移和EXP都属于逻辑迁移:但是EXP方式很难对表的逻辑结构进行修改。如果提前创建表,并使用IGNORE=Y的方式,可以修改表的物理存储结果,如改变表空间,改变表的分区方式等;如果在EXP的时候指定QUERY参数,可以导出表中的部分记录,但是这种方式使用方式很有限,只能针对个别的表,否则就要求QUERY语句中的WHERE条件对导出所涉及的所有表都生效,对于大部分的情况,这是很难做到的。如果要改变逻辑结果,使用EXP就非常困难了,如果添加新的列还好一些,如果要去掉一些列,用EXP的方式基本上不太可能。而上面提到的所有的修改,对于物化视图方式来说都不是困难的事情,物化视图方式可以轻松的修改基表的结构,创建物化视图也可以指定行和列。
当然,物化视图迁移方式也不是尽善尽美的,这种方式也存在很多的缺点,比如前面提到的跨版本的bug问题,如果刨除bug不谈,那么物化视图迁移方式至少会面临以下问题:
首先,物化视图迁移是表和数据的迁移,而EXP则是数据库中所有对象的迁移,因此使用物化视图迁移方式,必须手工处理索引、约束、过程、触发器、对象、序列、同义词、视图、数据库链以及对象的授权。对于一个大型数据库环境,这些要手工处理这些工作,工作量可想而知。一个相对简单的处理方法是,物化视图与EXP/IMP配合使用,通过EXP导出所有的对象,只是不包含表中的记录,表中的记录通过物化视图的功能进行同步。不过这样还需要在物化视图同步之后,检查两个数据库中所有对象的是否一致,避免丢失源环境中EXP之后做出的修改。总而言之,使用物化视图迁移方式,迁移的复杂程度要远远超过使用EXP的方式。
其次,物化视图迁移对表结构有一定的要求。首先,为了保证迁移后目标数据库中仍然是表,不会变成物化视图,必须采用ON PREBUILT方式建立物化视图。而这种方式建立的物化视图必须是基于主键的,这就要求基表必须包括主键。对于不包括主键的表,是没有办法采用物化视图方式进行迁移的。
分享到:
相关推荐
本文将详细介绍Oracle提供的主要数据分发技术——exp/imp 导入导出技术、物化视图和Streams数据同步,并探讨其在实际应用中的优势、局限和最佳使用场景。 首先,让我们看看exp/imp 导入导出技术。这是Oracle提供的...
1. **物化视图(Materialized Views)**:物化视图是Oracle数据库提供的一种数据同步机制,允许将一个或多个表的数据复制到另一个数据库的物化视图中。通过在物化视图上添加触发器,可以实现实时或定期的数据更新,...
8. **数据泵(Data Pump)**:Oracle 10g的数据泵工具(expdp/impdp)提供了快速的数据导入导出功能,相比传统的exp/imp工具,数据迁移速度更快,且支持并行操作。 9. **SQL优化**:Oracle 10g的SQL优化器通过CBO...
6. **数据泵**(Data Pump):虽然Oracle 8.1.7可能没有完整的Data Pump功能,但此版本可能包含一些早期的数据迁移和导出导入工具,如EXP和IMP,它们用于数据库的数据备份和恢复。 7. **安全特性**:Oracle 8.1.7...
相较于传统的数据导出导入方法(例如使用`EXP`/`IMP`工具),表空间传输能够直接移动表空间的数据文件,从而大大提高了数据迁移的速度。此技术尤其适用于大型数据库的数据迁移场景,如企业级应用中的生产库到测试库...
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
13. **数据迁移与升级**:掌握数据库的迁移方法,如导出导入(EXP/IMP)、数据泵(EXPDP/IMPDP)以及从低版本到10g的升级流程。 Oracle 10g DBA的学习不仅涵盖了数据库的基本操作,还包括了高级特性和最佳实践,是...
- **物化视图**:用于快速查询和数据刷新,提高了数据检索速度。 2. **Oracle10g新特性**: - **数据库内嵌式语言(DBMS_LUA)**:支持Lua脚本语言,增强了数据库的灵活性。 - **自动工作负载Repository(AWR)*...
EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。 自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户 创建角色 SQL> create role admin; 授权给...
面对这一挑战,传统的Exp/Imp方法因效率低下而不适用,而dpexp/dpimp受版本限制,跨平台表空间迁移亦非完美解决方案。因此,DBA需慎重选择合适的数据迁移方案,如GoldenGate、Data Pump等,以确保数据完整性及迁移...