问:请问在不使用导入导出工具的情况下,在一个单一Oracle 10g实例中进行备份与恢复独立schema的最佳办法是什么? 每一个应用开发的schema都被分配了各自的表空间。我是想利用每个应用的表空间进行备份与恢复而不想使用导入导出的方法。请问这样有什么样的风险吗?实现起来是否简单?应用程序的表空间是否可以在任意时刻被恢复?在恢复期间是否需要关闭并重启数据库? 请您帮忙提供一个最佳的方案。我已经有一个完整的Oracle实例备份了(RMAN等),但是在处理应用程序的时候我希望使用更高效的方法,并且需要与其他数据库恢复独立开来。
举个例子: 数据库实例名为ProdA,它有三个内部……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:请问在不使用导入导出工具的情况下,在一个单一Oracle 10g实例中进行备份与恢复独立schema的最佳办法是什么?
每一个应用开发的schema都被分配了各自的表空间。我是想利用每个应用的表空间进行备份与恢复而不想使用导入导出的方法。请问这样有什么样的风险吗?实现起来是否简单?应用程序的表空间是否可以在任意时刻被恢复?在恢复期间是否需要关闭并重启数据库?
请您帮忙提供一个最佳的方案。我已经有一个完整的Oracle实例备份了(RMAN等),但是在处理应用程序的时候我希望使用更高效的方法,并且需要与其他数据库恢复独立开来。
举个例子:
数据库实例名为ProdA,它有三个内部开发的应用schema:
Schema Tablespace
--------- --------------
Schema1 TablespaceA
Schema2 TablespaceB
Schema3 TablespaceC
答:你可以将每一个schema放到它自身的表空间里,然后将整个表空间进行备份。但是记住表空间只包含“段”而且并不是所有的对象都是段。所谓的段就是指那些需要空间的对象,比如表和索引。Schema还可以包含视图、存储过程和序列等等。这些对象并不是段它们存储在数据字典下。因此备份表空间将丢失一部分非段对象。如果我必须只将一个schema区别开来进行备份的话,我会使用导入导出或者数据抽取(Data Pump)方式。然而,即使这样做也会有缺陷,因此我除非在万不得已的情况下,很少用到这样的方式。
如果你想要一个表空间一个表空间地进行备份,你可以恢复一个表空间然后进行时间点的恢复。但是你已经有一个完整的RMAN数据库备份了,因此就没有理由再单独地进行表空间备份了。如果你想要,RMAN可以从完整的数据库备份中恢复一个表空间。
我经常使用的一种方法就是利用导入导出或者数据抽取来从schema中导出DDL。我已经对表空间进行了备份所以我可以在任意时间回复一个schema的表空间。但是之后我导出DDL来重新创建schema对象,是否应该进行视图或存储过程的恢复呢?要做到这一点,我使用ROWS=N参数进行导出,它会导出CREATE语句而不是表数据。或者如果你不想要使用导入导出来获取DDL的话,使用DBMS_METADATA.GET_DDL过程也可以,具体如下:
SPOOL schema1_ddl.sql SELECT DBMS_METADATA.GET_DDL(owner,object_name,object_type) FROM dba_objects WHERE owner=’SCHEMA1’; SPOOL OFF |
然后针对每一个schema进行相同的操作,就可以完成你想要的备份了。
作者
Techtarget旗下Searchoracle网站的资深专家,有16年IT行业经验、计算机科学硕士、专攻数据库方向,曾担任系统管理员等职。此外,他还获Oracle 7.3、8和8i的OCP数据库管理员证书,目前为SGT Inc.公司首席DBA。
翻译
相关推荐
-
Oracle备份和恢复简史
这些年来,Oracle数据库备份和恢复方式已经发生了重大变化,特别是在Recovery Manager(RMAN)功能有了进一步改善之后。
-
Oracle数据库迁移的基本方法与设计
当决定将Oracle数据库迁移到云中的时候,你该如何下手?Tom Laszewski和Prakash Nauduri的新书《迁移到云》解答了这个问题。
-
解决创建存储过程时的Insufficient privileges错误
使用Toad在schema中创建一个存储过程时出现了“Insufficient privileges.”错误,专家解答了该如何解决这一问题。
-
开发者的兵工厂:SQL Server开发工具五大新特性
SSDT包含一系列的新特性,能够进一步简化开发并提升数据库开发效率。在本文中,我们就将为您介绍其中5个最重要的功能,DBA和开发者需注意本文提到的内容。