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

数据库 Oracle
本文我们主要介绍了Oracle数据库rman恢复之system表空间恢复的过程,并给出了两个示例来详细地描述了rman恢复system表空间的方法,希望能够对您有所帮助。

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

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

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

--备份数据库(略)   

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

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

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

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

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

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

--备份数据库(略)   

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

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

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

RMAN> run {    
2> startup force mount;    
3> set newname for datafile 1 to '/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf';    
4> restore datafile 1;    
5> switch datafile 1;    
6> recover datafile 1;    
7> sql 'alter database open';    
8> }   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 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查询示例
责任编辑:赵鹏 来源: CSDN博客
相关推荐

2011-08-29 17:00:47

Oracle数据库RM表空间数据块介质

2011-08-29 16:41:14

OracleRMAN恢复数据文件的恢复

2011-08-30 09:35:10

OracleRMAN不完全恢复基于时间恢复

2011-08-30 09:50:22

OracleRMAN不完全恢复基于SCN恢复

2010-03-31 10:39:40

RMANOracle

2011-08-30 10:02:18

OracleRMAN不完全恢复基于日志序列号恢复

2009-10-23 15:30:17

Oracle表空间恢复

2011-04-11 13:46:17

Oracle数据库备份

2019-06-12 08:57:43

Oracle数据库恢复

2009-11-20 13:29:59

Oracle数据库恢复

2011-05-26 09:36:07

Oracle数据库Redo故障

2011-02-28 13:31:17

Oracle数据库

2011-08-15 23:14:34

Oraclerman环境配置

2011-08-03 18:42:21

Oracle数据库重做日志

2011-03-04 14:59:16

Raidoracle数据库

2011-03-24 17:21:42

Oracle数据库Redo故障

2009-04-03 10:54:49

Oracle备份恢复

2011-05-11 13:25:57

Oracle数据库后备恢复

2015-10-29 15:06:36

DB2重定向恢复数据

2009-10-13 09:43:43

Oracle数据库备份
点赞
收藏

51CTO技术栈公众号