Welcome 微信登录

首页 / 数据库 / MySQL / RMAN恢复-system表空间恢复

恢复system表空间的数据文件
system表空间存放着数据字典的信息。当数据库处于open状态,如果system表空间所对应的数据文件出现介质失败,那么当在其数据文件上执行I/O操作时,数据库会自动关闭;当数据库处于关闭状态时,如果system表空间所对应的数据文件出现介质失败,数据库将不能打开。
恢复system表空间必须在mount状态下进行。
示例一system表空间的数据文件被误删除
备份数据库。
删除system表空间对应的数据文件。
启动数据库到mount状态。
使用restore datafile转储数据文件,并使用recover datafile命令应用归档日志,最后使用alter database open打开数据库。
  1. --备份数据库(略)   
  2. --删除system表空间对应的数据文件   
  3. RMAN> host rm $Oracle_BASE/product/10.2.0/oradatabak/system01.dbf  
  4. RMAN> startup  
  5.   
  6. connected to target database (not started)  
  7. Oracle instance started  
  8. database mounted  
  9. RMAN-00571: ===========================================================  
  10. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============  
  11. RMAN-00571: ===========================================================  
  12. RMAN-03002: failure of startup command at 08/22/2011 21:56:39  
  13. ORA-01157: cannot identify/lock data file 1 - see DBWR trace file  
  14. ORA-01110: data file 1: "/oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf"  
  15.   
  16. SQL> select file#,error from v$recover_file;  
  17.   
  18.      FILE# ERROR  
  19. ---------- -----------------------------------------------------------------   
  20.          1 FILE NOT FOUND  
  21.   
  22. SQL> select file#,name from v$datafile where file#=1;  
  23.   
  24.      FILE# NAME  
  25. ---------- ------------------------------------------------------------------------------------------------------------------------   
  26.          1 /oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf  
  27.   
  28.   
  29. --启动数据库到mount状态并进行恢复   
  30. RMAN> run {  
  31. 2> startup force mount;  
  32. 3> restore datafile 1;  
  33. 4> recover datafile 1;  
  34. 5> sql "alter database open";  
  35. 6> }  
示例二system表空间数据文件所在磁盘出现故障
备份数据库(略)
删除system表空间对应的数据文件。
启动数据库到mount状态。
在restore database之前,执行set newname为数据文件指定新的位置。
在restore database之后,执行switch datafile改变控制文件中数据文件位置和名称。
之后通过执行recover database应用归档日志。
最后执行alter database open打开数据库。
  1. --备份数据库(略)   
  2. --删除system表空间对应的数据文件   
  3. RMAN> host "rm /oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf"  
  4. 2> ;  
  5.   
  6. --启动数据库到mount状态并进行恢复(为数据文件指定新位置,转储数据文件,恢复数据文件,打开数据库)   
  7. RMAN> run {  
  8. 2> startup force mount;  
  9. 3> set newname for datafile 1 to "/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf";  
  10. 4> restore datafile 1;  
  11. 5> switch datafile 1;  
  12. 6> recover datafile 1;  
  13. 7> sql "alter database open";  
  14. 8> }  
Oracle EBS之Oracle Forms中的“WHEN-LEAVE-RECORD”触发器关于Oracle审计(audit)相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数