Oracle数据库rman恢复之system表空间恢复详解

Oracle数据库rman恢复system表空间恢复是本文我们主要要介绍的内容,system表空间存放着数据字典的信息。当数据库处于open状态,如果system表空间所对应的数据文件出现介质失败,那么当在其数据文件上执行I/O操作时,数据库会自动关闭;当数据库处于关闭状态时,如果system表空间所对应的数据文件出现介质失败,数据库将不能打开。恢复system表空间必须在mount状态下进行。

创新互联公司是一家专业提供滁州企业网站建设,专注与网站建设、成都做网站、HTML5、小程序制作等业务。10年已为滁州众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

示例一:system表空间的数据文件被误删除备份数据库。

删除system表空间对应的数据文件。启动数据库到mount状态。使用restore datafile转储数据文件,并使用recover datafile命令应用归档日志,***使用alter database open打开数据库。

--备份数据库(略)   

--删除system表空间对应的数据文件   

 
 
 
  1. RMAN> host rm $ORACLE_BASE/product/10.2.0/oradatabak/system01.dbf    
  2. RMAN> startup    
  3. connected to target database (not started)    
  4. Oracle instance started    
  5. database mounted    
  6. RMAN-00571: ===========================================================    
  7. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============    
  8. RMAN-00571: ===========================================================    
  9. RMAN-03002: failure of startup command at 08/22/2011 21:56:39    
  10. ORA-01157: cannot identify/lock data file 1 - see DBWR trace file    
  11. ORA-01110: data file 1: '/oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf'    
  12. SQL> select file#,error from v$recover_file;    
  13. FILE# ERROR    
  14. ---------- -----------------------------------------------------------------     
  15. 1 FILE NOT FOUND    
  16. SQL> select file#,name from v$datafile where file#=1;    
  17. FILE# NAME    
  18. ---------- ------------------------------------------------------------------------------------------------------------------------     
  19. 1 /oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf   

--启动数据库到mount状态并进行恢复   

 
 
 
  1. RMAN> run {    
  2. 2> startup force mount;    
  3. 3> restore datafile 1;    
  4. 4> recover datafile 1;    
  5. 5> sql 'alter database open';    
  6. 6> }   

示例二:system表空间数据文件所在磁盘出现故障

备份数据库(略)删除system表空间对应的数据文件。启动数据库到mount状态。在restore database之前,执行set newname为数据文件指定新的位置。在restore database之后,执行switch datafile改变控制文件中数据文件位置和名称。之后通过执行recover database应用归档日志。***执行alter database open打开数据库。

--备份数据库(略)   

--删除system表空间对应的数据文件   

 
 
 
  1. RMAN> host 'rm /oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf'    
  2. 2> ;   

--启动数据库到mount状态并进行恢复(为数据文件指定新位置,转储数据文件,恢复数据文件,打开数据库)   

 
 
 
  1. RMAN> run {    
  2. 2> startup force mount;    
  3. 3> set newname for datafile 1 to '/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf';    
  4. 4> restore datafile 1;    
  5. 5> switch datafile 1;    
  6. 6> recover datafile 1;    
  7. 7> sql 'alter database open';    
  8. 8> }   

关于Oracle数据库rman恢复之system表空间恢复的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. SSIS工程师为您揭秘SQL Server数据流
  2. SQL Server 2008 MDX学习笔记之理解元数组
  3. SQL Server数据库DataRelation的应用示例详解
  4. SQL Server 2005/2008中的CTE应用之递归查询
  5. SQL Server 2008数据库学习笔记之MDX查询示例

当前文章:Oracle数据库rman恢复之system表空间恢复详解
当前URL:http://www.hantingmc.com/qtweb/news25/240325.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联