问:为了开发一个灾难恢复计划,我正试图在备份服务器上恢复备份实例。当我要重新创建表的时候,一直有一个错误信息”ORA-01659: unable to allocate MINEXTENTS”,我知道这是由于”Failed to find sufficient contiguous space”.引起的。两个服务器上的表空间和数据文件大小相同。 在导入数据的时候表空间满了。
重新创建所有表的脚本运行之后提示表空间满了。我尝试“ALTER TABLESPACE xxx COALESCE;”在Oracle enterprise mana……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:为了开发一个灾难恢复计划,我正试图在备份服务器上恢复备份实例。当我要重新创建表的时候,一直有一个错误信息"ORA-01659: unable to allocate MINEXTENTS",我知道这是由于"Failed to find sufficient contiguous space".引起的。两个服务器上的表空间和数据文件大小相同。
在导入数据的时候表空间满了。重新创建所有表的脚本运行之后提示表空间满了。我尝试“ALTER TABLESPACE xxx COALESCE;"在Oracle enterprise manager中列出的每个表空间明明还有自由空间。为什么满了呢?我只是删除并创建了表,那里不应该有任何数据。
我是完全遵从DRP过程。备份实例已经在那儿了,我所做的只是删了表而已。
1)从生产库获取当前模式的信息(前提是生产库可访问)。
set pagesize 0 set long 90000 set feedback off set echo off spool d:exprebuild_outputsyspisa_schema_rebuild_matson.sql connect syspisa/****@MATSON; SELECT 'DROP TABLE '||u.table_name||' CASCADE CONSTRAINTS;' FROM USER_TABLES u; SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) ||'; ' FROM USER_TABLES u; SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) ||'; ' FROM USER_INDEXES u; spool off; |
2)从生产系统查询现有的对象信息来进一步检查(前提是生产库可访问)
Set pages 1000 Col object_name for a30 spool d:exprebuild_outputbefore_exp Select object_name, object_type From user_objects Where object_type In ('TABLE', 'INDEX','TRIGGER') Union all Select constraint_name, constraint_type From user_constraints Where constraint_type IN ('P', 'R') Order by 2, 1 |
3)用脚本导出(如果生产库可访问)或从备份中找到最新可用的导出文件。将导出文件传输到备份服务器。
4)删除所有的表(检查OEM发现所有的表空间都是0%已用)。在failOver server上导入第一步得到的模式数据以重新创建表/索引。
答:导入对象时,Oracle会首先在原来装有对象的表空间上创建表或索引。例如,如果表在源数据库的Users表空间中,且目标数据上Users表空间存在,Oracle就会在目标数据库Users表空间上创建表;如果目标数据上Users表空间不存在,Oracle就会在对象的Owner的缺省表空间上创建表和索引。似乎目标数据库上System表空间是这个用户的缺省表空间,或者还有其他用户的缺省表空间也是System,这可不是好主意。正确的做法是:或者创建表空间并起名与源数据库相同,或者在目标数据库创建其他表空间,确保表和索引的Owner的缺省表空间指向新创建的表空间。
作者
Techtarget旗下Searchoracle网站的资深专家,有16年IT行业经验、计算机科学硕士、专攻数据库方向,曾担任系统管理员等职。此外,他还获Oracle 7.3、8和8i的OCP数据库管理员证书,目前为SGT Inc.公司首席DBA。
相关推荐
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
DBA必须掌握的数据库恢复管理技术
如果没有备份副本,数据库管理员就无法还原数据库,所以DBA在恢复之前倾向于考虑备份是合乎逻辑的。 但是,对我来说,这种逻辑一直是错误的。
-
DBA也要和领导抢饭碗?
数据库架构师Ziaul Mannan 认为,DBA有成为高管的潜在可能,而这种潜力在过去往往被忽视,他还将证明DBA技能到领导力的转变是可行的。
-
Oracle备份和恢复简史
这些年来,Oracle数据库备份和恢复方式已经发生了重大变化,特别是在Recovery Manager(RMAN)功能有了进一步改善之后。